Files
Homelab/README.md

182 lines
5.0 KiB
Markdown

# 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 <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
- **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
- **Obsidian Remote** (8181) - Note-taking
- **Syncthing** (8384) - File synchronization
- **LiteLLM** (4000) - LLM API Flattening
### 🛠️ System Utilities
- **Docker Proxy** (2375) - Docker API proxy
- **FileBrowser** (6633) - Web file manager
- **Homepage** (7575) - Service dashboard
- **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.