docker-compose.example.yml
Rama main · réplica de lectura del repositorio original.
# Unshacklarr next to Sonarr, with unshackle serve in its own container.
# 1. Save this file as docker-compose.yml and .env.example as .env next to it, then fill in .env
# (nothing else of the repository is needed: see the README's Quick start).
# 2. Put your Unshackle config in ./unshackle (unshackle.yaml, Cookies/, WVDs/, PRDs/), your
# services in ./services (one folder per service, as in unshackle/services), and give
# unshackle.yaml an API key: serve: {api_secret: <the UNSHACKLE_API_KEY of .env>}
# and its folders as this container sees them (the README's Quick start has the lines):
# directories: {cookies: /config/unshackle/Cookies, wvds: /config/unshackle/WVDs,
# prds: /config/unshackle/PRDs, cache: /data/cache, temp: /data/temp}
# 3. docker compose up -d (the first time, it builds unshackle serve), then open
# http://<this host>:8788. The setup code is in docker logs unshacklarr.
#
# Updating Unshacklarr: docker compose pull unshacklarr && docker compose up -d --no-deps unshacklarr
# (--no-deps leaves Unshackle and its downloads running). Unshackle, when nothing downloads:
# docker compose build --pull unshackle && docker compose up -d.
#
# The downloads folder is mounted in both containers at the same path, /downloads.
# SONARR_DOWNLOADS is that same folder as Sonarr sees it.
name: unshacklarr
services:
unshackle:
# Unshackle has no published image: it is built here, once, from its own source
build:
context: https://github.com/OwnzZzZ/Unshacklarr.git#main:docker
dockerfile: unshackle.Dockerfile
image: unshackle-serve:latest
container_name: unshackle
restart: unless-stopped
user: "${PUID:-1000}:${PGID:-1000}" # the owner Sonarr expects on downloaded files
environment:
- TZ=${TZ:-UTC}
volumes:
- ./unshackle:/config/unshackle
- ./services:/app/unshackle/services # Unshackle itself ships only an EXAMPLE service
- ./unshackle-data:/data # its cache and key vault
- ${DOWNLOADS_DIR}:/downloads
# no ports: only Unshacklarr talks to it, on the Docker network
unshacklarr:
image: ghcr.io/ownzzzz/unshacklarr:latest # built by the project's CI: nothing to build here
container_name: unshacklarr
restart: unless-stopped
user: "${PUID:-1000}:${PGID:-1000}"
depends_on: [unshackle]
environment:
- TZ=${TZ:-UTC}
- UNSHACKLE_URL=http://unshackle:8786
- UNSHACKLE_API_KEY=${UNSHACKLE_API_KEY}
- SONARR_URL=${SONARR_URL:-http://sonarr:8989} # starting values: the setup and Settings take over
- SONARR_DOWNLOADS=${SONARR_DOWNLOADS:-}
- UNSHACKLE_CONFIG_DIR=/unshackle-config # its cookies and CDMs, managed from Settings
- UNSHACKLE_TEMP_DIR=/unshackle-temp # Unshackle's work folder: how far a mux is, in Activity
volumes:
- ./data:/data # config.yaml, history, caches
- ./unshackle:/unshackle-config # the same folder as Unshackle's: unshackle.yaml, Cookies, WVDs, PRDs
- ./unshackle-data/temp:/unshackle-temp:ro # its temp: folder (directories: temp), read only
- ${DOWNLOADS_DIR}:/downloads
ports:
- 8788:8788
# To reach Sonarr by name, join its network:
# networks: [default, sonarr]
# networks:
# sonarr:
# external: true
# name: <the network of your Sonarr container>