Tutorials and Howtos


Welcome to Tutorials and Howtos, a place of basic and advanced configuration tasks for your Alpine Linux.
The tutorials are hands-on and the reader is expected to try and achieve the goals described in each step, possibly with the help of a good example. The output in one step is the starting point for the following step.
Howtos are smaller articles explaining how to perform a particular task with Alpine Linux, that expects a minimal knowledge from reader to perform actions.
IMPORTANT: contributions on those pages must be complete articles as well as requesting topics to be covered, don't override already made contributions. If you want to request a topic, please add your request in this page's Discussion.
Howtos
Applications
Miscellaneous
- Ansible (Configuration management)
Monitoring
- Awstats (Free log file analyzer)
- Cacti: traffic analysis and monitoring network (Front-end for rrdtool networking monitor)
- Cvechecker (Compare installed packages for Common Vulnerabilities Exposure)
- Linfo
- Obtaining user information via SNMP (Using squark-auth-snmp as a Squid authentication helper)
- PhpSysInfo (A simple application that displays information about the host it's running on)
- Matomo (A real time web analytics software program)
- Setting up A Network Monitoring and Inventory System (Nagios + OpenAudit and related components)
- Setting up NRPE daemon (Performs remote Nagios checks)
- Ntop (NetFlow collection and analysis using a remote fprobe instance; for alpine 3.10-3.12 only)
- Setting up lm_sensors
- SqStat (Script to look at active squid users connections)
- Traffic monitoring
- Zabbix - the professional complete manager (Monitor and track the status of network services and hardware)
- ZoneMinder video camera security and surveillance
Networking
- Alpine Wall (a new firewall management framework)
- Freeradius Active Directory Integration
- GNUnet
- OpenVPN server (Allowing single users or devices to remotely connect to your network)
- OpenVSwitch
- Using Alpine on Windows domain with IPSEC isolation
- Wireguard
Telephony
- FreePBX on Alpine Linux
- Setting up Zaptel/Asterisk on Alpine
- Kamailio (SIP Server, formerly OpenSER)
Backup and data migration
- Alpine local backup (lbu) (Permanently store your modifications in case your box needs reboot)
- Migrating data
- Rsnapshot - setting up periodic backups
Desktop
Alpine Linux is a general purpose Linux distribution designed for power users. It is built to be small and resource efficient. If you feel the defaults are too lightweight for desktop use, it is easy to get most of the regular stuff working and use Alpine Linux as a daily driver by following this guide.
Prerequisites
- Alpine Linux installed in system disk mode.
- Internet connectivity, unless the packages have been pre-fetched into a local cache.
- Install appropriate Graphics driver drivers for your hardware. Without graphics drivers, errors are likely to occur when starting your desktop.
- A non-root user account.
- The community repository must be enabled.
- Set up eudev.
- Install and enable D-Bus. Without D-Bus, icons and keyboard shortcuts may be missing.
Once the above prerequisites are met, install any desktop of choice from the list of supported Desktop environments and Window managers either manually or using setup-desktop script.
Basics
- Learn the alpine package keeper basics or refer wiki page.
- Install some fonts to make your desktop look better.
- Install the necessary File management packages for automounting of removable storage and browsing of network shares that works seamlessly with file associations.
- Setup a sound server to manage your audio and configure your Bluetooth, if you have one.
- Configure Power management so that your computer switches to a low-power state when inactive or when laptop lid is closed.
- Configure your printer.
- Enable documentation, so man pages are available.
- Graphical tools to manage official packages, Flatpaks and ways to run glibc binaries can be found in Software management page.
Desktop security
- Install CPU Microcode updates to mitigate processor design bugs.
- Regularly check and apply updates to keep your system secure.
- Upgrade your OS whenever a new stable version of Alpine Linux is released
- Secure your system by installing a firewall software like Alpine Wall or Uncomplicated Firewall.
- Install a sandboxing application like AppArmor or Bubblewrap. AppArmor is more convenient but has less control than Bubblewrap. Bubblewrap is harder to work with but has more control than AppArmor.
- Enable UEFI Secure Boot, if UEFI is available.
- Refer to security section for additional security options.
Advanced
- Learn basics of openrc, the alpine Linux init system or refer Open rc wiki.
- If you want the rolling release version of Alpine Linux, enable the Edge repository.
- Explore the testing repository, as it provides a lot more applications.
Other topics
- Gaming on Alpine
- Remote Desktop Server
- How to change default application
- List of supported Desktop environments and Window managers
- Understand UEFI and enable UEFI Secure Boot
- Desktop cloud
- Nextcloud (Self hostable cloud suite - Dropbox Alternative)
Power management
Kernel
Networking
- Bluetooth - Instructions for installing and configuring Bluetooth
- Bonding - Bond (or aggregate) multiple ethernet interfaces
- Bridge - Configuring a network bridge
- Configure Networking
- How to configure static routes
- Modem
- mDNS - Howto implement multicast DNS resolution in Alpine.
- Multi ISP (Dual-ISP setup with load-balancing and automatic failover)
- PXE boot
- Wi-Fi
- Connecting to a wireless access point
- How to setup a wireless access point (Setting up Secure Wireless AP w/ WPA encryption with bridge to wired network)
- VLAN
Other Architectures
ARM
Raspberry Pi
- Raspberry Pi - Bluetooth Speaker
- Raspberry Pi - Installation
- Raspberry Pi - Router with VPN
- Raspberry Pi - Router with VPN (IPv6)
- Raspberry Pi - Sys mode install
- Raspberry Pi - Sys mode install - LVM on LUKS
- Raspberry Pi - Video Receiver (network video decoder using Rasperry Pi and omxplayer)
- Raspberry Pi 3 - Browser Client - kiosk or digital sign
- Raspberry Pi 3 - Configuring it as wireless access point -AP Mode
- Raspberry Pi 3 - Setting Up Bluetooth
- Raspberry Pi 4 - Persistent system acting as a NAS and Time Machine
- Raspberry Pi Zero W - Wireless router (Setting up a firewalled, Wireless AP with wired network on a Pi Zero W)
- RPI Video Receiver
IBM Z (IBM z Systems)
PowerPC
Post-Install
- CPU frequency scaling
- Enable Community repository (Providing additional packages)
- Enable Serial Console on Boot
- Init System (OpenRC) (Configure a service to automatically boot at next reboot)
- Oracle Java (installation)
- IGMPproxy
- Package Management (apk) (How to add/remove packages on your Alpine)
- Running glibc programs
- Setting up a new user
- Upgrading Alpine
Remote Administration
- ACF
- ACF - changing passwords
- Generating SSL certs with ACF
- ACF - setup (Configures ACF (webconfiguration/webmin) so you can manage your box through https)
- Setting up a SSH server (Using ssh is a good way to administer your box remotely)
- OpenSSH 2FA (A simple two factor setup for OpenSSH)
- OpenVCP (VServer Control Panel)
- PhpMyAdmin (Web-based administration tool for MYSQL)
- PhpPgAdmin (Web-based administration tool for PostgreSQL)
- Webmin (A web-based interface for Linux system)
Server
- Hosting services on Alpine (Hosting mail, webservices and other services)
- Hosting Web/Email services on Alpine
DNS
- DNSCrypt-Proxy Encrypt and authenticate DNS calls from your system
- Setting up nsd DNS server
- Setting up unbound DNS server
- TinyDNS Format
HTTP
- Apache
- Darkhttpd
- Lighttpd
- Nginx
- Squid Proxy
- Obtaining user information via SNMP (Using squark-auth-snmp as a Squid authentication helper)
- Setting up Explicit Squid Proxy
- Setting up Transparent Squid Proxy (Covers Squid proxy and URL Filtering system)
- SqStat (Script to look at active squid users connections)
- Tomcat
Hostable Content
- DokuWiki
- Drupal (Content Management System (CMS) written in PHP)
- Kopano (Microsoft Outlook compatible Groupware)
- Mahara (E-portfolio and social networking system)
- MediaWiki (Free web-based wiki software application)
- Pastebin (Pastebin software application)
- WordPress (Web software to create website or blog)
IRC
- NgIRCd (Server for Internet Relay Chat/IRC)
- Exim/Dovecot
- Small-Time Email with Exim and Dovecot (A simple configuration for your home network.)
- Setting up dovecot with imap and tls
- relay email to gmail (msmtp, mailx, sendmail
- Roundcube (Webmail system)
- Setting up postfix with virtual domains
- Server protection
Other Servers
- apcupsd (UPS Monitoring with apcupsd)
- Chrony, gpsd, and a garmin LVC 18 as a Stratum 1 NTP source
- Glpi (Manage inventory of technical resources)
- How to setup a Alpine Linux mirror
- nfs-server
- NUT UPS (UPS Monitoring with Network UPS Tools)
- Odoo
- OpenLDAP (Installing and configuring the Alpine package for OpenLDAP)
- lldap-server (Directory Server)
- samba-ad-dc (Active Directory compatible domain controller)
- samba-server (standard file sharing)
- Setting up Transmission (bittorrent) with Clutch WebUI
Software development
- Cgit
- OsTicket (Ticket system)
- Patchwork (Patch review management system)
- Redmine (Project management system)
- Request Tracker (Ticket system)
- Trac (Enhanced wiki and issue tracking system for software development projects)
Storage
Virtualization
- Docker
- Installing Alpine in a virtual machine
- KVM (Setting up Alpine as a KVM hypervisor)
- LXC (Setting up a Linux container in Alpine Linux)
- QEMU
- Xen
- Xen Dom0 (Setting up Alpine as a dom0 for Xen hypervisor)
- Xen Dom0 on USB or SD
- Xen DomU (paravirtualized)
- Xen LiveCD
- Xen PCI Passthrough
Tutorials
Miscellaneous
- TTY Autologin
- Faster rebooting with kexec
- Dynamic Multipoint VPN (DMVPN) combined with Small Office Services
- DIY Fully working Alpine Linux for Allwinner and Other ARM SOCs
- Fault Tolerant Routing with Alpine Linux
- High Availability High Performance Web Cache (uCarp + HAProxy for High Availability Services such as Squid web proxy)
- Linux iSCSI Target (TCM)
- ISP Mail Server 3.x HowTo (Postfix+PostfixAdmin+DoveCot+Roundcube+ClamAV+Spamd - A full-service ISP mail server)
- Grommunio Mail Server (Mariadb+Postfix+Rspamd+Grommunio - Full-service mail server as MS exchange replacement)
- Replacing non-Alpine Linux with Alpine remotely
- Setting up A Network Monitoring and Inventory System (Nagios + OpenAudit and related components)
- Streaming Security Camera Video with VLC
- Install Alpine on a btrfs filesystem with refind as boot manager
- How to Compile a software from source in Alpine Linux
Newbie corner
- How to get regular stuff working some notes on need-to-know topics
Servers
- Alpine production deploy
- Alpine production monitoring
- Kubernetes
- K8s Building a K8s Cluster on Alpine Linux
Security
- Securing Alpine Linux How to Secure Alpine Linux using Security Technical Implementation Guides (STIGs)