feat: added borgmatic and minor fixes for debridav and aiostreams (#33)

This commit is contained in:
Nikhil Byadwal
2025-07-06 00:09:13 +05:30
committed by GitHub
parent a143aaf364
commit 3386c2c2f4
7 changed files with 93 additions and 11 deletions
+1 -1
View File
@@ -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 ------------
+33
View File
@@ -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)
+26
View File
@@ -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
+12 -9
View File
@@ -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 DebriDavs 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=
+1 -1
View File
@@ -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}"
+1
View File
@@ -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
+19
View File
@@ -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