I’m writing this article as I’m about to move my homelab to another Linux distro and will need to come back here for help when I inevitably break prod.
Overview
These are the steps required to setup a homelab on Linux:
- Backup, backup, backup.
- Install and configure a web server. I use Caddy running inside a docker container.
- Start your web services. I use a single
docker-compose.yml
file to provision my services (web apps, Nextcloud and some observability tools). - Set up port forwarding and set your homelab to a static IP address in your IP router’s control panel.
- Open up the required ports on your firewall using
ufw
. - Set up a local DNS server for local access.
dnsmasq
is a good shout, remember to disable systemd-resolved. - Configure and enable dynamic DNS for your domain name. I use ddclient to connect to Namecheap’s excellent dynamic DNS API.