071d2341958a6d5f5869c68bff1e22754679de4c
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 Stack (media
profile)
- Sonarr (8989) - TV series management
- Radarr (7878) - Movie management
- Lidarr (8686) - Music management
- Bazarr (6767) - Subtitle management
- Prowlarr (9696) - Indexer management
- FlareSolverr (8191) - Cloudflare bypass
- Jellyfin (8096) - Media streaming server
- Jellyseerr (5055) - Media request management
- qBittorrent (7070) - Download client
- Multi-Scrobbler (9078) - Music scrobbling
- Maloja (42010) - Music statistics
🛠️ Utilities (utilities
profile)
- Homepage (7575) - Service dashboard
- FileBrowser (6633) - Web file manager
- Syncthing (8384) - File synchronization
- Obsidian Remote (8181) - Note-taking
- Stirling PDF (8090) - PDF processing
- RustDesk - Remote desktop server
- Gramps (5511) - Genealogy management
- Newt - Notification service
- RackNerd API Converter (5000) - VPS monitoring API
📄 Documents (documents
profile)
- Paperless NGX (8100) - Document management
- Paperless AI (3040) - AI document enhancement
- Gotenberg - Document conversion
- Tika - Content extraction
- OnlyOffice - Document editing
📊 Monitoring (monitoring
profile)
- 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 nameTZ
- 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
- Port conflicts: Check if ports are already in use
- Permission issues: Ensure PUID/PGID match your user
- Volume mounts: Verify directory paths exist
- 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
- Follow the existing structure when adding services
- Add health checks to new services
- Use environment variables for configuration
- Update documentation for new services
📄 License
[Add your license here]
⚠️ Important: This setup includes production credentials. Ensure .env
is never committed to version control.
Description