Hey there! I want to be upfront with you — some of the links on this page are affiliate links. This means that if you click on them and make a purchase, I may earn a small commission, at no extra cost to you. Rest assured, I only recommend products or services I truly believe in and that I think will bring value to you.
It all started when my wife had to switch to paid iCloud subscription because she ran out of free storage. I quickly realised I can use this as an excuse to build a home server, and use it as a backup service for all our Apple devices. In addition to this, I wanted to self-host some apps to reduce our dependency on third-party services. This series of blog posts will document my journey to building a home server and self-hosting apps, and you are free to follow along.
If you want a super-quick TL;DR version of all the posts, here it is:
Hardware
- Mobo & CPU: BKHD motherboard with integrated Intel N100 chip
- Storage: 2x Seagate EXOS X16 16TB ST16000NM001G in RAID1
- RAM: 1x CORSAIR Vengeance DDR5 SODIMM 16GB (1x16GB) DDR5 4800MHz C40
- OS Drive: 1x Silicon Power P34A60 1TB NVMe PCIe SSD
- PSU: Cooler Master MWE Gold 550 - V2 Full Modular
Software
- Ubuntu Server 22.04.3 LTS
- All the apps are provisioned using modified to my needs ansible-nas
Apps
All the apps I use are FOSS (free and open-source). These are the ones that I currently use (in no particular order):
- homepage - Dashboard
- immich - High performance self-hosted photo and video management solution
- glances - Like
htop
but via HTTP - grafana - Monitoring
- calibreweb - eBook library
- jellyfin - Media server
- gitea - Git server
- mysql - Database
- mealie - Recipe manager
- wallabag - Save and read web pages later
- portainer - Docker management
- miniflux - RSS reader
- traefik - Reverse proxy
- YoutubeDL-Material - youtube-dl web interface
- wireguard - VPN
Future plans
- Proper backups to an offsite location (guilty of not doing this yet 😬)
- Make my home server available from the internet (I’ve got dynamic IP, so I’ll need to configure DDNS for this)
- Upgrade RAM to 32GB
- Add watchtower for automatic updates
- Replace YoutubeDL-Material with tubearchivist
- Replace wireguard with tailscale, look into zerotier
- Add gpt-researcher
- Add private-gpt