✦ For everyone, free.

Practical knowledge for real and everyday life

Home

Alpine System Configuration

Alpine System Configuration optimizes lightweight Linux systems with minimal resource use and enhanced security through streamlined package management.

Alpine System Configuration refers to the comprehensive set of settings and files used to define the operational parameters of an Alpine Linux system. This configuration governs core aspects such as system identity, user and group management, locale and keyboard settings, timezone, system environment variables, shell preferences, logging mechanisms, scheduled tasks, and local overrides. It ensures Alpine Linux runs efficiently and securely, tailored to the user’s requirements, hardware, and network environment.


System Identity and Hostname

Hostname Configuration

The hostname uniquely identifies the system on a network. In Alpine Linux, the hostname is configured in the file /etc/hostname. This file contains a single line with the system's hostname. The hostname can be changed dynamically using the hostname command, but to persist after reboot, the /etc/hostname file must be updated.

Example:

echo "my-alpine" > /etc/hostname

Hosts File

The /etc/hosts file maps hostnames to IP addresses locally. This file is essential for resolving hostnames before querying DNS servers.

Example /etc/hosts content:

127.0.0.1   localhost
192.168.1.100 my-alpine.localdomain my-alpine

Network Configuration

While Alpine uses ifupdown or other network managers, basic network interface configurations reside in /etc/network/interfaces or are managed dynamically. Static IPs, DNS, and routing are configured here or through tools like setup-interfaces.


User and Group Administration

Users

User accounts are managed primarily through the /etc/passwd file, which stores user information such as username, UID, GID, home directory, and default shell.

Adding a user is performed with:

adduser username

This command creates the user, home directory, and sets default values.

Groups

The /etc/group file holds group definitions. Groups control permission sets and user memberships.

Creating groups:

addgroup groupname

Passwords and Authentication

Passwords are stored securely in /etc/shadow. Password policies can be enforced using PAM modules if installed, though Alpine’s minimal base system might require explicit installation of PAM for advanced authentication.


Keyboard and Console Configuration

Keyboard Layout

Keyboard layouts are configured via /etc/conf.d/keymaps. The keymap file defines the keyboard layout used in the console.

Example:

echo 'us' > /etc/conf.d/keymaps

To apply a keymap immediately:

loadkmap < /usr/share/kbd/keymaps/i386/qwerty/us.map.gz

Console Fonts and Settings

Console font and console settings are managed through setup-keymap, which can configure both keymaps and fonts. These settings affect the virtual console environment.


Locale Configuration

Locale settings define language, character encoding, and regional formats.

Locale Files

Locales are generated and stored under /usr/share/i18n/locales and /etc/locale.gen defines which locales to generate.

Setting the Locale

Alpine uses /etc/profile.d/locale.sh or /etc/environment to set environment variables like:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Generating locales is done with:

locale-gen

or by running setup-locale in interactive mode.


Time and Timezone Configuration

System Clock

Alpine Linux tracks time using the hardware clock and system clock.

Timezone

The timezone is set by linking /etc/localtime to the appropriate zoneinfo file in /usr/share/zoneinfo.

Example:

ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

NTP and Time Synchronization

Alpine can synchronize system time using openntpd or chronyd. Configuration files reside in /etc/ntpd.conf or /etc/chrony/chrony.conf.

Time synchronization is crucial for log accuracy, security protocols, and scheduled tasks.


System Environment Configuration

Environment Variables

System-wide environment variables are set in /etc/profile, /etc/profile.d/, or /etc/environment. These variables influence the behavior of all users and system processes.

Example setting PATH in /etc/profile:

export PATH="/usr/local/bin:/usr/bin:/bin"

Shell Configuration

Default shell settings and environment for root and other users are configured in their respective shell startup files like .profile, .bashrc, .ashrc, depending on the shell used (Alpine uses Almquist shell by default).


Shell Environment

Default Shell

Alpine Linux defaults to ash, a lightweight shell from BusyBox. Users can switch to other shells such as bash by installing the packages and updating /etc/passwd.

Shell Profiles

Shell initialization files control user environment setup, aliases, and prompt customization.

System-wide shells settings are located in /etc/profile and /etc/profile.d/.


System Logging

Logging Daemon

Alpine typically uses busybox syslogd or rsyslog for logging system messages.

Configuration files:

  • /etc/syslog.conf for syslogd
  • /etc/rsyslog.conf for rsyslog

Log Files

Logs are stored in /var/log/ such as /var/log/messages and /var/log/secure.

Proper log rotation is configured via logrotate with files in /etc/logrotate.d/.


Scheduled Tasks

Cron Daemon

Alpine uses crond (BusyBox or full cron) to schedule repetitive tasks.

Configuration involves:

  • System-wide crontab: /etc/crontabs/root or /etc/crontabs/username
  • Enabling the cron daemon via OpenRC service:
rc-update add crond
rc-service crond start

At and Batch Jobs

For one-time delayed jobs, at can be installed and configured similarly.


Local Configuration Overrides

Custom Configuration Files

Alpine supports local overrides by placing custom configuration scripts or settings in /etc/conf.d/ or /etc/profile.d/.

Files in these directories are sourced during startup to apply local customizations without modifying core system files.

Service Overrides

OpenRC service scripts can be overridden or supplemented by placing files in /etc/init.d/ or /etc/conf.d/ with the same service name.

This modular approach simplifies upgrades and maintenance.


The Alpine System Configuration is structured to maintain simplicity, minimalism, and security, allowing administrators to customize the system efficiently through clearly defined files and directories. This modular and consistent setup supports Alpine's goals as a lightweight, secure, and versatile Linux distribution.

Content in this section