feat: add debridav (#24)

Co-authored-by: Viren070 <viren070@protonmail.com>
This commit is contained in:
Nikhil Byadwal
2025-06-25 22:38:27 +05:30
committed by GitHub
parent 5c5a6d9923
commit ec00162120
5 changed files with 176 additions and 1 deletions
+2 -1
View File
@@ -124,6 +124,7 @@ BAZARR4K_HOSTNAME=4k.bazarr.${DOMAIN}
BESZEL_HOSTNAME=beszel.${DOMAIN}
COMET_HOSTNAME=comet.${DOMAIN}
DASHDOT_HOSTNAME=dash.${DOMAIN}
DEBRIDAV_HOSTNAME=debridav.${DOMAIN}
DECYPHARR_HOSTNAME=decypharr.${DOMAIN}
DOCKGE_HOSTNAME=dockge.${DOMAIN}
DOZZLE_HOSTNAME=dozzle.${DOMAIN}
@@ -174,7 +175,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},${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}
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},${DEBRIDAV_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
View File
@@ -12,6 +12,7 @@ include:
- cloudflare-ddns/compose.yaml
- comet/compose.yaml
- dash/compose.yaml
- debridav/compose.yaml
- decypharr/compose.yaml
- dockge/compose.yaml
- dozzle/compose.yaml
+66
View File
@@ -0,0 +1,66 @@
# -------------- DebriDav Internal Paths --------------
# Internal path used inside the DebriDav container (should not be changed)
DEBRIDAV_ROOT_PATH=/mnt
# Path on host that maps to DEBRIDAV_ROOT_PATH inside container
DEBRIDAV_ROOT_HOST_FS=/mnt
# Subdirectory within DEBRIDAV_ROOT_PATH for downloads
DEBRIDAV_DOWNLOAD_PATH=/downloads
# Path where DebriDav's WebDAV will be mounted inside other containers (e.g. Sonarr/Radarr)
DEBRIDAV_MOUNT_PATH_CONTAINERS=/mnt/remote/debridav
# Host path where rclone mounts DebriDav WebDAV
DEBRIDAV_MOUNT_PATH_HOST_FS=/mnt/remote/debridav
# -------------- DebriDav Web Interface --------------
# Port on the host to expose DebriDavs web interface (internal port is always 8080)
DEBRIDAV_PORT=8889
# -------------- Debrid Providers Configuration --------------
# Comma-separated list of providers to enable. Allowed values:
# premiumize, real_debrid, easynews, torbox
DEBRIDAV_DEBRID_CLIENTS=premiumize
# Premiumize API key (get from https://www.premiumize.me/account)
PREMIUMIZE_API_KEY=your_premiumize_api_key
# Leave these blank if not using for now
REAL_DEBRID_API_KEY=
EASYNEWS_USERNAME=
EASYNEWS_PASSWORD=
TORBOX_API_KEY=
# -------------- Sonarr/Radarr Integration --------------
# Enable integration with Sonarr and Radarr
SONARR_INTEGRATION_ENABLED=true
RADARR_INTEGRATION_ENABLED=true
# Connection details for Sonarr (running in your stack)
SONARR_HOST=sonarr
SONARR_PORT=8989
SONARR_API_KEY=your_sonarr_api_key
# Connection details for Radarr
RADARR_HOST=radarr
RADARR_PORT=7878
RADARR_API_KEY=your_radarr_api_key
# -------------- Database Configuration --------------
# Postgres DB connection for DebriDav metadata
DEBRIDAV_DB_HOST=postgres-debridav
DEBRIDAV_DB_PORT=5432
DEBRIDAV_DB_DATABASE_NAME=debridav
DEBRIDAV_DB_USERNAME=debridav
DEBRIDAV_DB_PASSWORD=debridav
# -------------- Miscellaneous --------------
# Skip caching local files smaller than this (in MB)
DEBRIDAV_CACHE_LOCAL_DEBRID_FILES_THRESHOLD_MB=10
+102
View File
@@ -0,0 +1,102 @@
services:
debridav:
image: ghcr.io/skjaere/debridav:v0
container_name: debridav
restart: unless-stopped
user: "${PUID}:${PGID}"
security_opt:
- "apparmor:unconfined"
env_file:
- .env
environment:
- PUID=${PUID}
- PGID=${PGID}
- UMASK=002
- TZ=${TZ}
- DEBRIDAV_ROOTPATH=${DEBRIDAV_ROOT_PATH}
- DEBRIDAV_DOWNLOADPATH=${DEBRIDAV_DOWNLOAD_PATH}
- DEBRIDAV_MOUNTPATH=${DEBRIDAV_MOUNT_PATH_CONTAINERS}
- DEBRIDAV_DEBRIDCLIENTS=${DEBRIDAV_DEBRID_CLIENTS}
- SPRING_DATASOURCE_URL=jdbc:postgresql://${DEBRIDAV_DB_HOST}:${DEBRIDAV_DB_PORT}/${DEBRIDAV_DB_DATABASE_NAME}?user=${DEBRIDAV_DB_USERNAME}&password=${DEBRIDAV_DB_PASSWORD}
- PREMIUMIZE_APIKEY=${PREMIUMIZE_API_KEY}
- REALDEBRID_APIKEY=${REALDEBRID_API_KEY}
- SONARR_INTEGRATIONENABLED=${SONARR_INTEGRATION_ENABLED}
- SONARR_HOST=${SONARR_HOST}
- SONARR_PORT=${SONARR_PORT}
- SONARR_APIKEY=${SONARR_API_KEY}
- RADARR_INTEGRATIONENABLED=${RADARR_INTEGRATION_ENABLED}
- RADARR_HOST=${RADARR_HOST}
- RADARR_PORT=${RADARR_PORT}
- RADARR_APIKEY=${RADARR_API_KEY}
- EASYNEWS_USERNAME=${EASYNEWS_USERNAME}
- EASYNEWS_PASSWORD=${EASYNEWS_PASSWORD}
- TORBOX_APIKEY=${TORBOX_API_KEY}
volumes:
- ${DEBRIDAV_ROOT_HOST_FS}:${DEBRIDAV_ROOT_PATH}
expose:
- 8080
labels:
- "traefik.enable=true"
- "traefik.http.routers.debridav.rule=Host(`${DEBRIDAV_HOSTNAME?}`)"
- "traefik.http.routers.debridav.entrypoints=websecure"
- "traefik.http.routers.debridav.tls.certresolver=letsencrypt"
- "traefik.http.routers.debridav.middlewares=authelia@docker"
- "traefik.http.services.debridav.loadbalancer.server.port=8080"
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8080/actuator/health/readiness" ]
interval: 2s
start_period: 2s
retries: 1000
depends_on:
postgres-debridav:
condition: service_healthy
rclone:
image: rclone/rclone:latest
container_name: rclone-debridav
restart: unless-stopped
environment:
- TZ=${TZ}
- PUID=${PUID}
- PGID=${PGID}
volumes:
- ${DEBRIDAV_MOUNT_PATH_HOST_FS}:${DEBRIDAV_MOUNT_PATH_CONTAINERS}:rshared
- /opt/docker/data/debridav/rclone.conf:/config/rclone/rclone.conf
- /dev/fuse:/dev/fuse
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/fuse:/dev/fuse:rwm
depends_on:
debridav:
condition: service_healthy
command: >
mount debridav: ${DEBRIDAV_MOUNT_PATH_CONTAINERS}
--allow-other
--allow-non-empty
--vfs-cache-mode off
--rc-enable-metrics
--metrics-addr :9002
--low-level-retries=1
--dir-cache-time=1s
-vv
postgres-debridav:
image: postgres:latest
container_name: postgres-debridav
restart: unless-stopped
environment:
- POSTGRES_USER=debridav
- POSTGRES_PASSWORD=debridav
- POSTGRES_DB=debridav
- PGUSER=debridav
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ${DOCKER_DATA_DIR}/debridav/postgres:/var/lib/postgresql/data
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d debridav" ]
interval: 5s
retries: 10
+5
View File
@@ -0,0 +1,5 @@
[debridav]
type = webdav
url = http://debridav:8080/webdav/premiumize
vendor = other
pacer_min_sleep = 0