A comprehensive media server setup using Docker, featuring multiple services for streaming, downloading, and managing media content.
This stack includes the following services:
- Jellyfin: Media streaming server
- Sonarr: TV shows management
- Radarr: Movies management
- Prowlarr: Indexer management
- qBittorrent: Download client
- Jellyseerr: Request management system
- Nginx Proxy Manager: Reverse proxy
- FlareSolverr: Proxy tool
- Homarr: Dashboard for services
- Bazarr: Subtitle management
- Cloudflare DDNS: Dynamic DNS updater
- GameVault: Game management system
- Docker
- Docker Compose
- At least 4GB RAM
- Sufficient storage space for media
- Linux-based system (recommended)
-
Clone this repository:
git clone https://github.com/yourusername/media-server.git cd media-server -
Copy the example environment file:
cp .env.example .env
-
Edit the .env file with your settings:
nano .env
-
Create necessary directories:
mkdir -p {config,media,cache} -
Start the stack:
docker-compose up -d
- Jellyfin: 8096
- Prowlarr: 9696
- Sonarr: 8989
- Radarr: 7878
- qBittorrent: 8081
- Jellyseerr: 5055
- Nginx Proxy Manager: 80, 443, 81
- FlareSolverr: 8191
- Homarr: 7575
- Bazarr: 6767
- GameVault: 8080
.
├── cache/ # Cache files
├── config/ # Application configs
├── media/ # Media files
│ ├── movies/
│ ├── TV shows/
│ └── downloads/
├── homarr/ # Homarr configuration
├── docker-compose.yml
├── .env
└── README.md
-
Nginx Proxy Manager:
- Access at http://localhost:81
- Default credentials:
- Email: admin@example.com
- Password: changeme
-
Media Services:
- Configure Sonarr, Radarr, and Prowlarr to work together
- Set up Jellyfin libraries
- Configure Jellyseerr to connect with Jellyfin
- Always change default passwords
- Use strong passwords in .env file
- Keep Docker and all containers updated
- Use reverse proxy with SSL for remote access
- Restrict ports exposure to needed ones only
- Regular backups of configuration
- Check container logs:
docker-compose logs [service_name] - Ensure correct permissions on mounted volumes
- Verify network connectivity between containers
- Check available disk space
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.