Alpine Server

Alpine Linux is a security-oriented and lightweight Linux distribution that is based on busybox and musl which makes it ideal for server installation. However, due to Alpine being lightweight it is often used for containers, including Docker images, instead, rather than running it on physical hardware. As such, most documentation is also oriented around using Alpine Linux for containers, and less so on running it on physical hardware, such as a server. Thus, these guides exist to help out anyone interested in pursuing the same with Alpine Linux, as well as to document the process for future reference for myself.

Since I use Alpine Linux on my server, most of these guides will be written around running specific server software on Alpine Linux. However, the general installation itself may also be useful for anyone interested to get a minimal installation of Alpine Linux on a desktop or laptop.

General

The following guides will help you set up Alpine Linux and keep it up-to-date:

HTTP server

The following guides will help you set up Nginx with support for PHP and Python, as well as HTTP Strict Transport Security:

Mail Server

The following guides will help you set up a full mail server with POP3 and IMAP support, spoofing protection (SPF, DKIM, DMARC, ARC), spam filtering, anti-virus checking, server-side mail filtering and SSL:

Glibc Compatibility

Sometimes you need to run binaries that have been compiled against glibc and for which you do not have the source code. As Alpine Linux comes with musl, it is instead recommended to set up a container running a Linux distribution that uses glibc instead. The following guides will help you set up the glibc flavour of VoidLinux to run Steamcmd and more specifically game servers for various games:

Miscellaneous

The following guides will help you to set up specific services such as Gitea (for Git), Murmur (Mumble server) and OpenVPN:

Acknowledgements

  • Thank you, Lars Roenbaeck, for the following fixes:
    • Forgot to mention that sieve_before = /var/mail/sieve/global/spam-global.sieve should be added to /etc/dovecot/conf.d/90-sieve.conf.
    • Apparently, e-mail was being routed to rspamd twice. To prevent this from happening, you need to add -o smtpd_milters= below -o content_filter= in /etc/postfix/master.cf for the entry starting with 127.0.0.1:10026.