Login

A Quick Intro To My Home Server

by Eric Bette

A Quick Intro To My Home Server

Share this post

A Quick Intro To My Home Server

A Quick Intro To My Home Server

One of my biggest, longest-running personal projects is my personal home server.

This is a project that I've used to replace closed-source, corporate-owned cloud services in my digital life (e.g. PhotoPrism has replaced Google Photos), and also to develop and host some brand new automation systems (such as my Personal Finance Dashboard).

Software

This is an ever-evolving list of software and services that are being run on my server. I'll keep this up to date as further developments come along!

OS

I'm running Ubuntu Server 22.04. I only ssh into this machine and have no need for a GUI, since all of the services that are hosted on the machine will be accessed and managed through a web UI.

eric@basingse:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Installed Packages

The only package that I've installed using a package manager is Docker (literally). Every hosted service is running containerized.

I set it up this way so that I wouldn't have to create (and backup) a custom OS image from which to restore in case of catastrophe. This way, I only have to backup my Docker volumes and my home directory (which also contains my Docker Compose file). If I ever need to restore from scratch in the future, I only need restore these two directories and install Docker and I'll be up and running.

One note here is that I opted for Docker on this project due to already having familiarity with it through my work. One of the TODOs on this project are to replace Docker with Podman/Kubernetes.

Services

This is a steadily growing list of services that I have running on my server for various reasons.

As mentioned above, all of these services are running containerized and are not installed natively. All of these services are free and open source, with the lone exception of Proton Mail/Bridge being a paid service (Proton Mail has a free plan that doesn't include bridge usage).

Feel free to check out and use the docker-compose.yml file that I use on my host to manage this environment. Hopefully this can help avoid some of the debugging and headaches that I went through getting everything up and running 😄

All secrets and endpoints are parameterized and kept in an .env file in my home directory, where docker-compose.yml is also stored, making this config perfectly replicable if I ever migrate to a new device.

Additionally, all mounted volumes are kept at /etc/docker/{container-name}, making it easy to track, backup, and restore my environment.

Hardware

Here's the build:

Type Item Price
CPU Intel Core i5-12600K 3.7 GHz 10-Core Processor $179.99 @ Best Buy
CPU Cooler Noctua NH-L12S 55.44 CFM CPU Cooler $64.90 @ Amazon
Motherboard ASRock Z690M-ITX/ax Mini ITX LGA1700 Motherboard $229.99 @ Amazon
Memory G.Skill Ripjaws V 64 GB (2 x 32 GB) DDR4-3600 CL18 Memory $109.99 @ Amazon
Storage SK Hynix Gold P31 1 TB M.2-2280 PCIe 3.0 X4 NVME Solid State Drive $85.99 @ Amazon
Storage Western Digital Red Plus 8 TB 3.5" 5640 RPM Internal Hard Drive $159.99 @ Western Digital
Storage Western Digital Red Plus 8 TB 3.5" 5640 RPM Internal Hard Drive $159.99 @ Western Digital
Storage Western Digital Red Plus 8 TB 3.5" 5640 RPM Internal Hard Drive $159.99 @ Western Digital
Storage Western Digital Red Plus 8 TB 3.5" 5640 RPM Internal Hard Drive $159.99 @ Western Digital
Case Jonsbo N1 Mini ITX Desktop Case $125.00 @ Newegg Sellers
Power Supply Corsair SF750 (2024) 750 W 80+ Platinum Certified Fully Modular SFX Power Supply $179.99 @ Amazon
Prices include shipping, taxes, rebates, and discounts
Total $1615.81

A few notes:

Conclusion

That's the basics of my setup! I'll be writing more detailed articles on various parts and decisions of the build, and updating this piece as time goes on.

Feel free to leave thoughts below! I'd love to hear any feedback or answer any questions on the system.