Giter Site home page Giter Site logo

compose-downloadsquad's Introduction

compose-downloadsquad

a multi-container docker application to run an automated download pod, aptly named downloadsquad.

dark mode: dark mode

light mode: light mode

contains the following in a single compose file:

  1. wireguard (linuxserver/docker-wireguard) but any VPN tunnel can be used like qdm12/gluetun or dperson/openvpn-client
  2. rtorrent behind the VPN container (crazy-max/docker-rtorrent-rutorrent)
  3. prowlarr behind the VPN container (linuxserver/docker-prowlarr)
  4. radarr (linuxserver/docker-radarr)
  5. lidarr (linuxserver/docker-lidarr)
  6. sonarr (linuxserver/docker-sonarr)
  7. readarr (linuxserver/docker-readarr)

features:

  1. unix domain sockets for secure & efficient communicate around the VPN, without having to use the hacky docker links approach
  2. all containers accessible from a single port, without having to use URL redirects
  3. simple web UI with status indicators & dark mode support

how to set it up

  1. clone this repo
  2. configure the VPN tunnel (wg0.conf into ./wireguard or use a different tunnel entirely)
  3. run docker-compose up

how to use it

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:

individual service can be accessed at the following URLs:

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.

how it works

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.

related projects

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

compose-downloadsquad's People

Contributors

master-hax avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.