A centralized server machine to provide local network services in the home and services to the public web.
Purpose
This project aims to self-host many services for my local LAN network and to additional self-host public services to the world wide web. This offers many benefits as follows.
- Privacy. I get to manage all of my data and not another company that can snoop into my information.
- Cost. I do not need to keep paying for a monthly subscription (although it is a higher up-front cost for hardware).
- Control. If a business decides to end its service, I am not affected since I run my own service.
How it’s made
The operating system that is running my virtualization server is Proxmox — an open source virtualization environment. One linux container (LXC) on Promox is dedicated to running the docker containers using infrastructure as code — Docker Compose. Docker containers are run on a 1TB SSD and have bind mounts to a larger 12TB (8TB useable) ZFS Raid 5 HDD array of 3 disks. A reverse proxy server Nginx Docker container is used to route public facing traffic to certain containers. Public facing containers each have their own subdomain and are encrypted with SSL/TLS signed certificates from Let’s Encrypt certificate authority.
Features
- Cloud Storage — Nextcloud
This allows me to backup my photos from my desktop, laptop, and phone over the network and outside the home.

- CCTV Monitoring — Home Assistant, Frigate
Gives me a live feed to monitor activities inside and outside the house. Equipped with AI detection to record and take snapshot of people.

- NAS Backup — Duplicacy, Backblaze
This is a backup of my local data to the cloud. A disaster is bound to occur. If my house and server is completely destroyed by fire, flood, earthquake, or a meteor, I will still have my data stored in another location. Follows the 3-2-1 backup strategy.

- Fileshare — Samba
A simple local network file store accessible anywhere on the local LAN network. Any OS — Windows, Linux, MacOS machines can access this fileshare.

- Media System — Jellyfin
Watch videos anywhere in my house that is connected to LAN. Works great with a Raspberry Pi connected to a TV.
- Network Device Management — UniFi Controller
This is a software to manage UniFi network devices on my local network. It facilitates updating firmware and apply network configuration changes across multiple UniFi devices.
