# Docker Media & Utility Stack A comprehensive Docker Compose setup for media management, document processing, and various utility services. ## 🚀 Quick Start ```bash # Clone the repository git clone cd # Start all services docker compose up -d ``` ## 📋 Services Overview ### 🎬 Media Management - **Bazarr** (6767) - Subtitle Management - **FlareSolverr** (8191) - Cloudflare Bypass - **Jellyfin** (8096) - Media Streaming Server - **Jellyseerr** (5055) - Media Request Management - **Prowlarr** (9696) - Indexer Management - **qBittorrent** (7070) - Download Client - **Radarr** (7878) - Movie Management - **Sonarr** (8989) - TV Series Management ### 🎵 Music & Scrobbling - **Lidarr** (8686) - Music management - **Lidarr Importer API** (5110) - API of Maloja DB for Lidarr Import - **Maloja** (42010) - Music Statistics - **MBID-Poller** - Polls Lidar API with Scrobbled artists then auto adds once found. - **Multi-Scrobbler** (9078) - Music Scrobbling - **Maloja to Lidarr Importer** - Scrobble Artist List for Custom Import - **Pinchflat** (8945) - Youtube Content Downloader - **Soulseek** (5030) - P2P Filesharer - **Soularr** - Intermediary between Lidarr and Soulseek ### 📄 Document Management - **Gotenberg** - Document Conversion - **OnlyOffice** (8054) - Document Editing - **Paperless AI** (3040) - AI Document Enhancement - **Paperless NGX** (8100) - Document Management - **Redis** - Paperless Broker - **MariaDB** - Paperless Database - **Stirling PDF** (8090) - PDF Processing - **Tika** - Content Extraction ### 🏠 Personal Applications - **AdventureLog Frontend** (8015) - Adventure tracking interface - **AdventureLog Backend** (8016) - Adventure tracking API - **AdventureLog Database** - PostgreSQL database - **Gramps** (5511) - Genealogy management - **Gramps Celery** - Background task processing - **Gramps Redis** - Task queue - **KitchenOwl** - (8081) Recipe and Grocery Manager - **LiteLLM** (4000) - LLM API Flattening - **LiteLLM Postgres** - LLM database - **Obsidian Remote** (8181) - Note-taking - **Redbot** - Discord Bot - **Syncthing** (8384) - File synchronization ### 🛠️ System Utilities - **Bytestash** (5661) - Private Pastebin - **Docker Proxy** (2375) - Docker API proxy - **FileBrowser** (6633) - Web file manager - **FoundryVTT Watcher** (30000) - FoundryVTT player login watcher - **Glances** - Resource manager - **Homepage** (7575) - Service dashboard - **iPerf3 Server** (5201) - LAN Network Speedtest server - **RustDesk (hbbr)** - Remote desktop relay - **RustDesk (hbbs)** - Remote desktop signaling - **Newt** - Notification service - **RackNerd API Converter** (5000) - VPS monitoring API - **Speedtest Database** - MariaDB for speedtest - **Speedtest Tracker** (8180) - Network monitoring - **Watchtower** - Container updates - **Whisper** - Speech Recognition System ### 💻 Proxmox Host The core of this environment is a Proxmox host that orchestrates multiple services using both VMs and LXCs for resource isolation and management. The services currently running include: - **AdGuard** - Network-wide ad and tracker blocking service. - **Vaultwarden** - Self-hosted Bitwarden server for secure password management. - **Immich** - Self-hosted, open-source photo and video backup solution. - **n8n** - Workflow automation tool for connecting apps and services. - **HAOS (Home Assistant)** - VM dedicated to home automation. - **Wordpress** - Content management system for website hosting. - **FoundryVTT** - Self-hosted virtual tabletop for role-playing games. - **Crafty Controller** - Server manager for Minecraft. - **Nextcloud OS** - Platform for private file hosting and collaboration. ## 🏗️ Architecture The stack is organized into logical service groups: ``` /docker # Stateless / ephemeral services ├── docker-compose.yml # Main orchestration for ephemeral services ├── .env # Environment variables ├── .env.template # Template for new deployments ├── services/ │ ├── filebrowser/ │ ├── homepage/ │ └── ... # Other stateless services /docker-local # Stateful / database-backed services ├── docker-compose.yml # Orchestrates all local stateful services ├── Arrs/ │ ├── Sonarr/config/ │ ├── Radarr/config/ │ └── ... └── [service-name]/config/ ``` ## 🔧 Configuration ### Environment Variables Key configuration is handled through `.env`: - `DOMAIN` - Your domain name - `TZ` - Timezone (Pacific/Auckland) - `DATA_ROOT` - Media storage path (/data) - Database credentials for each service ## 📁 Directory Structure Ensure these directories exist: ``` /data/ # Media storage ├── movies/ ├── tv/ ├── music/ ├── torrents/ │ ├── incomplete/ │ └── complete/ ``` ## 🔒 Security Features - **No hardcoded secrets** - All sensitive data in `.env` - **Network isolation** - Separate networks for different stacks - **Health checks** - Automatic service monitoring - **Read-only mounts** - Docker socket proxy with restricted access ## 🌐 Network Configuration - **arr_network** (172.20.0.0/16) - Media services - **database_network** (172.21.0.0/16) - Database services Static IPs assigned for reliable service discovery. ## 🔄 Management Commands ```bash # View running services docker compose ps # View logs docker compose logs [service-name] # Update a service docker compose pull [service-name] docker compose up -d [service-name] # Stop all services docker compose down # Stop and remove volumes (⚠️ DATA LOSS) docker compose down -v ``` ## 🚨 Troubleshooting ### Common Issues 1. **Port conflicts**: Check if ports are already in use 2. **Permission issues**: Ensure PUID/PGID match your user 3. **Volume mounts**: Verify directory paths exist 4. **Network issues**: Check firewall settings ### Health Checks Most services include health checks. View status: ```bash docker compose ps # Shows health status for each service ``` ## 🔐 Security Notes - `.env` contains sensitive data - keep it secure - Consider using Docker secrets for production - Regular updates via Watchtower - Monitor access logs ## 🤝 Contributing 1. Follow the existing structure when adding services 2. Add health checks to new services 3. Use environment variables for configuration 4. Update documentation for new services --- **⚠️ Important**: This setup includes production credentials. Ensure `.env` is never committed to version control.