This setup is designed to be modular and easy to maintain. Each service is defined in its own docker-compose.yml
file with environment variables for configuration. Since I'm behind a CGNAT, I use Cloudflare Zero Trust and a tunnel to expose my services to devices outside my network.
Note: This is not a tutorial but a personal reference. If you find it useful, feel free to use it. However, many configurations are stored in data folders, environment variables, or the Cloudflare dashboard, which are not included here. I won’t be providing support for this setup, but feel free to reach out if you have questions.
These are the services I personally felt a need for, each with its own purpose and functionality, all running in Docker containers. You can find more details in their respective repositories.
- Calibre-Web → Web app for managing e-books.
- Stremio-Server → Streaming server for media content.
- Cloudflared → Secure tunnel to expose local services through Cloudflare.
- Sshwifty → Web-based SSH client for remote access via browser.
- n8n → Workflow automation tool for integrating and automating services.
- Cup → Checks for Docker container updates.
- Beszel → Lightweight server monitoring hub with historical data, docker stats, and alerts.
- Uptime-Kuma → Self-hosted uptime monitoring tool.
- Homarr → Customizable dashboard for organizing and accessing services.
- Wallos → Personal subscription tracker.
- Stirling-PDF → Web-based PDF manipulation tool.
- qBittorrent → Web-based BitTorrent client for managing downloads.
The folder structure ensures easy maintenance by keeping each service isolated and organized:
/
├── docker-compose.yml
├── .env
├── apps/
│ ├── <service>/
│ │ ├── docker-compose.yml
│ │ ├── .env (when needed)
├── data/
│ ├── <service>/
├── books/
├── downloads/
docker-compose.yml
→ Main file including all services..env
→ Environment variables for the maindocker-compose.yml
file.apps/
→ Each service has its own folder with adocker-compose.yml
and an optional.env
file.data/
→ Persistent storage, mounted to containers to prevent data loss.books/
→ Storage location for Calibre-Web books.downloads/
→ Folder for qBittorrent downloads.