From ddc2afb950b88bb0d11a4176a07a13ca2e0485a9 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Wed, 25 Jun 2025 20:19:49 +0100 Subject: [PATCH 1/5] fix: add COMPOSE_FILE env var --- .env | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 3c3917a..09241d8 100644 --- a/.env +++ b/.env @@ -9,8 +9,9 @@ TZ=Etc/UTC # Directory configuration. This .env file should be in /opt/docker, using the defaults below. # You MUST use absolute paths, otherwise each bind mount would be created relative to each compose file, and not # the current directory -DOCKER_DATA_DIR=/opt/docker/data -DOCKER_APP_DIR=/opt/docker/apps +DOCKER_DIR=/opt/docker +DOCKER_DATA_DIR=${DOCKER_DIR}/data +DOCKER_APP_DIR=${DOCKER_DIR}/apps # The process user ID and group ID to use for applicable containers. # Run 'id' to see your UID and GID @@ -185,6 +186,8 @@ COMPOSE_PROJECT_NAME=aio COMPOSE_REMOVE_ORPHANS=true # Delegate building to bake for improved performance. COMPOSE_BAKE=true +# Defining the location of the compose file. +COMPOSE_FILE=${DOCKER_DIR}/compose.yaml # Whether to change the name of the network that all containers run on or to connect to an external network. # Reference: https://docs.docker.com/compose/how-tos/networking/#use-a-pre-existing-network DOCKER_NETWORK=aio_network From 9d2ae6fe88d96e14a73ff08d73ead843ee3e60ca Mon Sep 17 00:00:00 2001 From: Viren070 Date: Wed, 25 Jun 2025 20:29:13 +0100 Subject: [PATCH 2/5] fix: debridav adjustments to avoid conflicts --- apps/debridav/.env | 2 +- apps/debridav/compose.yaml | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/debridav/.env b/apps/debridav/.env index 89e91cc..44ec935 100644 --- a/apps/debridav/.env +++ b/apps/debridav/.env @@ -54,7 +54,7 @@ RADARR_API_KEY=your_radarr_api_key # -------------- Database Configuration -------------- # Postgres DB connection for DebriDav metadata -DEBRIDAV_DB_HOST=postgres-debridav +DEBRIDAV_DB_HOST=debridav_postgres DEBRIDAV_DB_PORT=5432 DEBRIDAV_DB_DATABASE_NAME=debridav DEBRIDAV_DB_USERNAME=debridav diff --git a/apps/debridav/compose.yaml b/apps/debridav/compose.yaml index 0d3145d..0237c4c 100644 --- a/apps/debridav/compose.yaml +++ b/apps/debridav/compose.yaml @@ -13,7 +13,6 @@ services: - PGID=${PGID} - UMASK=002 - TZ=${TZ} - - DEBRIDAV_ROOTPATH=${DEBRIDAV_ROOT_PATH} - DEBRIDAV_DOWNLOADPATH=${DEBRIDAV_DOWNLOAD_PATH} - DEBRIDAV_MOUNTPATH=${DEBRIDAV_MOUNT_PATH_CONTAINERS} @@ -52,9 +51,9 @@ services: postgres-debridav: condition: service_healthy - rclone: + debridav_rclone: image: rclone/rclone:latest - container_name: rclone-debridav + container_name: debridav_rclone restart: unless-stopped environment: - TZ=${TZ} @@ -84,9 +83,9 @@ services: --dir-cache-time=1s -vv - postgres-debridav: + debridav_postgres: image: postgres:latest - container_name: postgres-debridav + container_name: debridav_postgres restart: unless-stopped environment: - POSTGRES_USER=debridav From 1de26d3f78fb2630073dde4758dc5cbbd4c8b9ce Mon Sep 17 00:00:00 2001 From: Viren070 Date: Fri, 27 Jun 2025 18:43:13 +0100 Subject: [PATCH 3/5] fix: add profiles and fix depends_on for debridav --- apps/debridav/compose.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/debridav/compose.yaml b/apps/debridav/compose.yaml index 0237c4c..8ed2d3e 100644 --- a/apps/debridav/compose.yaml +++ b/apps/debridav/compose.yaml @@ -48,8 +48,11 @@ services: start_period: 2s retries: 1000 depends_on: - postgres-debridav: + debridav_postgres: condition: service_healthy + profiles: + - debridav + - all debridav_rclone: image: rclone/rclone:latest @@ -82,6 +85,9 @@ services: --low-level-retries=1 --dir-cache-time=1s -vv + profiles: + - debridav + - all debridav_postgres: image: postgres:latest @@ -99,3 +105,6 @@ services: test: [ "CMD-SHELL", "pg_isready -d debridav" ] interval: 5s retries: 10 + profiles: + - debridav + - all From a143aaf364e714545c443ada6c1dca93b4fcb547 Mon Sep 17 00:00:00 2001 From: Nikhil Byadwal <32981566+darkbeast13@users.noreply.github.com> Date: Sat, 28 Jun 2025 15:38:21 +0530 Subject: [PATCH 4/5] fix: comment out debridav and minor fix for stremthru (#28) --- apps/debridav/compose.yaml | 4 ++-- apps/stremthru/.env | 2 +- compose.yaml | 4 ++-- data/debridav/rclone.conf | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/debridav/compose.yaml b/apps/debridav/compose.yaml index 8ed2d3e..108475a 100644 --- a/apps/debridav/compose.yaml +++ b/apps/debridav/compose.yaml @@ -54,9 +54,9 @@ services: - debridav - all - debridav_rclone: + rclone: image: rclone/rclone:latest - container_name: debridav_rclone + container_name: rclone restart: unless-stopped environment: - TZ=${TZ} diff --git a/apps/stremthru/.env b/apps/stremthru/.env index dc4fcce..fac8082 100644 --- a/apps/stremthru/.env +++ b/apps/stremthru/.env @@ -131,7 +131,7 @@ STREMTHRU_INTEGRATION_TRAKT_CLIENT_SECRET= # DATABASE CONFIGURATION # ================================ STREMTHRU_DATABASE_URI=sqlite://./data/stremthru.db -STREMTHRU_REDIS_URI=redis://stremthru_redis:6379 +# STREMTHRU_REDIS_URI=redis://stremthru_redis:6379 diff --git a/compose.yaml b/compose.yaml index a19516c..940043f 100644 --- a/compose.yaml +++ b/compose.yaml @@ -12,7 +12,6 @@ include: - apps/cloudflare-ddns/compose.yaml - apps/comet/compose.yaml - apps/dash/compose.yaml - - apps/debridav/compose.yaml - apps/decypharr/compose.yaml - apps/dockge/compose.yaml - apps/dozzle/compose.yaml @@ -72,7 +71,8 @@ include: # 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 `- apps//mnt/remote/realdebrid:/data:rshared` to `- apps//mnt/remote/zurg:/data:rshared` # - apps/zurg/compose.yaml - + # same as above for using debridav, Uncomment debridav and comment out decypharr and zurg + # - apps/debridav/compose.yaml networks: default: name: ${DOCKER_NETWORK:-aio_default} diff --git a/data/debridav/rclone.conf b/data/debridav/rclone.conf index 88da8d0..39eabe3 100644 --- a/data/debridav/rclone.conf +++ b/data/debridav/rclone.conf @@ -1,5 +1,5 @@ [debridav] type = webdav -url = http://debridav:8080/webdav/premiumize +url = http://debridav:8080/ vendor = other pacer_min_sleep = 0 From 3386c2c2f44f6674667f5a685ec033e560798fe0 Mon Sep 17 00:00:00 2001 From: Nikhil Byadwal <32981566+darkbeast13@users.noreply.github.com> Date: Sun, 6 Jul 2025 00:09:13 +0530 Subject: [PATCH 5/5] feat: added borgmatic and minor fixes for debridav and aiostreams (#33) --- apps/aiostreams/.env | 2 +- apps/borgmatic/.env | 33 +++++++++++++++++++++++++++++++++ apps/borgmatic/compose.yaml | 26 ++++++++++++++++++++++++++ apps/debridav/.env | 21 ++++++++++++--------- apps/debridav/compose.yaml | 2 +- compose.yaml | 1 + data/borgmatic/config.yaml | 19 +++++++++++++++++++ 7 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 apps/borgmatic/.env create mode 100644 apps/borgmatic/compose.yaml create mode 100644 data/borgmatic/config.yaml diff --git a/apps/aiostreams/.env b/apps/aiostreams/.env index 3ec78f4..65d73ce 100644 --- a/apps/aiostreams/.env +++ b/apps/aiostreams/.env @@ -521,7 +521,7 @@ EASYNEWS_URL=https://ea627ddf0ee7-easynews.baby-beamup.club/ # DEFAULT_EASYNEWS_TIMEOUT= # ------------ DEBRIDIO ----------- -DEBRIDIO_URL=https://debridio.adobotec.com/ +DEBRIDIO_URL=https://addon.debridio.com/ # DEFAULT_DEBRIDIO_TIMEOUT= # ------------ DEBRIDIO TVDB ------------ diff --git a/apps/borgmatic/.env b/apps/borgmatic/.env new file mode 100644 index 0000000..9cf512b --- /dev/null +++ b/apps/borgmatic/.env @@ -0,0 +1,33 @@ +# 🧠 Borgmatic + BorgBase Setup +# Coupled with https://www.borgbase.com/ β€” which offers 10 GB free encrypted backup storage. +# Thanks to efficient deduplication and compression, actual usage remains low even for large datasets. + +# πŸ” Your BorgBase repository SSH path +BORG_REPO_URL=ssh://USERNAME@repo.borgbase.com:22/REPO-ID + +# πŸ—οΈ Borg encryption passphrase (do not hardcode in config.yaml) +BORG_PASSPHRASE="your-strong-passphrase" + +# πŸ•“ Backup cron schedule (Every Sunday at 4 AM) +BACKUP_CRON=0 4 * * 0 +RUN_ON_STARTUP=true + +# 🌍 These values are inherited from your root /opt/docker/.env +# TZ=Asia/Kolkata +# PUID=1001 +# PGID=1001 + +# βœ… One-time SSH key setup (run before container start): +# mkdir -p /opt/docker/data/borgmatic/.ssh +# ssh-keygen -t ed25519 -f /opt/docker/data/borgmatic/.ssh/id_ed25519 -N "" +# βž• Copy the id_ed25519.pub content to your BorgBase repository SSH key section + +# πŸ“ Optional (can also be auto-created at container start): +# mkdir -p /opt/docker/data/borgmatic/{repo,borg,cache,logs} + +# πŸ”‘ After initializing the repo, export your Borg key! +# docker exec -it borgmatic sh +# borg key export $BORG_REPO_URL /root/.config/borg/borgbase-key-backup +# exit +# docker cp borgmatic:/root/.config/borg/borgbase-key-backup ~/borgbase-key-backup +# πŸ“Œ Keep ~/borgbase-key-backup in a safe, secure place (e.g., password manager or external drive) diff --git a/apps/borgmatic/compose.yaml b/apps/borgmatic/compose.yaml new file mode 100644 index 0000000..f9490fe --- /dev/null +++ b/apps/borgmatic/compose.yaml @@ -0,0 +1,26 @@ +services: + borgmatic: + image: ghcr.io/borgmatic-collective/borgmatic:latest + container_name: borgmatic + restart: unless-stopped + + volumes: + - /opt/docker:/mnt/source:ro # πŸ” Maps your entire stack (read-only) as the backup source + - ${DOCKER_DATA_DIR}/borgmatic:/etc/borgmatic # βš™οΈ Config folder (holds config.yaml + .env) + - ${DOCKER_DATA_DIR}/borgmatic/.ssh:/root/.ssh # πŸ” SSH key pair for BorgBase access + - ${DOCKER_DATA_DIR}/borgmatic/repo:/mnt/borg-repository # πŸ’Ύ Optional local repo folder (not used) + - ${DOCKER_DATA_DIR}/borgmatic/borg:/root/.config/borg # 🧠 Borg key and config files + - ${DOCKER_DATA_DIR}/borgmatic/cache:/root/.cache/borg # ⚑ Cache for deduplication and performance + + environment: + - TZ=${TZ} # 🌍 Timezone from main .env + - PUID=${PUID} # πŸ‘€ Your user ID (for file permissions) + - PGID=${PGID} # πŸ‘₯ Your group ID + - BORG_PASSPHRASE=${BORG_PASSPHRASE} # πŸ” Secure passphrase (don't hardcode in config.yaml) + - BORG_REPO_URL=${BORG_REPO_URL} # πŸ“¦ BorgBase SSH repository path + - BACKUP_CRON=0 4 * * 0 # πŸ•“ Weekly backup: Every Sunday at 4 AM + - RUN_ON_STARTUP=true # πŸš€ Trigger a backup when the container starts + + profiles: + - borgmatic # 🧩 Use this profile to selectively start this service + - all # βœ… Include in full stack if needed diff --git a/apps/debridav/.env b/apps/debridav/.env index 44ec935..9d8121f 100644 --- a/apps/debridav/.env +++ b/apps/debridav/.env @@ -1,24 +1,27 @@ -# -------------- DebriDav Internal Paths -------------- +# -------------- Paths -------------- -# Internal path used inside the DebriDav container (should not be changed) +# DebriDav's internal storage ( NOT the path where DebriDav's WebDAV server should be mounted ) +# This only affects the internals of the DebriDav container, and should not need to be changed. DEBRIDAV_ROOT_PATH=/mnt -# Path on host that maps to DEBRIDAV_ROOT_PATH inside container -DEBRIDAV_ROOT_HOST_FS=/mnt +# Where DEBRIDAV_ROOT_PATH will be mapped to on the host FS +DEBRIDAV_ROOT_HOST_FS=/mnt/remote/debridav -# Subdirectory within DEBRIDAV_ROOT_PATH for downloads +# Where downloads will be placed, relative to DEBRIDAV_ROOT_PATH DEBRIDAV_DOWNLOAD_PATH=/downloads -# Path where DebriDav's WebDAV will be mounted inside other containers (e.g. Sonarr/Radarr) +# Where DebriDav's WebDAV server will be mounted inside the other containers ( Radarr, Sonarr etc). +# The Media Root of the arrs must be set under this directory +# Downloads will be visible to the other containers in /data/downloads with this configuration DEBRIDAV_MOUNT_PATH_CONTAINERS=/mnt/remote/debridav -# Host path where rclone mounts DebriDav WebDAV +# Where DebriDavs WebDAV server will be mounted on the host FS DEBRIDAV_MOUNT_PATH_HOST_FS=/mnt/remote/debridav # -------------- DebriDav Web Interface -------------- # Port on the host to expose DebriDav’s web interface (internal port is always 8080) -DEBRIDAV_PORT=8889 +DEBRIDAV_PORT=8888 # -------------- Debrid Providers Configuration -------------- @@ -30,7 +33,7 @@ DEBRIDAV_DEBRID_CLIENTS=premiumize PREMIUMIZE_API_KEY=your_premiumize_api_key # Leave these blank if not using for now -REAL_DEBRID_API_KEY= +REALDEBRID_API_KEY= EASYNEWS_USERNAME= EASYNEWS_PASSWORD= TORBOX_API_KEY= diff --git a/apps/debridav/compose.yaml b/apps/debridav/compose.yaml index 108475a..afe7c49 100644 --- a/apps/debridav/compose.yaml +++ b/apps/debridav/compose.yaml @@ -1,6 +1,6 @@ services: debridav: - image: ghcr.io/skjaere/debridav:v0 + image: ghcr.io/skjaere/debridav:latest container_name: debridav restart: unless-stopped user: "${PUID}:${PGID}" diff --git a/compose.yaml b/compose.yaml index 940043f..ebe4f08 100644 --- a/compose.yaml +++ b/compose.yaml @@ -8,6 +8,7 @@ include: - apps/autosync/compose.yaml - apps/bazarr/compose.yaml - apps/beszel/compose.yaml + - apps/borgmatic/compose.yaml - apps/byparr/compose.yaml - apps/cloudflare-ddns/compose.yaml - apps/comet/compose.yaml diff --git a/data/borgmatic/config.yaml b/data/borgmatic/config.yaml new file mode 100644 index 0000000..5d4194e --- /dev/null +++ b/data/borgmatic/config.yaml @@ -0,0 +1,19 @@ +source_directories: + - /mnt/source # πŸ” Source directory inside container (binds to /opt/docker on host) + +repositories: + - path: ${BORG_REPO_URL} # πŸ“¦ Remote repo path from .env + label: borgbase # 🏷️ Friendly name + storage_quota: 10G # ℹ️ Display-only, helps track usage + +one_file_system: true # 🚫 Don't cross into other mounts (e.g., /proc) + +exclude_patterns: + - /mnt/source/data/stremthru/imdb # ❌ Temp cache + - /mnt/source/data/stremthru/hashlists # ❌ Torrent hashes + - /mnt/source/data/stremio-server # ❌ Optional exclusion + +compression: lz4 # ⚑ Fast + efficient compression +archive_name_format: 'backup-{now:%Y-%m-%d_%H-%M-%S}' # 🧾 Timestamped archive name + +keep_weekly: 2 # βœ… Keep 2 most recent weekly archives