Home Server
Personal infrastructure on a small N100 box running Proxmox and Docker, with private services exposed through Cloudflare Tunnel where needed.
homelabproxmoxdockercloudflareself-hosted
A small machine running the services I use every day. Not a cluster, not a data center; just one box that is easy to understand and easy to rebuild.
Hardware
| Part | Model |
|---|---|
| CPU | Intel N100, 4 cores / 4 threads |
| RAM | 16GB DDR5 |
| System drive | 256GB NVMe |
| Data drives | 2TB HDD x 2 |
| Case | ITX small form factor |
| PSU | 120W picoPSU |
The goal is low idle power, enough storage for personal services, and hardware that can sit quietly at home without becoming another maintenance project.
Software Stack
- Proxmox VE for virtualization.
- Docker for service packaging and repeatable deployment.
- Cloudflare Tunnel for public access without exposing the home network directly.
- Cloudflare Access in front of sensitive services.
Services
| Service | Purpose | Access |
|---|---|---|
| Vaultwarden | Password manager | Cloudflare Access |
| Gitea | Private Git hosting | Cloudflare Access |
| Jellyfin | Media server | LAN first, tunnel when needed |
| Pi-hole | DNS and ad blocking | LAN only |
| Samba | File sharing | LAN only |
| Grafana + Prometheus | Monitoring | LAN only |
Network
Internet -> Cloudflare Tunnel -> home server
|
v
Cloudflare Access
|
v
Docker LXC
|
v
Vaultwarden / Gitea / Jellyfin
LAN devices -> Pi-hole DNS -> local service routes
Why Self-Host
- Control over data, configuration, and upgrades.
- Cost that stays predictable after the initial hardware purchase.
- Learning from running real services instead of disposable demos.
- Portability because most services are containerized and documented.
Boundaries
I do not self-host everything. Email stays on a managed provider, critical backups are encrypted and stored off-site, and DNS remains with Cloudflare. The point is practical ownership, not doing every hard thing from scratch.