a multi-container docker application to run an automated download pod, aptly named downloadsquad.
contains the following in a single compose file:
- wireguard (linuxserver/docker-wireguard) but any VPN tunnel can be used like qdm12/gluetun or dperson/openvpn-client
- rtorrent behind the VPN container (crazy-max/docker-rtorrent-rutorrent)
- prowlarr behind the VPN container (linuxserver/docker-prowlarr)
- radarr (linuxserver/docker-radarr)
- lidarr (linuxserver/docker-lidarr)
- sonarr (linuxserver/docker-sonarr)
- readarr (linuxserver/docker-readarr)
features:
- unix domain sockets for secure & efficient communicate around the VPN, without having to use the hacky docker links approach
- all containers accessible from a single port, without having to use URL redirects
- simple web UI with status indicators & dark mode support
- clone this repo
- configure the VPN tunnel (wg0.conf into ./wireguard or use a different tunnel entirely)
- run docker-compose up
the web UIs of all containers is accessible at port 80, depending on what hostname is passed in the HTTP request. add the following line to your hosts file to access the web UI easily (using the IP address of your docker host):
127.0.0.1 downloadsquad rtorrent.downloadsquad sonarr.downloadsquad lidarr.downloadsquad readarr.downloadsquad radarr.downloadsquad prowlarr.downloadsquad
then you can visit the following in your browser to access the service status page:
- http://downloadsquad (or http://downloadsquad. if you are on Windows, note the trailing dot)
individual service can be accessed at the following URLs:
- http://rtorrent.downloadsquad
- http://prowlarr.downloadsquad
- http://radarr.downloadsquad
- http://lidarr.downloadsquad
- http://sonarr.downloadsquad
- http://readarr.downloadsquad
give it 30 seconds or so for the individual services to start up
notes:
- all containers are visible to each other as "localhost"
- make sure you are using http (no s)
- you will likely want to set up port forwarding on the VPN tunnel container for rtorrent if not using Wireguard
- this project runs out of the box but make sure you change the volumes to persistent ones if you want to use it long term
- make sure to test that prowlarr & rtorrent are behind the VPN by running
docker exec -it compose-downloadsquad-rtorrent-1 curl api.ipify.org
&docker exec -it compose-downloadsquad-prowlarr-1 curl api.ipify.org
- test to make sure e.g. sonarr is not behind the VPN
docker exec -it compose-downloadsquad-sonarr-1 curl api.ipify.org
optional:
- consider locking the docker image versions to specific versions rather than "latest" for supply chain security/consistency.
we only want to pass rtorrent
& prowlarr
through the VPN, but they still need to communicate with containers outside the VPN. So we use unix domain sockets on a temporary docker volume for secure & efficient communication around the VPN + 2 instances of nginx to proxy requests through them.
the security of this project has not been verified. please do not use it for anything important without double-checking it yourself.
master-hax/compose-wireguard-ipfs - a similar project for IPFS instead of bittorrent
master-hax/uds-proxy-mod - an s6 based docker mod to proxy requests through unix domain sockets