< Back

Building a home server with Ubuntu, Caddy, Docker and Wireguard

1 min read
  • server
  • ubuntu
  • caddy
  • docker
  • wireguard
Tue Oct 03 2023

A guide to setting up a home server to self-host a bunch of services and protect your personal data.

This post contains the instructions to set up a home server. It will host a number of services that I use regularly, like hosting my personal files, a remote development environment, web apps, and anything else I can think of running on a piece of silicon.

Requirements

  • 💸 The server should be relatively cheap to run. No GPU clusters running ChatGPT, I have bills to pay
  • 🐧 Use free and open-source software where possible
  • 🔒 Private services: personal file hosting, remote development environment, productivity tools like my notes, task management etc.
  • 🔓 Public services: primarily my public-facing experiments in software like this website
  • 🔑 Private services should be secure and accessible only to me, such as through a VPN
  • 🌐 All services should be accessible via HTTPS from outside my home network using subdomains for each service (for example https://batcave.sy3d.dev)
  • 📞 The server should use dynamic DNS instead of static IP. The less I interact with my ISP, the happier I am
  • 📈 Compatible with observability and monitoring tools such as Grafana and Prometheus

Hardware

I ended up buying an HP EliteDesk G3 Mini PC.

References

Get In Touch