In today's world, many everyday services such as, music streaming, photo storage, file syncing, and smart home controls are all deeply tied to commercial cloud platforms. These services often introduce recurring costs, privacy concerns, and reliance on third-party uptime.
To reduce costs and maintain control over my data, I self-host most of my digital infrastructure from home using three recycled computers. This ongoing project has taught me a great deal about Linux systems, networking, and cybersecurity. Inspired by resources like Awesome Selfhosted and the broader Docker ecosystem, Iβve set up a variety of services including:
- π Personal file syncing and encrypted cloud storage
- π΅ Music library and streaming with metadata management
- π§Ύ Recipe and meal planning website
- π Self-hosted password manager
- ποΈ Podcast streaming and aggregation
- π¨οΈ Remote 3D printer monitoring and job control
These services are now securely accessible through a private WireGuard VPN. Previously, I exposed them publicly using a reverse proxy and multi-factor authentication with a stack that included:
- π Nginx and Traefik for reverse proxying
- π Authelia for MFA and secure authentication
- π³ Docker for managing isolated, reproducible service containers
- βοΈ Cloudflare for DNS, proxying, and DDoS protection
- πΎ Static site hosting using Jekyll and Cloudflare Pages
- π Automated TLS certificates via Letβs Encrypt
- π‘οΈ Hardening with Fail2Ban and SSH configuration