A friendly guide to home lab setup with game servers, Docker, and smart network management
If you’re new to home lab setup like me and want to host a game server to play with friends, it can feel a bit overwhelming. But don’t worry — I recently went through this process and learned some practical tips that I’d love to share.
One of my main goals was avoiding VPN services for remote access. I tried Tailscale once but couldn’t recall the details or feel fully comfortable using it again, so I focused on port forwarding instead. To keep things secure, I decided to isolate my server on a separate subnet. That means while most of my devices are on something like 192.168.1.x, I put the game server on 192.168.5.x. This helps add a layer of protection between the server and my everyday devices.
Running Caddy and Your Game Server Together
I chose to run both my game server and my reverse proxy (using Caddy) on the same machine — an old PC saved from retirement — entirely inside Docker containers. Docker made it super easy to manage and update the services without messing with my main system. Running them together simplifies the setup and avoids extra network hops.
If you’re unfamiliar, Caddy is a web server that works great as a reverse proxy, helping to route internet requests to your game server securely. Since it automatically manages HTTPS certificates, it’s a solid choice for this role. You can check out Caddy’s official site for more details on setup options: https://caddyserver.com/docs/.
Using Pi-hole and Unbound for Cleaner Network DNS
I also wanted better DNS control, so I set up Pi-hole paired with Unbound on a Raspberry Pi 4. The key for me was routing only my main subnet (192.168.1.x) through this DNS filtering system while letting the isolated game server subnet manage its own traffic separately. This way, my regular devices get ad-blocking and security benefits without complicating the game server’s network.
To do this, you configure your main router to point the main subnet devices’ DNS to the Raspberry Pi’s IP running Pi-hole. You avoid routing the isolated subnet’s DNS traffic there by not changing its DHCP settings. This strategy keeps the network clean and segmented. The official Pi-hole docs offer great help here: https://docs.pi-hole.net/.
Migrating Caddy to the Raspberry Pi
I wondered if moving the Caddy container from the game server’s PC to the Raspberry Pi would help. This means the Raspberry Pi would be the reverse proxy, directing internet traffic only to my server subnet.
It’s doable, yes, but understand this adds another layer between your subnets. It’s basically another network “passage.” Depending on your routing and firewall setup, this could introduce more complexity or potential traffic bottlenecks.
I’d recommend trying the simpler approach first (running Caddy and the game server together) and only migrate if you find a clear reason to. Both Raspberry Pi and PC setups have pros and cons; the Pi is low power and always on, but your game server PC likely has more horsepower.
Final Thoughts on Home Lab Setup
Setting up a home lab to host a game server involves balancing easy access, performance, and security. Using Docker containers keeps services cleanly managed. Isolating the server on its own subnet adds a nice security buffer. And tools like Caddy, Pi-hole, and Unbound help with secure connections and cleaner network traffic.
If you’re just getting started, focus on one thing at a time: get the game server up, manage port forwarding carefully, then add DNS filtering and reverse proxy components as you grow comfortable. It’s a fun project that teaches a lot about networking and system management.
For more on setting up your home lab network with VLANs and subnetting, Network Computing has some great beginner-friendly primers: https://www.networkcomputing.com/network-security/vlans-explained.
Remember, take your time, keep backups of your configurations, and don’t hesitate to ask for help from the community forums or trusted online guides. Happy hosting!