Standing Up a Home Server in One Afternoon
·1 min
Today I went from a handful of Docker containers to a full self-hosted infrastructure. Here is what is running on sasquatch now:
The Stack #
- Media: Plex, the full *arr suite (Radarr, Sonarr, Lidarr, Readarr, Prowlarr), Bazarr, Overseerr
- Books: Calibre and Calibre-web, consolidated from three different drives into one location
- Dev: Gitea with CI runners, JupyterLab with nbgrader backed by MariaDB
- Teaching: A full Canvas LMS instance built from source for testing grade integration
- Blog: This very site, powered by Hugo and ox-hugo
- Apps: Streamlit for interactive Python apps
- Communication: Matrix/Synapse with Element
- Home: Home Assistant
Everything sits behind Caddy for automatic HTTPS, accessible from anywhere via *.gvmntbw.ddns.net.
The Literate Programming Detour #
The whole setup used to live in an Emacs Org Mode file that tangled out to docker-compose.yml. It was elegant in theory — documentation and configuration in one place. In practice, every change required a tangle step before anything happened. We dropped it in favor of editing the compose file directly. Sometimes the simplest tool is the right one.
What is Next #
- Get DNSSEC sorted on
governmentbrainwaves.infoso the real domain works - Set up Tailscale for VPN access
- Build the nbgrader-to-Canvas grade sync pipeline