Project
Homelab
Linux server at home that hosts my projects with Docker Compose, exposed to the internet through Cloudflare Tunnel without opening ports.
- Linux
- Docker Compose
- Cloudflare Tunnel
- PostgreSQL
- Ollama
Context
I wanted to deploy my projects for real, not just locally, and to learn what sits between the code and the user: operating system, containers, networking, certificates and backups.
Architecture
A Linux server with Docker Compose, one file per service. PostgreSQL shared across projects with one database per application, and Ollama for the language models. Cloudflare Tunnel publishes the services under my domains without opening ports on the router.
Decisions
Cloudflare Tunnel over an exposed reverse proxy: I give up some control, but I get managed TLS and no direct attack surface on my home network. A single PostgreSQL instead of one per project keeps memory usage down on a small machine.
What I'd do differently
I'd automate backups and monitoring from the very first service.