{"id":20075000,"url":"https://github.com/master-hax/compose-downloadsquad","last_synced_at":"2025-05-05T21:32:52.429Z","repository":{"id":193628423,"uuid":"565706305","full_name":"master-hax/compose-downloadsquad","owner":"master-hax","description":"a multi-container application to run a VPN protected download pod","archived":false,"fork":false,"pushed_at":"2023-04-09T07:27:37.000Z","size":70,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T04:42:01.243Z","etag":null,"topics":["docker","docker-compose","downloadsquad","firewall","gluetun","lidarr","openvpn","prowlarr","radarr","readarr","rtorrent","socket","sonarr","torrent","unix","unix-domain-socket","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/master-hax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-14T06:35:16.000Z","updated_at":"2024-12-12T21:06:50.000Z","dependencies_parsed_at":"2023-09-09T05:45:14.932Z","dependency_job_id":null,"html_url":"https://github.com/master-hax/compose-downloadsquad","commit_stats":null,"previous_names":["master-hax/compose-downloadsquad"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/master-hax%2Fcompose-downloadsquad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/master-hax%2Fcompose-downloadsquad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/master-hax%2Fcompose-downloadsquad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/master-hax%2Fcompose-downloadsquad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/master-hax","download_url":"https://codeload.github.com/master-hax/compose-downloadsquad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252580112,"owners_count":21771265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","downloadsquad","firewall","gluetun","lidarr","openvpn","prowlarr","radarr","readarr","rtorrent","socket","sonarr","torrent","unix","unix-domain-socket","vpn","wireguard"],"created_at":"2024-11-13T14:57:02.310Z","updated_at":"2025-05-05T21:32:47.416Z","avatar_url":"https://github.com/master-hax.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# compose-downloadsquad\n\na multi-container docker application to run an automated download pod, aptly named downloadsquad.\n\ndark mode:\n![dark mode](https://user-images.githubusercontent.com/17506434/208304052-1cab39f4-25ec-481b-a663-aaa4a36c1924.png)\n\nlight mode:\n![light mode](https://user-images.githubusercontent.com/17506434/208304089-6e341050-ef42-440b-9875-53fc4773e0e6.png)\n\n\ncontains the following in a single compose file:\n1. wireguard ([linuxserver/docker-wireguard](https://github.com/linuxserver/docker-wireguard)) but any VPN tunnel can be used like [qdm12/gluetun](https://github.com/qdm12/gluetun) or [dperson/openvpn-client](https://github.com/dperson/openvpn-client)\n1. rtorrent behind the VPN container ([crazy-max/docker-rtorrent-rutorrent](https://github.com/crazy-max/docker-rtorrent-rutorrent))\n1. prowlarr behind the VPN container ([linuxserver/docker-prowlarr](https://github.com/linuxserver/docker-prowlarr))\n1. radarr ([linuxserver/docker-radarr](https://github.com/linuxserver/docker-radarr))\n1. lidarr ([linuxserver/docker-lidarr](github.com/linuxserver/docker-prowlarr))\n1. sonarr ([linuxserver/docker-sonarr](https://github.com/linuxserver/docker-sonarr))\n1. readarr ([linuxserver/docker-readarr](https://github.com/linuxserver/docker-readarr))\n\nfeatures:\n1. unix domain sockets for secure \u0026 efficient communicate around the VPN, without having to use the hacky docker links approach\n1. all containers accessible from a single port, without having to use URL redirects\n1. simple web UI with status indicators \u0026 dark mode support \n\n\n## how to set it up\n1. clone this repo\n1. configure the VPN tunnel (wg0.conf into ./wireguard or use a different tunnel entirely)\n1. run docker-compose up\n\n## how to use it\nthe web UIs of all containers is accessible at port 80, depending on what hostname is passed in the HTTP request.\nadd the following line to your hosts file to access the web UI easily (using the IP address of your docker host):\n```\n127.0.0.1 downloadsquad rtorrent.downloadsquad sonarr.downloadsquad lidarr.downloadsquad readarr.downloadsquad radarr.downloadsquad prowlarr.downloadsquad \n```\nthen you can visit the following in your browser to access the service status page:\n* [http://downloadsquad](http://downloadsquad) (or [http://downloadsquad.](http://downloadsquad.) if you are on Windows, note the trailing dot)\n\nindividual service can be accessed at the following URLs:\n* [http://rtorrent.downloadsquad](http://rtorrent.downloadsquad)\n* [http://prowlarr.downloadsquad](http://rtorrent.downloadsquad)\n* [http://radarr.downloadsquad](http://rtorrent.downloadsquad)\n* [http://lidarr.downloadsquad](http://rtorrent.downloadsquad)\n* [http://sonarr.downloadsquad](http://rtorrent.downloadsquad)\n* [http://readarr.downloadsquad](http://rtorrent.downloadsquad)\n\ngive it 30 seconds or so for the individual services to start up\n\nnotes:\n* all containers are visible to each other as \"localhost\"\n* make sure you are using http (no s)\n* you will likely want to set up port forwarding on the VPN tunnel container for rtorrent if not using Wireguard\n* 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\n* make sure to test that prowlarr \u0026 rtorrent are behind the VPN by running `docker exec -it compose-downloadsquad-rtorrent-1 curl api.ipify.org` \u0026 `docker exec -it compose-downloadsquad-prowlarr-1 curl api.ipify.org`\n* test to make sure e.g. sonarr is not behind the VPN `docker exec -it compose-downloadsquad-sonarr-1 curl api.ipify.org`\n\noptional:\n* consider locking the docker image versions to specific versions rather than \"latest\" for supply chain security/consistency.\n\n## how it works\nwe only want to pass `rtorrent` \u0026 `prowlarr` through the VPN, but they still need to communicate with containers outside the VPN. So we use [unix domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket) on a temporary docker volume for secure \u0026 efficient communication around the VPN + 2 instances of nginx to proxy requests through them.\n\nthe security of this project has not been verified. please do not use it for anything important without double-checking it yourself.\n\n## related projects\n\n[master-hax/compose-wireguard-ipfs](https://github.com/master-hax/compose-wireguard-ipfs) - a similar project for IPFS instead of bittorrent\n\n[master-hax/uds-proxy-mod](https://github.com/master-hax/uds-proxy-mod) - an s6 based docker mod to proxy requests through unix domain sockets\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaster-hax%2Fcompose-downloadsquad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaster-hax%2Fcompose-downloadsquad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaster-hax%2Fcompose-downloadsquad/lists"}