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.

image

Technical Details

This home server was purchased used from "Kleinanzeigen".

My home server is a Dell Optiplex 3070 equipped with following equipment:

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.

image

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 status.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:

Each service runs inside its own Docker container, making management, updates, and scaling simple.

This also enables me to host my own services that I develope, I also documented Spawnpoint and BESD

Challenges and Learnings

Traefik (Reverse Proxy)

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 Deployment & Workflow

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.

Future Plans

In the future I am planning to upgrade the CPU to an Intel Core i9-9900T once I need more computing power, with this I would be upgrading from currently 6 Cores and 6 Threads to 8 Cores and 16 Threads.

As I'm hosting my own nextcloud instance I am also considering purchasing an additional HDD with at least 4 TB, so I don't need to worry about storage when backing up data.


Written: 2024-09-15