feat: add decypharr (#23)

Co-authored-by: Viren070 <viren070@protonmail.com>
This commit is contained in:
Vidhin
2025-06-25 11:54:33 -05:00
committed by GitHub
parent ae0621360f
commit aa08c5ed57
13 changed files with 188 additions and 17 deletions
+2 -1
View File
@@ -120,6 +120,7 @@ BAZARR4K_HOSTNAME=4k.bazarr.${DOMAIN}
BESZEL_HOSTNAME=beszel.${DOMAIN}
COMET_HOSTNAME=comet.${DOMAIN}
DASHDOT_HOSTNAME=dash.${DOMAIN}
DECYPHARR_HOSTNAME=decypharr.${DOMAIN}
DOCKGE_HOSTNAME=dockge.${DOMAIN}
DOZZLE_HOSTNAME=dozzle.${DOMAIN}
EASYNEWS_PLUS_HOSTNAME=easynews-plus.${DOMAIN}
@@ -169,7 +170,7 @@ ZIPLINE_HOSTNAME=zipline.${DOMAIN}
ZURG_HOSTNAME=zurg.${DOMAIN}
# This is the list of all the domains for which Cloudflare DDNS will create A/AAAA records for.
DOMAINS=${ADDON_MANAGER_HOSTNAME},${AIOSTREAMS_HOSTNAME},${AIOSTREMIO_HOSTNAME},${ANIME_KITSU_HOSTNAME},${ARCANE_HOSTNAME},${AUTHELIA_HOSTNAME},${AUTOSYNC_HOSTNAME},${BAZARR_HOSTNAME},${BAZARR4K_HOSTNAME},${BESZEL_HOSTNAME},${COMET_HOSTNAME},${DASHDOT_HOSTNAME},${DOCKGE_HOSTNAME},${DOZZLE_HOSTNAME},${EASYNEWS_PLUS_HOSTNAME},${EASYNEWS_PLUS_PLUS_HOSTNAME},${HONEY_HOSTNAME},${HUNTARR_HOSTNAME},${JACKETT_HOSTNAME},${JACKETTIO_HOSTNAME},${JELLYFIN_HOSTNAME},${JELLYSEER_HOSTNAME},${LIBRESPEED_HOSTNAME},${MEDIAFLOW_PROXY_HOSTNAME},${MEDIAFUSION_HOSTNAME},${MINECRAFT_HOSTNAME},${NZBHYDRA2_HOSTNAME},${OMG_TV_STREMIO_ADDON_HOSTNAME},${OVERSEERR_HOSTNAME},${PLAUSIBLE_HOSTNAME},${PLEX_HOSTNAME},${PORTAINER_HOSTNAME},${PROWLARR_HOSTNAME},${RADARR_HOSTNAME},${RADARR4K_HOSTNAME},${RADARRANIME_HOSTNAME},${SEANIME_HOSTNAME},${SEARXNG_HOSTNAME},${SONARR_HOSTNAME},${SONARR4K_HOSTNAME},${SONARRANIME_HOSTNAME},${SPEEDTEST_TRACKER_HOSTNAME},${STREAMYSTATS_HOSTNAME},${STREMIO_ACCOUNT_BOOTSTRAPPER_HOSTNAME},${STREMIO_CATALOG_PROVIDERS_HOSTNAME},${STREMIO_JACKETT_HOSTNAME},${STREMIO_SERVER_HOSTNAME},${STREMIO_TRAKT_ADDON_HOSTNAME},${STREMTHRU_HOSTNAME},${TAUTULLI_HOSTNAME},${TMDB_ADDON_HOSTNAME},${TORBOX_MANAGER_HOSTNAME},${TRAEFIK_HOSTNAME},${UPTIME_KUMA_HOSTNAME},${VAULTWARDEN_HOSTNAME},${YAMTRACK_HOSTNAME},${ZILEAN_HOSTNAME},${ZIPLINE_HOSTNAME},${ZURG_HOSTNAME}
DOMAINS=${ADDON_MANAGER_HOSTNAME},${AIOSTREAMS_HOSTNAME},${AIOSTREMIO_HOSTNAME},${ANIME_KITSU_HOSTNAME},${ARCANE_HOSTNAME},${AUTHELIA_HOSTNAME},${AUTOSYNC_HOSTNAME},${BAZARR_HOSTNAME},${BAZARR4K_HOSTNAME},${BESZEL_HOSTNAME},${COMET_HOSTNAME},${DASHDOT_HOSTNAME},${DECYPHARR_HOSTNAME},${DOCKGE_HOSTNAME},${DOZZLE_HOSTNAME},${EASYNEWS_PLUS_HOSTNAME},${EASYNEWS_PLUS_PLUS_HOSTNAME},${HONEY_HOSTNAME},${HUNTARR_HOSTNAME},${JACKETT_HOSTNAME},${JACKETTIO_HOSTNAME},${JELLYFIN_HOSTNAME},${JELLYSEER_HOSTNAME},${LIBRESPEED_HOSTNAME},${MEDIAFLOW_PROXY_HOSTNAME},${MEDIAFUSION_HOSTNAME},${MINECRAFT_HOSTNAME},${NZBHYDRA2_HOSTNAME},${OMG_TV_STREMIO_ADDON_HOSTNAME},${OVERSEERR_HOSTNAME},${PLAUSIBLE_HOSTNAME},${PLEX_HOSTNAME},${PORTAINER_HOSTNAME},${PROWLARR_HOSTNAME},${RADARR_HOSTNAME},${RADARR4K_HOSTNAME},${RADARRANIME_HOSTNAME},${SEANIME_HOSTNAME},${SEARXNG_HOSTNAME},${SONARR_HOSTNAME},${SONARR4K_HOSTNAME},${SONARRANIME_HOSTNAME},${SPEEDTEST_TRACKER_HOSTNAME},${STREAMYSTATS_HOSTNAME},${STREMIO_ACCOUNT_BOOTSTRAPPER_HOSTNAME},${STREMIO_CATALOG_PROVIDERS_HOSTNAME},${STREMIO_JACKETT_HOSTNAME},${STREMIO_SERVER_HOSTNAME},${STREMIO_TRAKT_ADDON_HOSTNAME},${STREMTHRU_HOSTNAME},${TAUTULLI_HOSTNAME},${TMDB_ADDON_HOSTNAME},${TORBOX_MANAGER_HOSTNAME},${TRAEFIK_HOSTNAME},${UPTIME_KUMA_HOSTNAME},${VAULTWARDEN_HOSTNAME},${YAMTRACK_HOSTNAME},${ZILEAN_HOSTNAME},${ZIPLINE_HOSTNAME},${ZURG_HOSTNAME}
# ====================================================
# DOCKER COMPOSE CONFIGURATION
+1 -1
View File
@@ -20,7 +20,7 @@ services:
volumes:
- ${DOCKER_DATA_DIR}/autosync/config.yaml:/app/config.yaml
- /etc/localtime:/etc/localtime:ro
- /mnt:/mnt
- /mnt:/mnt:rslave
depends_on:
sonarr:
condition: service_healthy
+2 -2
View File
@@ -12,7 +12,7 @@ services:
volumes:
- ${DOCKER_DATA_DIR}/bazarr/default/config:/config
- ${DOCKER_DATA_DIR}/bazarr/default/data:/data
- /mnt:/mnt
- /mnt:/mnt:rslave
labels:
- "traefik.enable=true"
- "traefik.http.routers.bazarr.rule=Host(`${BAZARR_HOSTNAME?}`)"
@@ -43,7 +43,7 @@ services:
volumes:
- ${DOCKER_DATA_DIR}/bazarr/4k/config:/config
- ${DOCKER_DATA_DIR}/bazarr/4k/data:/data
- /mnt:/mnt
- /mnt:/mnt:rslave
labels:
- "traefik.enable=true"
- "traefik.http.routers.bazarr4k.rule=Host(`${BAZARR4K_HOSTNAME?}`)"
+6 -1
View File
@@ -12,6 +12,7 @@ include:
- cloudflare-ddns/compose.yaml
- comet/compose.yaml
- dash/compose.yaml
- decypharr/compose.yaml
- dockge/compose.yaml
- dozzle/compose.yaml
- easynews-plus/compose.yaml
@@ -65,7 +66,11 @@ include:
- yamtrack/compose.yaml
- zilean/compose.yaml
- zipline/compose.yaml
- zurg/compose.yaml
# Uncomment if you are using zurg and comment out decypharr
# There is also a way to use both together, but it requires 2 rclone instances
# To use both, update Zurg's rclone service name and its container name to rclone_zurg
# You will also need to change Zurg's rclone's `- /mnt/remote/realdebrid:/data:rshared` to `- /mnt/remote/zurg:/data:rshared`
# - zurg/compose.yaml
networks:
default:
+84
View File
@@ -0,0 +1,84 @@
services:
decypharr:
image: cy01/blackhole:latest # or cy01/blackhole:beta
container_name: decypharr
restart: unless-stopped
user: "${PUID}:${PGID}"
security_opt:
- "apparmor:unconfined"
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=002
volumes:
- /mnt/:/mnt:rslave
- ${DOCKER_DATA_DIR}/decypharr/:/app # config.json must be in this directory
labels:
- "traefik.enable=true"
- "traefik.http.routers.decypharr.rule=Host(`${DECYPHARR_HOSTNAME?}`)"
- "traefik.http.routers.decypharr.entrypoints=websecure"
- "traefik.http.routers.decypharr.tls.certresolver=letsencrypt"
- "traefik.http.routers.decypharr.middlewares=authelia@docker"
profiles:
- decypharr
- debrid_media_server
- all
rclone:
image: rclone/rclone:latest
container_name: rclone
restart: unless-stopped
environment:
TZ: ${TZ:-UTC}
PUID: ${PUID}
PGID: ${PGID}
RCLONE_BUFFER_SIZE: "0"
RCLONE_VFS_FAST_FINGERPRINT: "false"
RCLONE_VFS_READ_CHUNK_SIZE: "2M"
RCLONE_VFS_READ_CHUNK_SIZE_LIMIT: "32M"
RCLONE_VFS_READ_AHEAD: "2M"
RCLONE_VFS_READ_WAIT: "30ms"
RCLONE_VFS_CACHE_MIN_FREE_SPACE: "1G"
RCLONE_VFS_CACHE_MAX_AGE: "72h"
volumes:
- /mnt/remote/realdebrid:/data:rshared
- ${DOCKER_DATA_DIR}/decypharr/rclone.conf:/config/rclone/rclone.conf
- /mnt:/mnt
- ${DOCKER_DATA_DIR}/decypharr/cache:/cache
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/fuse:/dev/fuse:rwm
depends_on:
- decypharr
command: >
mount decypharr: /data
--allow-non-empty
--uid=${PUID}
--gid=${PGID}
--umask=002
--allow-other
--log-level=INFO
--vfs-fast-fingerprint
--async-read=true
--use-mmap
--no-checksum
--no-modtime
--rc
--rc-addr=0.0.0.0:9990
--rc-no-auth
--rc-web-gui
--rc-web-gui-no-open-browser
--user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
--dir-cache-time=10s
--vfs-cache-mode=full
--vfs-cache-max-size=100G
--vfs-cache-poll-interval=30s
--cache-dir=/cache
--vfs-read-chunk-size-limit=32M
profiles:
- all
- decypharr
- debrid_media_server
+1 -1
View File
@@ -11,7 +11,7 @@ services:
- PGID=${PGID}
volumes:
- ${DOCKER_DATA_DIR}/jellyfin:/config
- /mnt:/mnt
- /mnt:/mnt:rslave
labels:
- "traefik.enable=true"
- "traefik.http.routers.jellyfin.rule=Host(`${JELLYFIN_HOSTNAME?}`)"
+1 -1
View File
@@ -22,7 +22,7 @@ services:
volumes:
- /dev/shm:/dev/shm
- ${DOCKER_DATA_DIR}/plex/transcodes:/transcode
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/plex/config:/config
labels:
- "traefik.enable=${PLEX_TRAEFIK_ENABLE:-true}"
+3 -3
View File
@@ -9,7 +9,7 @@ services:
image: ghcr.io/hotio/radarr:release
restart: unless-stopped
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/radarr/default/:/config
- /usr/bin/rclone:/usr/bin/rclone
labels:
@@ -43,7 +43,7 @@ services:
image: ghcr.io/hotio/radarr:release
restart: unless-stopped
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/radarr/4k:/config
- /usr/bin/rclone:/usr/bin/rclone
labels:
@@ -76,7 +76,7 @@ services:
- PGID=${PGID}
restart: unless-stopped
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/radarr/anime:/config
- /usr/bin/rclone:/usr/bin/rclone
labels:
+1 -1
View File
@@ -5,7 +5,7 @@ services:
volumes:
- /mnt/user/anime:/anime
- /mnt/user/downloads:/downloads
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/seanime:/root/.config/Seanime
expose:
- 43211
+3 -3
View File
@@ -16,7 +16,7 @@ services:
- "traefik.http.routers.sonarr.middlewares=authelia@docker"
- "traefik.http.services.sonarr.loadbalancer.server.port=8989"
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/sonarr/default:/config
- /usr/bin/rclone:/usr/bin/rclone
depends_on:
@@ -48,7 +48,7 @@ services:
- "traefik.http.routers.sonarr4k.middlewares=authelia@docker"
- "traefik.http.services.sonarr4k.loadbalancer.server.port=8989"
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/sonarr/4k:/config
- /usr/bin/rclone:/usr/bin/rclone
depends_on:
@@ -82,7 +82,7 @@ services:
- "traefik.http.routers.sonarranime.middlewares=authelia@docker"
- "traefik.http.services.sonarranime.loadbalancer.server.port=8989"
volumes:
- /mnt:/mnt
- /mnt:/mnt:rslave
- ${DOCKER_DATA_DIR}/sonarr/anime:/config
- /usr/bin/rclone:/usr/bin/rclone
depends_on:
+3 -3
View File
@@ -9,7 +9,7 @@ services:
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}
- ${DOCKER_DATA_DIR}/wests-scripts/blackhole/default/logs:/app/logs
- /mnt:/mnt
- /mnt:/mnt:rslave
env_file:
- ../.env
environment:
@@ -44,7 +44,7 @@ services:
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}4k:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}4k:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}
- ${DOCKER_DATA_DIR}/wests-scripts/blackhole/4k/logs:/app/logs
- /mnt:/mnt
- /mnt:/mnt:rslave
env_file:
- ../.env
environment:
@@ -82,7 +82,7 @@ services:
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}anime:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_SONARR_PATH}
- ${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}anime:/${BLACKHOLE_BASE_WATCH_PATH}/${BLACKHOLE_RADARR_PATH}
- ${DOCKER_DATA_DIR}/wests-scripts/blackhole/anime/logs:/app/logs
- /mnt:/mnt
- /mnt:/mnt:rslave
env_file:
- ../.env
environment:
+76
View File
@@ -0,0 +1,76 @@
{
"debrids": [
{
"name": "realdebrid",
"api_key": "",
"folder": "/mnt/remote/realdebrid/__all__/",
"rate_limit": "250/minute",
"use_webdav": true,
"torrents_refresh_interval": "15s",
"download_links_refresh_interval": "40m",
"workers": 200,
"auto_expire_links_after": "3d",
"folder_naming": "original_no_ext",
"rc_url": "http://rclone:9990",
"download_uncached": false,
"serve_from_rclone": true
}
],
"max_cache_size": 10000,
"qbittorrent": {
"download_folder": "/mnt/symlinks/",
"categories": [
"sonarr",
"sonarr4k",
"sonarranime",
"radarr",
"radarr4k",
"radarranime"
],
"refresh_interval": 5,
"skip_pre_cache": false
},
"repair": {
"enabled": true,
"interval": "12h",
"run_on_start": false,
"use_webdav": true,
"auto_process": true,
"_comment_addThisIfYouAreUsingZurg_zurg_url": "http://zurg:9999"
},
"arrs": [
{
"name": "sonarr",
"host": "http://sonarr:8989",
"token": ""
},
{
"name": "sonarr4k",
"host": "http://sonarr4k:8989",
"token": ""
},
{
"name": "sonarranime",
"host": "http://sonarranime:8989",
"token": ""
},
{
"name": "radarr",
"host": "http://radarr:7878",
"token": ""
},
{
"name": "radarr4k",
"host": "http://radarr4k:7878",
"token": ""
},
{
"name": "radarranime",
"host": "http://radarranime:7878",
"token": ""
}
],
"use_auth": false,
"log_level": "info",
"port": "8282"
}
+5
View File
@@ -0,0 +1,5 @@
[decypharr]
type = webdav
url = http://decypharr:8282/webdav/realdebrid
vendor = other
pacer_min_sleep = 0