> Martin Polden

Pragmatic self-hosting

There are many benefits to self-hosting software services, such as learning about networking, software infrastructure, security as well as increased privacy and cost saving. However, it's not an all-or-nothing proposal. There are degrees of difficulty that depend on the exact service you're trying to host. The best approach is usually a middle-ground where you self-host low-to-medium effort services and use third-party solutions for the rest.

As a long-time computer hobbyist, I've been self-hosting various services since my high school days. This continued when I started at the university, because our student union was granted a small server room (or rather, a closet, with questionable cooling solutions) with enough spare rack space to cover personal servers.

A key to self-hosting is choosing low-maintenance solutions. In recent years, the popularization of Linux containers have made self-hosting most software even less complicated.

Below is a table of some services you can self-host, the approximate effort required and some software recommendations:

Service Effort required Software
Backup Low restic
Email High you're probably better off not doing it
File server Low SFTP served by OpenSSH or good old Samba
File synchronization Low Syncthing
Git forge Medium cgit, Gitea
Advanced home router Medium-high Mikrotik router with RouterOS, OpenBSD
Media server Low Plex
Metrics monitoring Medium Grafana and Prometheus
Password manager Medium Vaultwarden
VPN gateway Medium WireGuard
Webserver with HTTPS Low Nginx and Lets Encrypt
Ad-filtering DNS server Medium Unbound with custom filters, Pi-hole