Home Server Setup
This is a place to document my journey in setting up my home server, primarily to learn about server administration and to host services for my personal projects.
Technical Details
The home server is a Dell Optiplex 3070 equipped with an Intel i5-9500T. Originally, it came with 8GB of RAM and a 500GB HDD, but I upgraded it to 32GB of RAM and replaced the HDD with a 1TB NVMe SSD (Samsung Evo 970). This was to ensure I would not need to worry about storage usage for the forseeable future, and be able to run many containers in parallel without worrying about ram usage.
I acquired this machine with the intention of learning more about server administration and hosting servers for personal projects with docker. Because of this, I chose Ubuntu 22.04 LTS as the Operating System.
Configuration
The server acts as the backend for my domain, bats.li. All incoming traffic is routed through a Traefik reverse proxy, allowing different subdomains (e.g., git.bats.li and cloud.bats.li) to be routed to separate Docker containers, even though they share the same IP address on my home server.
Running Services
Currently, the server hosts several services that I use regularly:
- Nextcloud (Cloud Storage)
- Gitea (self-hosted Git service)
- Vikunja (Kanban board for project & idea management)
- Spawnpoint (Homepage)
Each service runs inside its own Docker container, making management, updates, and scaling simple.
Challenges & Learnings
Setting up Traefik was an painful experience at first, particularly because it was hard to understand unexpected behaviour. However after reading a lot of documentation I figured how to configure traefik and assign containers to traefik using labels and the correct docker network. The reverse proxy allows seamless routing of traffic to the appropriate service without exposing all ports individually.
Docker and Traefik have made it incredibly easy to run multiple services on the same server, all accessible through different subdomains, giving me a better grasp of network configuration and server management.
Written: 2024-09-15