Fork of https://github.com/AdrienPoupa/docker-compose-nas.
A Docker stack for a home media setup.
adguardhomedockerdocker-composehomepagejellyfinletsencryptnaspiaprivateinternetaccessprowlarrqbittorrentradarrself-hostedsonarrssltorrenttraefiktraefik-v2vpnwireguard
heimdall | ||
jellyfin | ||
letsencrypt | ||
pia | ||
pia-shared | ||
prowlarr | ||
qbittorrent | ||
radarr | ||
sonarr | ||
.env.example | ||
.gitignore | ||
CONFIGURATION.md | ||
docker-compose.yml | ||
INSTALL.md | ||
README.md | ||
update-config.sh |
Docker Compose NAS
After searching for the perfect NAS solution, I realized what I wanted could be achieved with some Docker containers on a vanilla Linux box. The result is an opinionated Docker Compose configuration capable of browsing indexers to retrieve media resources and downloading them through a Wireguard VPN with port forwarding. SSL certificates and remote access through Tailscale are supported.
Applications
The following applications are available:
- Sonarr: PVR for newsgroup and bittorrent users
- Radarr: Movie collection manager for Usenet and BitTorrent users
- Prowlarr: Indexer aggregator for Sonarr and Radarr
- qBittorrent: Bittorrent client with a complete web UI
- PIA Wireguard VPN: Encapsulate qBittorrent traffic in PIA using Wireguard with port forwarding.
- Jellyfin: Media server designed to organize, manage, and share digital media files to networked devices
- Heimdall: Application dashboard
- Traefik: Reverse proxy
- Watchtower: Automated Docker images update
Installation
See installation instructions.
TLDR: cp .env.example .env
, edit to your needs then sudo docker compose up -d
, then for the first time ./update-config.sh
.
Configuration
See configuration.
Containers
Application | Image | URL | Notes |
---|---|---|---|
Sonarr | linuxserver/sonarr | /sonarr | |
Radarr | linuxserver/radarr | /radarr | |
Prowlarr | linuxserver/prowlarr:develop | /prowlarr | develop tag as it is not stable yet |
PIA Wireguard VPN | thrnz/docker-wireguard-pia | ||
qBittorrent | linuxserver/qbittorrent:4.5.0-libtorrentv1 | /qbittorrent | Uses VPN network Using Libtorrent 1.x |
Jellyfin | linuxserver/jellyfin | /jellyfin | |
Heimdall | linuxserver/heimdall | / | |
Traefik | traefik | ||
Watchtower | watchtower |
Improvement
There is always room for improvement. I did not need those containers, so I did not include them, but maybe you could benefit from:
- Bazarr: companion application to Sonarr and Radarr that manages and downloads subtitles
- Lidarr: music collection manager for Usenet and BitTorrent users
- FlareSolverr: Proxy server to bypass Cloudflare protection, useful for some indexers in Prowlarr
- Jackett: API Support for your favorite torrent trackers, as a Prowlarr replacement
- Pi-hole: DNS that blocks ads
- Expose services with CloudFlare Tunnel if Tailscale is not enough
- you tell me!