# 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 - **Lidarr** (8686) - Music management - **Prowlarr** (9696) - Indexer management - **qBittorrent** (7070) - Download client - **Radarr** (7878) - Movie management - **Sonarr** (8989) - TV series management ### 🎵 Music & Scrobbling - **Maloja** (42010) - Music statistics - **Multi-Scrobbler** (9078) - Music scrobbling ### 📄 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 - **LiteLLM** (4000) - LLM API Flattening - **LiteLLM Postgres** - LLM database - **Obsidian Remote** (8181) - Note-taking - **Syncthing** (8384) - File synchronization ### 🛠️ System Utilities - **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 ## 🏗️ 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.