Every Machine a Job
2024-09-24
I've been thinking a lot about the network and server configuration, as well as "what are our goals."
I'm thinking about the machines that make up the home lab as corresponding to different functions. I sketched it out below.
Each device serves a purpose:
- Synology is our NAS and is going to also contain NextCloud so that it can have all file management functionality in one place. I have notes on connecting to the Synology in a docker-compose so that it's baked into that image. I'll go over that in another post.
- The Pi Cluster will host the majority of our services. I'm thinking Mastodon, GoToSocial, Calibre-Web, Pixelfed, RSSHub, Supabase, Directus, etc.
- The B-link will house the Coder instance, GitHub Runners, and maybe Drone.io
- We'll have a single Raspberry Pi that manages Umbrel (Bitcoin and Lightning nodes)
- The NUC will host our media server, Plex.
I didn't want to get rid of any of the machines that we've collected over the years. Giving each section to a specific machine or cluster is going to make it easy to know where things should go as we add more capabilities.
As far as outside the home network, I think we'll continue to have a DigitalOcean droplet to host the public Reverse Proxy connected to our Tailscale Tailnet. I'm toying with either using a Virtual IP (self-assigned IP that the Keepalived service uses as a single entry point to the Pi Cluster) or each docker container has a permanent Tailscale IP that travels wherever the compose file is run on our system. If we can side car that in, then we almost loose the need to have a single Virtual IP that is managed on the cluster. It also means we could move that docker container to a completely different piece of hardware outside the cluster and it's Virtual IP and the reverse proxy would just pick it up.