Docker Media & Utility Stack

A comprehensive Docker Compose setup for media management, document processing, and various utility services.

🚀 Quick Start

# Clone the repository
git clone <your-repo-url>
cd <repo-name>

# 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
  • Pinchflat (8945) - Youtube Content Downloader
  • 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
  • Maloja to Lidarr Importer - Scrobble Artist List for Custom Import

📄 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

  • 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

# 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:

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.

Description
My Homelab config
Readme 1.2 GiB