This repository provides a Docker Compose configuration for setting up a comprehensive media server environment using Docker containers. The configuration includes various media management tools such as Plex, Sonarr, Radarr, Bazarr, Overseerr, Tautulli, Flaresolverr, VPN for secure network connectivity, Netdata for system monitoring, and Watchtower for automatic container updates.
- A VPN service (I use NordVPN)
- Docker
- Docker Compose
-
Clone this repository to your local machine:
git clone https://github.com/izm20/all-in-one-media-server.git cd all-in-one-media-server
-
Customize the
.env
file with your configuration:Before you start using the Docker Compose setup, make sure to configure the
.env
file to match your environment and preferences. Here's a breakdown of the variables you can set in the.env
file:PUID
: 0PGID
: 0TZ
: Your desired timezone (e.g.,"America/New_York"
).
MEDIADIR
: Path to your media directory where your media files are located.CONFIGDIR
: Path to your configuration directory where your tool configurations will be stored.
PLEX_PUID
: UID of the user for Plex.PLEX_PGID
: GID of the group for Plex.PLEXMEDIA
: Path to your Plex libraries.PLEX_ADVERTISE_IP
: URL for Plex server access.
ORGANIZR_PUID
: UID of the user for Organizr.ORGANIZR_PGID
: GID of the group for Organizr.
CAPTCHA_SOLVER
: Type of CAPTCHA solver to use (e.g.,"hcaptcha-solver"
).
VPN_SERVICE_PROVIDER
: Your VPN provider's name.OPENVPN_USER
: Encrypted username for VPN.OPENVPN_PASSWORD
: Encrypted password for VPN.SERVER_REGIONS
: Desired server regions for VPN.VPN_TYPE
: Type of VPN service to use (e.g.,"wireguard"
,"openvpn"
).
Refer to the gluetun GitHub repository for more information on configuring the VPN service.
Make sure to replace the placeholders (<...>
) with your actual values.
Note: Be cautious with sensitive information like passwords and encrypted credentials in the .env
file. Keep it secure and never share it publicly.
-
Configure Services:
- Open
docker-compose.yml
and adjust the environment variables, volumes, ports, etc., for each service as needed.
- Open
-
Start the Containers:
docker-compose up -d
- Plex: Media server.
- Prowlarr: Indexer manager for Sonarr & Radarr.
- Radarr: Movie search agent.
- Sonarr: TV show search agent.
- Bazarr: Subtitle grabber.
- Overseerr: Media requesting tool.
- Tautulli: Plex monitoring.
- VPN: Secure network connectivity.
- Deluge: Torrent downloader.
- Flaresolverr: DNS resolver for CAPTCHA bypass.
- Portainer: Container management.
- Netdata: System monitoring.
- Watchtower: Automatic container updates.
- Organizr: A customized homepage for your services.
- Each service's configuration can be modified in the
docker-compose.yml
file. - Adjust environment variables, volumes, ports, etc., to meet your requirements.
- Access Bazarr web UI at http://localhost:6767.
- Configure your preferred subtitle download providers.
- Set up movie and TV show libraries to automatically fetch subtitles.
- Access Overseerr web UI at http://localhost:5055.
- Set up your media requests and integration with other services.
- Access Plex web UI at http://localhost:32400/web.
- Sign in or create a Plex account.
- Add libraries for your media content.
- Access Prowlarr web UI at http://localhost:9696.
- Configure indexers for Sonarr and Radarr.
- Access Radarr web UI at http://localhost:7878.
- Add movies to your library and configure your download client.
- Access Sonarr web UI at http://localhost:8989.
- Add TV shows to your library and configure your download client.
- Access Tautulli web UI at http://localhost:8181.
- Configure Plex monitoring and notifications.
- Access Portainer web UI at http://localhost:9000.
- Manage and monitor your Docker containers with ease.
- Connects your services securely to the VPN network.
- Access Flaresolverr configuration via http://localhost:8191.
- Configure CAPTCHA solving options for various services.
- Now this service is under the VPN network.
- Access Deluge web UI at http://localhost:8112.
- Set up your download directories and preferences.
- Now this service is under the VPN network.
- Access Organizr web UI at http://localhost:9983.
- Configure Organizr to access and manage all your media server tools in one place.
- Access Netdata web UI at http://localhost:19999.
- Monitor system performance and resource usage in real-time.
- Watchtower is responsible for automatic container updates.
- Configuration options for Watchtower can be found in the
docker-compose.yml
file under thewatchtower
service. - By default, Watchtower is scheduled to check for updates every Sunday at 4:00 AM (00:00:00 UTC on Sundays). You can adjust the schedule as needed.
- Keep sensitive information (e.g., tokens, passwords) secure in the
.env
file. - This setup is extensible and can be further customized to fit your needs.
This project is licensed under the MIT License.