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 |
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 |