0
0
Fork
You've already forked host_services
0
Services running on docker swarm
2025年09月26日 22:55:31 +02:00
.env_example Initial commit 2025年08月14日 18:21:41 +02:00
.gitignore Initial commit 2025年08月14日 18:21:41 +02:00
docker-compose.yaml updated the prowlarr version 2025年09月26日 22:28:14 +02:00
readme.md updated readme with a mistake i made 2025年09月26日 22:55:31 +02:00

Host services

A repo containing services running on docker swarm.

Deploying

First we need to prepare the environment. An example of the required variables is given, so just replace them with the correct values.

Docker swarm won't create anonymous volumes automatically. So create all mount points.

If you want to deploy remotely, you can aet an environment variable. This way it does not matter to what node you connect.

export DOCKER_HOST=ssh://<HOSTNAME>

To start, run:

export $(cat .dev_env) > /dev/null 2>&1; docker stack deploy -c docker-compose.yaml host_services

To update, run:

git checkout main
git pull -r
docker compose -f docker-compose.yaml pull
export $(cat .env) > /dev/null 2>&1; docker stack deploy -c docker-compose.yaml host_services --prune

RR Stack

The arr stack contains the following containers:

  • qbittorrent: the client
  • prowlarr: indexer
  • sonarr: series manager
  • radarr: movie manager

The bulk of the storage is handled over the network. The containers are bound to a host, due to a lack of shared storage capable of locking an sqlite database.

Setup

Each The images need to set up in a specific order, that is:

  1. qbittorrent
  2. prowlarr
  3. sonarr and radarr

qbittorrent

The default username is admin, and the password is generated randomly and printed to the logs.

Change the settings:

  • add an admin password at webui -> authentication -> set admin pass
  • edit the following torrent settings at bittorrent
    • bittorrent -> seeding-limits -> when ratio reaches 2, or is active for longer than active and inactive exceeds 131490 minutes (3 months), pause torrent
    • change torrent queueing at bittorrent -> torrent queueing, and set the following settings:
      • max active down: 10
      • max active up: 10
      • max active: 50
      • do not count slow torrent: true (2, 2, 60)
  • save!

prowlarr

Create a username and password, also enable for local users.

Change the settings:

used trackers: 1337x, rarbg

sonarr

Create a username and password, also enable for local users. (was set up when getting the api key for prowlarr)

Change the settings:

  • settings -> download-clients
    • + -> qbittorrent name: qbittorrent host: qbittorrent port: 8080 username: admin password: password set during qbittorrent setup category: sonarr remove completed: true other: default
  • settings -> profiles -> any, check all 1080p and higher checkboxes, enable auto upgrade until at least hdtv-2160p
  • settings -> ui -> -> calendar
    • first day of the week to monday
    • all date formats
    • save!
  • settings -> media management
    • select rename episodes standard episode format: {Series Title} - S{season:00}E{episode:00} - {Episode Title}, season folder format{Series Title} Season {season}
    • save!
    • add root folder (location of series, /content by default) and click on the path to load
    • wait for all series to be identified
    • set monitoring to off, as we don't need to get every series again (bottom left)
    • check if all series are matched correctly!
    • then import series
  • settings -> indexers
  • settings -> general -> analytics -> send anonymous usage data to off

radarr

Create a username and password, also enable for local users. (was set up when getting the api key for prowlarr)

Change the settings:

  • settings -> download-clients
    • + -> qbittorrent name: qbittorrent host: qbittorrent port: 8080 username: admin password: password set during qbittorrent setup category: sonarr remove completed: true other: default
  • settings -> profiles -> any, check all 1080p and higher checkboxes, enable auto upgrade until at least hdtv-2160p
  • settings -> ui -> -> calendar
    • first day of the week to monday
    • all date formats
    • save!
  • settings -> media management
    • select rename movies standard movie format: {Movie Title} ({Release Year})
    • save!
    • add root folder (location of series, /content by default) and click on the path to load
    • wait for all movies to be identified
    • set monitoring to off, as we don't need to get every movie again (bottom left)
    • check if all movies are matched correctly!
    • then import series
  • settings -> general -> analytics -> send anonymous usage data to off