mirror of
https://github.com/Viren070/docker-compose-template.git
synced 2025-12-01 23:17:00 +01:00
feat: cleanup, add recyclarr, add rclone.conf, zurg config.yml, and blackhole .env, uncomment debrid_media_server
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# stremio-addons-compose-template
|
||||
A template compose.yaml to self host various Stremio addons and utilities
|
||||
# Docker Compose VPS Template
|
||||
|
||||
A template compose.yaml to self host various applications on a server/VPS using Docker Compose with Traefik as a reverse proxy.
|
||||
|
||||
You can use the Always Free resources of Oracle to set this up. Here is a [set up guide](https://guides.viren070.me/oracle) I made for that.
|
||||
|
||||
@@ -10,15 +11,16 @@ It will go through setting up an Oracle VPS for free, installing Docker, and the
|
||||
If you know what you're doing, then this is the general guide:
|
||||
|
||||
1. Ensure docker is installed per https://get.docker.com
|
||||
2. Download and run the installation script
|
||||
2. Clone this repository and cd into it:
|
||||
```
|
||||
curl https://raw.githubusercontent.com/Viren070/stremio-addons-docker-compose-template/refs/heads/main/install.sh | bash
|
||||
git clone https://github.com/Viren070/docker-compose-vps-template.git docker-apps
|
||||
cd docker-apps
|
||||
```
|
||||
3. Open the .env file using:
|
||||
```
|
||||
nano .env
|
||||
```
|
||||
4. Fill in all the values, making sure to read all the comments.
|
||||
4. Fill in all the values, making sure to read all the comments, and filling in any other files that are mentioned.
|
||||
5. Run this command:
|
||||
```
|
||||
docker compose up -d
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
services:
|
||||
addon-manager:
|
||||
image: reddravenn/stremio-addon-manager:latest
|
||||
container_name: addon-manager
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 80
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.addon-manager.rule=Host(`${ADDON_MANAGER_HOSTNAME}`)"
|
||||
- "traefik.http.routers.addon-manager.entrypoints=websecure"
|
||||
- "traefik.http.routers.addon-manager.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Stremio Addon Manager"
|
||||
- "flame.url=https://${ADDON_MANAGER_HOSTNAME}"
|
||||
@@ -1,39 +0,0 @@
|
||||
services:
|
||||
aiostreams:
|
||||
image: ghcr.io/viren070/aiostreams:dev
|
||||
container_name: aiostreams
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 3000
|
||||
environment:
|
||||
- ADDON_PROXY=${PROXY_URL:-} # only route requests to any strem.fun subdomain through the proxy
|
||||
- ADDON_PROXY_CONFIG=*:false,*.strem.fun:true # only route requests to any strem.fun subdomain through the proxy
|
||||
- EASYNEWS_PLUS_URL=${AIOSTREAMS_EASYNEWS_PLUS_URL:-}
|
||||
- MEDIAFUSION_URL=${AIOSTREAMS_MEDIAFUSION_URL:-}
|
||||
- MEDIAFUSION_API_PASSWORD=${MEDIAFUSION_API_PASSWORD:-}
|
||||
- MEDIAFUSION_CONFIG_TIMEOUT=3000
|
||||
- COMET_URL=${AIOSTREAMS_COMET_URL:-}
|
||||
- FORCE_COMET_HOSTNAME=${COMET_HOSTNAME:-}
|
||||
- COMET_INDEXERS=${COMET_INDEXERS:-}
|
||||
- JACKETTIO_URL=${AIOSTREAMS_JACKETTIO_URL:-}
|
||||
- STREMIO_JACKETT_URL=${AIOSTREAMS_STREMIO_JACKETT_URL:-}
|
||||
- JACKETT_URL=${AIOSTREAMS_JACKETT_URL:-}
|
||||
- JACKETT_API_KEY=${AIOSTREAMS_JACKETT_API_KEY:-}
|
||||
- JACKETT_INDEXERS=${AIOSTREAMS_JACKETT_INDEXERS:-}
|
||||
- SECRET_KEY=${AIOSTREAMS_SECRET_KEY}
|
||||
- DEFAULT_TIMEOUT=5000
|
||||
- TMDB_API_KEY=${TMDB_API_KEY:-}
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.aio.rule=Host(`${AIOSTREAMS_HOSTNAME}`)"
|
||||
- "traefik.http.routers.aio.entrypoints=websecure"
|
||||
- "traefik.http.routers.aio.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=AIOStreams"
|
||||
- "flame.url=https://${AIOSTREAMS_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,25 +0,0 @@
|
||||
services:
|
||||
aiostremio:
|
||||
image: viren070/aiostremio:latest
|
||||
container_name: aiostremio
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8469
|
||||
volumes:
|
||||
- ./data/aiostremio:/app/data
|
||||
environment:
|
||||
ADMIN_USERNAME: ${AIOSTREMIO_ADMIN_USERNAME}
|
||||
ADMIN_PASSWORD: ${AIOSTREMIO_ADMIN_PASSWORD}
|
||||
MEDIAFLOW_API_PASSWORD: ${MEDIAFLOW_API_PASSWORD}
|
||||
REDIS_HOST: redis
|
||||
REDIS_PORT: 6379
|
||||
REDIS_PASSWORD:
|
||||
DEBRID_API_KEY: ${DEBRID_API_KEY}
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.aiostremio.rule=Host(`${AIOSTREMIO_HOSTNAME}`)"
|
||||
- "traefik.http.routers.aiostremio.entrypoints=websecure"
|
||||
- "traefik.http.routers.aiostremio.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=AIOStreams"
|
||||
- "flame.url=https://${AIOSTREMIO_HOSTNAME}"
|
||||
@@ -1,44 +0,0 @@
|
||||
services:
|
||||
comet:
|
||||
container_name: comet
|
||||
image: g0ldyy/comet:rewrite
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 2020
|
||||
environment:
|
||||
- DASHBOARD_ADMIN_PASSWORD=${COMET_ADMIN_PASSWORD}
|
||||
- DEBRID_PROXY_URL=http://warp:1080
|
||||
- INDEXER_MANAGER_TYPE=prowlarr # or jackett
|
||||
- INDEXER_MANAGER_URL=http://prowlarr:9696 # or http://jackett:9117
|
||||
- INDEXER_MANAGER_API_KEY=${PROWLARR_API_KEY:-} # or ${JACKETT_API_KEY:-}
|
||||
- INDEXER_MANAGER_INDEXERS=${COMET_INDEXERS:-[]} # comma separated list of indexer ids # for jackett, get the names from https://github.com/Jackett/Jackett/tree/master/src/Jackett.Common/Definitions - for prowlarr you can write them like on the web dashboard
|
||||
- SCRAPE_ZILEAN=True
|
||||
- ZILEAN_URL=http://zilean:8181 # or https://zilean.elfhosted.com if not hosting zilean locally
|
||||
- ZILEAN_TAKE_FIRST=500
|
||||
- SCRAPE_TORRENTIO=False
|
||||
- SCRAPE_MEDIAFUSION=False
|
||||
- MEDIAFUSION_URL=http://mediafusion:8000 # or https://mediafusion.elfhosted.com if not hosting mediafusion locally
|
||||
- STREMTHRU_URL=http://stremthru:8080 # or https://stremthru.13377001.xyz if not hosting stremthru locally
|
||||
- DOWNLOAD_TORRENT_FILES=False
|
||||
- REMOVE_ADULT_CONTENT=True
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.comet.rule=Host(`${COMET_HOSTNAME}`)"
|
||||
- "traefik.http.routers.comet.entrypoints=websecure"
|
||||
- "traefik.http.routers.comet.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Comet"
|
||||
- "flame.url=https://${COMET_HOSTNAME}"
|
||||
volumes:
|
||||
- ./data/comet:/data
|
||||
healthcheck:
|
||||
test: wget -qO- http://127.0.0.1:2020/health
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
networks:
|
||||
- addon_network
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,34 +0,0 @@
|
||||
services:
|
||||
dozzle:
|
||||
image: amir20/dozzle:latest
|
||||
container_name: dozzle
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8080
|
||||
environment:
|
||||
DOZZLE_ENABLE_ACTIONS: "true"
|
||||
DOZZLE_NO_ANALYTICS: "true"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.dozzle.rule=Host(`${DOZZLE_HOSTNAME}`)"
|
||||
- "traefik.http.routers.dozzle.entrypoints=websecure"
|
||||
- "traefik.http.routers.dozzle.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.dozzle.middlewares=dozzle-auth"
|
||||
- "traefik.http.middlewares.dozzle-auth.basicauth.users=${DOZZLE_USERNAME}:${DOZZLE_HASHED_PASSWORD}"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Dozzle"
|
||||
- "flame.url=https://${DOZZLE_HOSTNAME}"
|
||||
healthcheck:
|
||||
test: ["CMD", "/dozzle", "healthcheck"]
|
||||
interval: 3s
|
||||
timeout: 30s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,21 +0,0 @@
|
||||
services:
|
||||
easynews-plus:
|
||||
image: ghcr.io/sleeyax/stremio-easynews-addon:latest
|
||||
container_name: easynews-plus
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 1337
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.easynews.rule=Host(`${EASYNEWS_PLUS_HOSTNAME}`)"
|
||||
- "traefik.http.routers.easynews.entrypoints=websecure"
|
||||
- "traefik.http.routers.easynews.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Easynews+"
|
||||
- "flame.url=https://${EASYNEWS_PLUS_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,23 +0,0 @@
|
||||
services:
|
||||
flame:
|
||||
image: pawelmalak/flame:multiarch
|
||||
container_name: flame
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 5005
|
||||
environment:
|
||||
- PASSWORD=${FLAME_PASSWORD}
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.flame.rule=Host(`${FLAME_HOSTNAME}`)"
|
||||
- "traefik.http.routers.flame.entrypoints=websecure"
|
||||
- "traefik.http.routers.flame.tls.certresolver=myresolver"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data/flame:/app/data
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,16 +0,0 @@
|
||||
services:
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8191/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,37 +0,0 @@
|
||||
services:
|
||||
gluetun:
|
||||
image: qmcgaw/gluetun
|
||||
container_name: gluetun
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
ports:
|
||||
- 127.0.0.1:8888:8888/tcp # HTTP proxy
|
||||
environment:
|
||||
- VPN_SERVICE_PROVIDER=protonvpn
|
||||
- VPN_TYPE=wireguard
|
||||
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
|
||||
- SERVER_COUNTRIES=Netherlands
|
||||
- FREE_ONLY=true
|
||||
# Server list updater
|
||||
# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#update-the-vpn-servers-list
|
||||
- UPDATER_PERIOD=24h
|
||||
- HTTPPROXY=on
|
||||
- HTTPPROXY_LISTENING_ADDRESS=:8888
|
||||
- HTTPPROXY_STEALTH=on
|
||||
volumes:
|
||||
- gluetun-data:/gluetun
|
||||
healthcheck:
|
||||
test: ["CMD", "/gluetun-entrypoint", "healthcheck"]
|
||||
interval: 60s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 1m
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,27 +0,0 @@
|
||||
services:
|
||||
jackett:
|
||||
image: linuxserver/jackett:latest
|
||||
container_name: jackett
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-UTC} # Add timezone support
|
||||
expose:
|
||||
- 9117
|
||||
volumes:
|
||||
- ./data/jackett:/config
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.jackett.rule=Host(`${JACKETT_HOSTNAME}`)"
|
||||
- "traefik.http.routers.jackett.entrypoints=websecure"
|
||||
- "traefik.http.routers.jackett.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Jackett"
|
||||
- "flame.url=https://${JACKETT_HOSTNAME}"
|
||||
healthcheck:
|
||||
test: curl -f http://localhost:9117/health
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
@@ -1,27 +0,0 @@
|
||||
services:
|
||||
jackettio:
|
||||
image: arvida42/jackettio:latest
|
||||
container_name: jackettio
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 4000
|
||||
environment:
|
||||
- JACKETT_URL=http://jackett:9117
|
||||
- JACKETT_API_KEY=${JACKETT_API_KEY:-}
|
||||
- TMDB_ACCESS_TOKEN=${TMDB_ACCESS_TOKEN}
|
||||
volumes:
|
||||
- ./data/jackettio:/data
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.jackettio.rule=Host(`${JACKETTIO_HOSTNAME}`)"
|
||||
- "traefik.http.routers.jackettio.entrypoints=websecure"
|
||||
- "traefik.http.routers.jackettio.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Jackettio"
|
||||
- "flame.url=https://${JACKETTIO_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,25 +0,0 @@
|
||||
services:
|
||||
mediaflow-proxy:
|
||||
image: mhdzumair/mediaflow-proxy
|
||||
container_name: mediaflow-proxy
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8888
|
||||
environment:
|
||||
API_PASSWORD: ${MEDIAFLOW_API_PASSWORD}
|
||||
PROXY_URL: ${HTTP_PROXY:-}
|
||||
TRANSPORT_ROUTES: '{ "https://torrentio.strem.fun": { "proxy": true } }'
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.mediaflow.rule=Host(`${MEDIAFLOW_HOSTNAME}`)"
|
||||
- "traefik.http.routers.mediaflow.entrypoints=websecure"
|
||||
- "traefik.http.routers.mediaflow.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=MediaFlow Proxy"
|
||||
- "flame.url=https://${MEDIAFLOW_HOSTNAME}"
|
||||
healthcheck:
|
||||
test: python3 -c "import urllib.request; print(urllib.request.urlopen('http://127.0.0.1:8888/health').read().decode())"
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
@@ -1,68 +0,0 @@
|
||||
services:
|
||||
mediafusion:
|
||||
image: mhdzumair/mediafusion:latest
|
||||
container_name: mediafusion
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8000
|
||||
environment:
|
||||
- HOST_URL=https://${MEDIAFUSION_HOSTNAME}
|
||||
- POSTER_HOST_URL=https://${MEDIAFUSION_HOSTNAME}
|
||||
- MONGO_URI=mongodb://mongodb:27017/mediafusion
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- IS_SCRAP_FROM_TORRENTIO=true
|
||||
- IS_SCRAP_FROM_MEDIAFUSION=true
|
||||
- IS_SCRAP_FROM_ZILEAN=true
|
||||
- IS_SCRAP_FROM_PROWLARR=true
|
||||
- IS_SCRAP_FROM_JACKETT=true
|
||||
- IS_SCRAP_FROM_YTS=false
|
||||
- PROWLARR_API_KEY=${PROWLARR_API_KEY:-}
|
||||
- PROWLARR_URL=http://prowlarr:9696
|
||||
- PROWLARR_IMMEDIATE_MAX_PROCESS=30
|
||||
- PROWLARR_IMMEDIATE_MAX_PROCESS_TIME=30
|
||||
- PROWLARR_SEARCH_INTERVAL_HOUR=24
|
||||
- PROWLARR_LIVE_TITLE_SEARCH=true
|
||||
- JACKETT_URL=http://jackett:9117
|
||||
- JACKETT_API_KEY=${JACKETT_API_KEY:-}
|
||||
- JACKETT_IMMEDIATE_MAX_PROCESS=30
|
||||
- JACKETT_IMMEDIATE_MAX_PROCESS_TIME=30
|
||||
- JACKETT_SEARCH_INTERVAL_HOUR=24
|
||||
- JACKETT_LIVE_TITLE_SEARCH=true
|
||||
- ENABLE_RATE_LIMIT=false
|
||||
- TORRENTIO_URL=https://torrentio.strem.fun
|
||||
- MEDIAFUSION_URL=https://mediafusion.elfhosted.com
|
||||
- ZILEAN_URL=http://zilean:8181
|
||||
- STORE_STREMTHRU_MAGNET_CACHE=false
|
||||
- REQUESTS_PROXY_URL=${HTTP_PROXY_URL:-}
|
||||
- FLARESOLVERR_URL=http://flaresolverr:8191
|
||||
- TMDB_API_KEY=${TMDB_API_KEY} # https://www.themoviedb.org/settings/api
|
||||
- SECRET_KEY=${MEDIAFUSION_SECRET_KEY} # openssl rand -hex 32
|
||||
- API_PASSWORD=${MEDIAFUSION_API_PASSWORD} # random password for API
|
||||
# - LOGGING_LEVEL="DEBUG"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
depends_on:
|
||||
mongodb:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
warp:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.mediafusion.rule=Host(`${MEDIAFUSION_HOSTNAME}`)"
|
||||
- "traefik.http.routers.mediafusion.entrypoints=websecure"
|
||||
- "traefik.http.routers.mediafusion.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=MediaFusion"
|
||||
- "flame.url=https://${MEDIAFUSION_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,22 +0,0 @@
|
||||
services:
|
||||
mongodb:
|
||||
image: mongo:latest
|
||||
container_name: mongodb
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- mongodb-data:/data/db
|
||||
healthcheck:
|
||||
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 40s
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
mongodb-data:
|
||||
@@ -1,28 +0,0 @@
|
||||
services:
|
||||
nzbhydra2:
|
||||
container_name: nzbhydra2
|
||||
image: ghcr.io/hotio/nzbhydra2:latest
|
||||
expose:
|
||||
- 5076
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- UMASK=002
|
||||
- TZ=${TZ:-UTC}
|
||||
volumes:
|
||||
- ./data/nzbhydra/config:/config
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.nzbhydra2.rule=Host(`${NZBHYDRA2_HOSTNAME}`)"
|
||||
- "traefik.http.routers.nzbhydra2.entrypoints=websecure"
|
||||
- "traefik.http.routers.nzbhydra2.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=NZBHydra2"
|
||||
- "flame.url=https://${NZBHYDRA2_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,64 +0,0 @@
|
||||
services:
|
||||
plausible_db:
|
||||
image: postgres:16-alpine
|
||||
restart: unless-stopped
|
||||
container_name: plausible-db
|
||||
volumes:
|
||||
- plausible-db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
start_period: 1m
|
||||
|
||||
plausible_events_db:
|
||||
image: clickhouse/clickhouse-server:24.3.3.102-alpine
|
||||
restart: unless-stopped
|
||||
container_name: plausible-events-db
|
||||
volumes:
|
||||
- plausible-event-db:/var/lib/clickhouse
|
||||
- plausible-event-logs:/var/log/clickhouse-server
|
||||
- ./data/plausible/clickhouse/logs.xml:/etc/clickhouse-server/config.d/logs.xml:ro
|
||||
- ./data/plausible/clickhouse/ipv4-only.xml:/etc/clickhouse-server/config.d/ipv4-only.xml:ro
|
||||
- ./data/plausible/clickhouse/low-resources.xml:/etc/clickhouse-server/config.d/low-resources.xml:ro
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 262144
|
||||
hard: 262144
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1"]
|
||||
start_period: 1m
|
||||
|
||||
plausible:
|
||||
image: ghcr.io/plausible/community-edition:latest
|
||||
container_name: plausible
|
||||
restart: unless-stopped
|
||||
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
|
||||
depends_on:
|
||||
plausible_db:
|
||||
condition: service_healthy
|
||||
plausible_events_db:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- plausible-data:/var/lib/plausible
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 65535
|
||||
hard: 65535
|
||||
expose:
|
||||
- 8000
|
||||
environment:
|
||||
TMPDIR: /var/lib/plausible/tmp
|
||||
BASE_URL: https://${PLAUSIBLE_HOSTNAME}
|
||||
SECRET_KEY_BASE: ${PLAUSIBLE_SECRET_KEY_BASE}
|
||||
HTTP_PORT: 8000
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.plausible.rule=Host(`${PLAUSIBLE_HOSTNAME}`)"
|
||||
- "traefik.http.routers.plausible.entrypoints=websecure"
|
||||
- "traefik.http.routers.plausible.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.plausible.loadbalancer.server.port=8000"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Plausible"
|
||||
- "flame.url=https://${PLAUSIBLE_HOSTNAME}"
|
||||
@@ -1,27 +0,0 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17.2-alpine
|
||||
container_name: postgres
|
||||
restart: unless-stopped
|
||||
shm_size: 2G
|
||||
environment:
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: postgres
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data/pgdata
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
@@ -1,22 +0,0 @@
|
||||
services:
|
||||
prowlarr:
|
||||
image: ghcr.io/hotio/prowlarr:latest
|
||||
container_name: prowlarr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- UMASK=002
|
||||
- TZ=${TZ:-UTC} # Add timezone support
|
||||
expose:
|
||||
- 9696
|
||||
volumes:
|
||||
- ./data/prowlarr:/config
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.prowlarr.rule=Host(`${PROWLARR_HOSTNAME}`)"
|
||||
- "traefik.http.routers.prowlarr.entrypoints=websecure"
|
||||
- "traefik.http.routers.prowlarr.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Prowlarr"
|
||||
- "flame.url=https://${PROWLARR_HOSTNAME}"
|
||||
@@ -1,22 +0,0 @@
|
||||
services:
|
||||
redis:
|
||||
image: redis:latest
|
||||
container_name: redis
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
command: redis-server --appendonly yes --save 60 1
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
@@ -1,34 +0,0 @@
|
||||
services:
|
||||
seanime:
|
||||
image: umagistr/seanime
|
||||
container_name: seanime
|
||||
command:
|
||||
volumes:
|
||||
- /mnt/user/anime:/anime
|
||||
- /mnt/user/downloads:/downloads
|
||||
- ./data/seanime:/root/.config/Seanime
|
||||
expose:
|
||||
- 43211
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.seanime.rule=Host(`${SEANIME_HOSTNAME}`)"
|
||||
- "traefik.http.routers.seanime.entrypoints=websecure"
|
||||
- "traefik.http.routers.seanime.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.seanime.middlewares=seanime-auth"
|
||||
- "traefik.http.middlewares.seanime-auth.basicauth.users=${SEANIME_USERNAME}:${SEANIME_HASHED_PASSWORD}"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Seanime"
|
||||
- "flame.url=https://${SEANIME_HOSTNAME}"
|
||||
healthcheck:
|
||||
test: wget -qO- http://localhost:43211/api/v1/status
|
||||
interval: 5m
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,25 +0,0 @@
|
||||
services:
|
||||
stremio-jackett:
|
||||
image: belmeg/stremio-addon-jackett
|
||||
container_name: stremio-jackett
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 3000
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-UTC} # Add timezone support
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.stremiojackett.rule=Host(`${STREMIO_JACKETT_HOSTNAME}`)"
|
||||
- "traefik.http.routers.stremiojackett.entrypoints=websecure"
|
||||
- "traefik.http.routers.stremiojackett.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Stremio-Jackett"
|
||||
- "flame.url=https://${STREMIO_JACKETT_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,21 +0,0 @@
|
||||
services:
|
||||
stremio-server:
|
||||
image: stremio/server:latest
|
||||
container_name: stremio-server
|
||||
expose:
|
||||
- 11470
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.stremio-server.rule=Host(`${STREMIO_SERVER_HOSTNAME}`)"
|
||||
- "traefik.http.routers.stremio-server.entrypoints=websecure"
|
||||
- "traefik.http.routers.stremio-server.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Stremio Server"
|
||||
- "flame.url=https://${STREMIO_SERVER_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,38 +0,0 @@
|
||||
services:
|
||||
stremthru:
|
||||
image: muniftanjim/stremthru:latest-heavy
|
||||
container_name: stremthru
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8080
|
||||
environment:
|
||||
- STREMTHRU_HTTP_PROXY=http://warp:1080
|
||||
- STREMTHRU_TUNNEL=*:false,torrentio.strem.fun:true # Only tunnel hostnames that block VPS access (e.g. Torrentio)
|
||||
- STREMTHRU_PROXY_AUTH=user1:pass1,user2:pass2
|
||||
- STREMTHRU_STORE_AUTH=*:realdebrid:abc...xyz # Add apikey
|
||||
- STREMTHRU_STORE_TUNNEL=realdebrid:api # Only send RD API via tunnel, not all access (e.g playback)
|
||||
- STREMTHRU_STORE_CONTENT_PROXY=*:true,easydebrid:false,premiumize:false
|
||||
- STREMTHRU_PEER_URI=https://stremthru.mooo.com
|
||||
- STREMTHRU_DATABASE_URI=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/stremthru?sslmode=disable
|
||||
- STREMTHRU_REDIS_URI=redis://redis:6379
|
||||
depends_on:
|
||||
stremthru-db:
|
||||
condition: service_healthy
|
||||
stremthru-cache:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.stremthru.rule=Host(`${STREMTHRU_HOSTNAME}`)"
|
||||
- "traefik.http.routers.stremthru.entrypoints=websecure"
|
||||
- "traefik.http.routers.stremthru.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.stremthru.loadbalancer.server.port=8080"
|
||||
- "flame.type=app"
|
||||
- "flame.name=StremThru"
|
||||
- "flame.url=https://${STREMTHRU_HOSTNAME}"
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,34 +0,0 @@
|
||||
services:
|
||||
tmdb-addon:
|
||||
image: mrcanelas/tmdb-addon:latest
|
||||
container_name: tmdb-addon
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 3232
|
||||
environment:
|
||||
- PORT=3232
|
||||
- TMDB_API=${TMDB_API_KEY} # https://www.themoviedb.org/settings/api
|
||||
- FANART_API=${FANART_API_KEY} # https://fanart.tv/get-an-api-key/
|
||||
- HOST_NAME=tmdb-${TMDB_ADDON_HOSTNAME}
|
||||
- MONGODB_URI=mongodb://mongodb:27017/tmdb
|
||||
- META_TTL=604800 # 1 week
|
||||
- CATALOG_TTL=86400 # 1 day
|
||||
- NO_CACHE=false # Enable cache, set to true to disable
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.tmdb.rule=Host(`${TMDB_ADDON_HOSTNAME}`)"
|
||||
- "traefik.http.routers.tmdb.entrypoints=websecure"
|
||||
- "traefik.http.routers.tmdb.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.tmdb.loadbalancer.server.port=3232"
|
||||
- "flame.type=app"
|
||||
- "flame.name=TMDB Addon"
|
||||
- "flame.url=https://${TMDB_ADDON_HOSTNAME}"
|
||||
depends_on:
|
||||
mongodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,37 +0,0 @@
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v3
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 443:443
|
||||
# - 80:80 # adguard
|
||||
- 127.0.0.1:8080:8080
|
||||
# - 853:853/tcp # adguard
|
||||
command:
|
||||
- "--api.insecure=true"
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
# - "--entryPoints.web.address=:80" # adguard
|
||||
- "--entryPoints.websecure.address=:443"
|
||||
# - "--entryPoints.dot.address=:853" # adguard
|
||||
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||
- "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||
- "--log.level=INFO"
|
||||
- "--ping"
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
- "./data/letsencrypt:/letsencrypt"
|
||||
healthcheck:
|
||||
test: ["CMD", "traefik", "healthcheck", "--ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
services:
|
||||
uptime-kuma:
|
||||
image: louislam/uptime-kuma:latest
|
||||
container_name: kuma
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 3001
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.uptime-kuma.rule=Host(`${UPTIME_KUMA_HOSTNAME}`)"
|
||||
- "traefik.http.routers.uptime-kuma.entrypoints=websecure"
|
||||
- "traefik.http.routers.uptime-kuma.tls.certresolver=myresolver"
|
||||
- "flame.type=app"
|
||||
- "flame.name=Uptime Kuma"
|
||||
- "flame.url=https://${UPTIME_KUMA_HOSTNAME}"
|
||||
volumes:
|
||||
- ./data/kuma:/app/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,30 +0,0 @@
|
||||
services:
|
||||
warp:
|
||||
image: caomingjun/warp
|
||||
container_name: warp
|
||||
restart: unless-stopped
|
||||
device_cgroup_rules:
|
||||
- 'c 10:200 rwm'
|
||||
expose:
|
||||
- 1080
|
||||
environment:
|
||||
- WARP_SLEEP=5
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
sysctls:
|
||||
- net.ipv6.conf.all.disable_ipv6=0
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
volumes:
|
||||
- ./data/warp:/var/lib/cloudflare-warp
|
||||
healthcheck:
|
||||
test: curl -x "socks5h://127.0.0.1:1080" -fsSL "https://www.cloudflare.com/cdn-cgi/trace" | grep -qE "warp=(plus|on)" || exit 1
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,38 +0,0 @@
|
||||
services:
|
||||
watchtower:
|
||||
image: containrrr/watchtower
|
||||
container_name: watchtower
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
TZ: ${TZ:-UTC}
|
||||
WATCHTOWER_CLEANUP: "true"
|
||||
WATCHTOWER_SCHEDULE: ${AUTO_UPDATE_SCHEDULE:-0 0 6 * * *} # Run at 6am daily
|
||||
WATCHTOWER_NOTIFICATION_URL: ${AUTO_UPDATE_NOTIFICATION_URL:-}
|
||||
WATCHTOWER_NOTIFICATION_REPORT: "true"
|
||||
WATCHTOWER_NOTIFICATION_TEMPLATE: |
|
||||
{{- if .Report -}}
|
||||
{{- with .Report -}}
|
||||
{{- if ( or .Updated .Failed ) -}}
|
||||
{{len .Scanned}} Scanned, {{len .Updated}} Updated, {{len .Failed}} Failed
|
||||
{{- range .Updated}}
|
||||
- {{.Name}} ({{.ImageName}}): {{.CurrentImageID.ShortID}} updated to {{.LatestImageID.ShortID}}
|
||||
{{- end -}}
|
||||
{{- range .Skipped}}
|
||||
- {{.Name}} ({{.ImageName}}): {{.State}}: {{.Error}}
|
||||
{{- end -}}
|
||||
{{- range .Failed}}
|
||||
- {{.Name}} ({{.ImageName}}): {{.State}}: {{.Error}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{range .Entries -}}{{.Message}}{{"\n"}}{{- end -}}
|
||||
{{- end -}}
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
@@ -1,32 +0,0 @@
|
||||
services:
|
||||
zilean:
|
||||
image: ipromknight/zilean:latest
|
||||
restart: unless-stopped
|
||||
container_name: zilean
|
||||
tty: true
|
||||
environment:
|
||||
Zilean__Database__ConnectionString: Host=postgres;Database=zilean;Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD};Include Error Detail=true;Timeout=30;CommandTimeout=3600
|
||||
Zilean__Imdb__UseAllCores: true
|
||||
Zilean__Imdb__UseLucene: true
|
||||
healthcheck:
|
||||
test: curl --connect-timeout 10 --silent --show-error --fail http://localhost:8181/healthchecks/ping
|
||||
timeout: 60s
|
||||
interval: 30s
|
||||
retries: 10
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- ./data/zilean/tmp:/tmp
|
||||
networks:
|
||||
- addon_network
|
||||
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
addon_network:
|
||||
external: true
|
||||
|
||||
|
||||
|
||||
+508
-491
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,46 @@
|
||||
#-------------------------------#
|
||||
# REALDEBRID - BLACKHOLE, REPAIR #
|
||||
#-------------------------------#
|
||||
|
||||
REALDEBRID_ENABLED=true
|
||||
REALDEBRID_HOST="https://api.real-debrid.com/rest/1.0/"
|
||||
REALDEBRID_API_KEY=<realdebrid_api_key> # https://real-debrid.com/apitoken
|
||||
REALDEBRID_MOUNT_TORRENTS_PATH="/mnt/remote/realdebrid/__all__"
|
||||
|
||||
#-----------------------#
|
||||
# BLACKHOLE - BLACKHOLE #
|
||||
#-----------------------#
|
||||
|
||||
BLACKHOLE_BASE_WATCH_PATH="/mnt/symlinks"
|
||||
BLACKHOLE_RADARR_PATH="radarr"
|
||||
BLACKHOLE_SONARR_PATH="sonarr"
|
||||
BLACKHOLE_FAIL_IF_NOT_CACHED=true
|
||||
BLACKHOLE_RD_MOUNT_REFRESH_SECONDS=200
|
||||
BLACKHOLE_WAIT_FOR_TORRENT_TIMEOUT=300
|
||||
BLACKHOLE_HISTORY_PAGE_SIZE=500
|
||||
|
||||
#-----------------------------------------------------------------------------------------------#
|
||||
# DISCORD - BLACKHOLE, WATCHLIST, PLEX AUTHENTICATION, PLEX REQUEST, MONITOR RAM, RECLAIM SPACE #
|
||||
#-----------------------------------------------------------------------------------------------#
|
||||
|
||||
DISCORD_ENABLED=false
|
||||
DISCORD_UPDATE_ENABLED=false
|
||||
DISCORD_WEBHOOK_URL=<discord_webhook_url>
|
||||
|
||||
#-----------------#
|
||||
# REPAIR - REPAIR #
|
||||
#-----------------#
|
||||
|
||||
REPAIR_REPAIR_INTERVAL="10m"
|
||||
REPAIR_RUN_INTERVAL="1d"
|
||||
|
||||
#-----------------------#
|
||||
# GENERAL CONFIGURATION #
|
||||
#-----------------------#
|
||||
|
||||
PYTHONUNBUFFERED=TRUE
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
UMASK=002
|
||||
DOCKER_NETWORK="scripts_default"
|
||||
DOCKER_NETWORK_EXTERNAL=false
|
||||
@@ -0,0 +1,352 @@
|
||||
radarr:
|
||||
radarr_default:
|
||||
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: radarr-quality-definition-movie
|
||||
- template: radarr-quality-profile-remux-web-1080p
|
||||
- template: radarr-custom-formats-remux-web-1080p
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
# Audio
|
||||
- trash_ids:
|
||||
# Uncomment the next section to enable Advanced Audio Formats
|
||||
# - 496f355514737f7d83bf7aa4d24f8169 # TrueHD Atmos
|
||||
# - 2f22d89048b01681dde8afe203bf2e95 # DTS X
|
||||
# - 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
|
||||
# - 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
|
||||
# - 3cafb66171b47f226146a0770576870f # TrueHD
|
||||
# - dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
|
||||
# - a570d4a0e56a2874b64e5bfa55202a1b # FLAC
|
||||
# - e7c2fcae07cbada050a0af3357491d7b # PCM
|
||||
# - 8e109e50e0a0b83a5098b056e13bf6db # DTS-HD HRA
|
||||
# - 185f1dd7264c4562b9022d963ac37424 # DD+
|
||||
# - f9f847ac70a0af62ea4a08280b859636 # DTS-ES
|
||||
# - 1c1a4c5e823891c75bc50380a6866f73 # DTS
|
||||
# - 240770601cc226190c367ef59aba7463 # AAC
|
||||
# - c2998bd0d90ed5621d8df281e839436e # DD
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 1080p
|
||||
|
||||
# Movie Versions
|
||||
- trash_ids:
|
||||
# Uncomment any of the following lines to prefer these movie versions
|
||||
# - 0f12c086e289cf966fa5948eac571f44 # Hybrid
|
||||
# - 570bc9ebecd92723d2d21500f4be314c # Remaster
|
||||
# - eca37840c13c6ef2dd0262b141a5482f # 4K Remaster
|
||||
# - e0c07d59beb37348e975a930d5e50319 # Criterion Collection
|
||||
# - 9d27d9d2181838f76dee150882bdc58c # Masters of Cinema
|
||||
# - db9b4c4b53d312a3ca5f1378f6440fc9 # Vinegar Syndrome
|
||||
# - 957d0f44b592285f26449575e8b1167e # Special Edition
|
||||
# - eecf3a857724171f968a66cb5719e152 # IMAX
|
||||
# - 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX Enhanced
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 1080p
|
||||
|
||||
# Optional
|
||||
- trash_ids:
|
||||
# - b6832f586342ef70d9c128d40c07b872 # Bad Dual Groups
|
||||
# - cc444569854e9de0b084ab2b8b1532b2 # Black and White Editions
|
||||
# - 90cedc1fea7ea5d11298bebd3d1d3223 # EVO (no WEBDL)
|
||||
- ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 # No-RlsGroup
|
||||
# - 7357cf5161efbf8c4d5d0c30b4815ee2 # Obfuscated
|
||||
# - 5c44f52a8714fdd79bb4d98e2673be1f # Retags
|
||||
# - f537cf427b64c38c8e36298f657e4828 # Scene
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 1080p
|
||||
|
||||
- trash_ids:
|
||||
# Uncomment the next six lines to allow x265 HD releases with HDR/DV
|
||||
# - dc98083864ea246d05a42df0d05f81cc # x265 (HD)
|
||||
# assign_scores_to:
|
||||
# - name: Remux + WEB 1080p
|
||||
# score: 0
|
||||
# - trash_ids:
|
||||
# - 839bea857ed2c0a8e084f3cbdbd65ecb # x265 (no HDR/DV)
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 1080p
|
||||
|
||||
|
||||
radarr_anime:
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
media_naming:
|
||||
folder: default
|
||||
|
||||
movie:
|
||||
rename: true
|
||||
standard: anime
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: radarr-quality-definition-movie
|
||||
- template: radarr-quality-profile-anime
|
||||
- template: radarr-custom-formats-anime
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- 064af5f084a0a24458cc8ecd3220f93f # Uncensored
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
|
||||
- trash_ids:
|
||||
- a5d148168c4506b55cf53984107c396e # 10bit
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
|
||||
- trash_ids:
|
||||
- 4a3b087eea2ce012fcc1ce319259a3be # Anime Dual Audio
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
|
||||
radarr_4k:
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
media_naming:
|
||||
folder: default
|
||||
|
||||
movie:
|
||||
rename: true
|
||||
standard: standard
|
||||
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: radarr-quality-definition-movie
|
||||
- template: radarr-quality-profile-remux-web-2160p
|
||||
- template: radarr-custom-formats-remux-web-2160p
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
# Audio
|
||||
# Uncomment the next section to enable Advanced Audio Formats
|
||||
# - 496f355514737f7d83bf7aa4d24f8169 # TrueHD Atmos
|
||||
# - 2f22d89048b01681dde8afe203bf2e95 # DTS X
|
||||
# - 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
|
||||
# - 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
|
||||
# - 3cafb66171b47f226146a0770576870f # TrueHD
|
||||
# - dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
|
||||
# - a570d4a0e56a2874b64e5bfa55202a1b # FLAC
|
||||
# - e7c2fcae07cbada050a0af3357491d7b # PCM
|
||||
# - 8e109e50e0a0b83a5098b056e13bf6db # DTS-HD HRA
|
||||
# - 185f1dd7264c4562b9022d963ac37424 # DD+
|
||||
# - f9f847ac70a0af62ea4a08280b859636 # DTS-ES
|
||||
# - 1c1a4c5e823891c75bc50380a6866f73 # DTS
|
||||
# - 240770601cc226190c367ef59aba7463 # AAC
|
||||
# - c2998bd0d90ed5621d8df281e839436e # DD
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
# Movie Versions
|
||||
- trash_ids:
|
||||
# Uncomment any of the following lines to prefer these movie versions
|
||||
# - 0f12c086e289cf966fa5948eac571f44 # Hybrid
|
||||
# - 570bc9ebecd92723d2d21500f4be314c # Remaster
|
||||
# - eca37840c13c6ef2dd0262b141a5482f # 4K Remaster
|
||||
# - e0c07d59beb37348e975a930d5e50319 # Criterion Collection
|
||||
# - 9d27d9d2181838f76dee150882bdc58c # Masters of Cinema
|
||||
# - db9b4c4b53d312a3ca5f1378f6440fc9 # Vinegar Syndrome
|
||||
# - 957d0f44b592285f26449575e8b1167e # Special Edition
|
||||
# - eecf3a857724171f968a66cb5719e152 # IMAX
|
||||
# - 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX Enhanced
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
# Optional
|
||||
- trash_ids:
|
||||
# - b6832f586342ef70d9c128d40c07b872 # Bad Dual Groups
|
||||
# - cc444569854e9de0b084ab2b8b1532b2 # Black and White Editions
|
||||
# - 90cedc1fea7ea5d11298bebd3d1d3223 # EVO (no WEBDL)
|
||||
- ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 # No-RlsGroup
|
||||
# - 7357cf5161efbf8c4d5d0c30b4815ee2 # Obfuscated
|
||||
# - 5c44f52a8714fdd79bb4d98e2673be1f # Retags
|
||||
# - f537cf427b64c38c8e36298f657e4828 # Scene
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
- trash_ids:
|
||||
# Uncomment the next six lines to allow x265 HD releases with HDR/DV
|
||||
# - dc98083864ea246d05a42df0d05f81cc # x265 (HD)
|
||||
# assign_scores_to:
|
||||
# - name: Remux + WEB 2160p
|
||||
# score: 0
|
||||
# - trash_ids:
|
||||
# - 839bea857ed2c0a8e084f3cbdbd65ecb # x265 (no HDR/DV)
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
- trash_ids:
|
||||
# Comment out the next line if you and all of your users' setups are fully DV compatible
|
||||
# - 923b6abef9b17f937fab56cfcf89e1f1 # DV (WEBDL)
|
||||
|
||||
# HDR10+ Boost - Uncomment the next two lines if any of your devices DO support HDR10+
|
||||
- b17886cb4158d9fea189859409975758 # HDR10Plus Boost
|
||||
- 55a5b50cb416dea5a50c4955896217ab # DV HDR10+ Boost
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
# Optional SDR
|
||||
# Only ever use ONE of the following custom formats:
|
||||
# SDR - block ALL SDR releases
|
||||
# SDR (no WEBDL) - block UHD/4k Remux and Bluray encode SDR releases, but allow SDR WEB
|
||||
- trash_ids:
|
||||
- 9c38ebb7384dada637be8899efa68e6f # SDR
|
||||
# - 25c12f78430a3a23413652cbd1d48d77 # SDR (no WEBDL)
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
|
||||
sonarr:
|
||||
|
||||
sonarr_default:
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
media_naming:
|
||||
series: default
|
||||
season: default
|
||||
episodes:
|
||||
rename: true
|
||||
standard: default
|
||||
daily: default
|
||||
anime: default
|
||||
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: sonarr-quality-definition-series
|
||||
# Choose between the standard or alternative quality profile setup (choose one only)
|
||||
# - template: sonarr-v4-quality-profile-web-1080p-
|
||||
- template: sonarr-v4-quality-profile-web-1080p-alternative
|
||||
- template: sonarr-v4-custom-formats-web-1080p
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
# Optional
|
||||
- trash_ids:
|
||||
# - 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups
|
||||
# - 82d40da2bc6923f41e14394075dd4b03 # No-RlsGroup
|
||||
# - e1a997ddb54e3ecbfe06341ad323c458 # Obfuscated
|
||||
# - 06d66ab109d4d2eddb2794d21526d140 # Retags
|
||||
# - 1b3994c551cbb92a2c781af061f4ab44 # Scene
|
||||
assign_scores_to:
|
||||
- name: WEB-1080p
|
||||
|
||||
- trash_ids:
|
||||
# Uncomment the next six lines to allow x265 HD releases with HDR/DV
|
||||
# - 47435ece6b99a0b477caf360e79ba0bb # x265 (HD)
|
||||
# assign_scores_to:
|
||||
# - name: WEB-1080p
|
||||
# score: 0
|
||||
# - trash_ids:
|
||||
# - 9b64dff695c2115facf1b6ea59c9bd07 # x265 (no HDR/DV)
|
||||
assign_scores_to:
|
||||
- name: WEB-1080p
|
||||
|
||||
sonarr_4k:
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
media_naming:
|
||||
series: default
|
||||
season: default
|
||||
episodes:
|
||||
rename: true
|
||||
standard: default
|
||||
daily: default
|
||||
anime: default
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: sonarr-quality-definition-series
|
||||
# Choose between the standard or alternative quality profile setup (choose one only)
|
||||
- template: sonarr-v4-quality-profile-web-2160p
|
||||
# - template: sonarr-v4-quality-profile-web-2160p-alternative
|
||||
- template: sonarr-v4-custom-formats-web-2160p
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
# HDR Formats
|
||||
- trash_ids:
|
||||
# Comment out the next line if you and all of your users' setups are fully DV compatible
|
||||
- 9b27ab6498ec0f31a3353992e19434ca # DV (WEBDL)
|
||||
|
||||
# HDR10+ Boost - Uncomment the next two lines if any of your devices DO support HDR10+
|
||||
# - 0dad0a507451acddd754fe6dc3a7f5e7 # HDR10+ Boost
|
||||
# - 385e9e8581d33133c3961bdcdeffb7b4 # DV HDR10+ Boost
|
||||
assign_scores_to:
|
||||
- name: WEB-2160p
|
||||
|
||||
# Optional
|
||||
- trash_ids:
|
||||
# - 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups
|
||||
# - 82d40da2bc6923f41e14394075dd4b03 # No-RlsGroup
|
||||
# - e1a997ddb54e3ecbfe06341ad323c458 # Obfuscated
|
||||
# - 06d66ab109d4d2eddb2794d21526d140 # Retags
|
||||
# - 1b3994c551cbb92a2c781af061f4ab44 # Scene
|
||||
assign_scores_to:
|
||||
- name: WEB-2160p
|
||||
|
||||
- trash_ids:
|
||||
# Uncomment the next six lines to allow x265 HD releases with HDR/DV
|
||||
# - 47435ece6b99a0b477caf360e79ba0bb # x265 (HD)
|
||||
# assign_scores_to:
|
||||
# - name: WEB-2160p
|
||||
# score: 0
|
||||
# - trash_ids:
|
||||
# - 9b64dff695c2115facf1b6ea59c9bd07 # x265 (no HDR/DV)
|
||||
assign_scores_to:
|
||||
- name: WEB-2160p
|
||||
|
||||
# Optional SDR
|
||||
# Only ever use ONE of the following custom formats:
|
||||
# SDR - block ALL SDR releases
|
||||
# SDR (no WEBDL) - block UHD/4k Remux and Bluray encode SDR releases, but allow SDR WEB
|
||||
- trash_ids:
|
||||
- 2016d1676f5ee13a5b7257ff86ac9a93 # SDR
|
||||
# - 83304f261cf516bb208c18c54c0adf97 # SDR (no WEBDL)
|
||||
assign_scores_to:
|
||||
- name: WEB-2160p
|
||||
sonarr_anime:
|
||||
delete_old_custom_formats: true
|
||||
replace_existing_custom_formats: true
|
||||
|
||||
media_naming:
|
||||
series: default
|
||||
season: default
|
||||
episodes:
|
||||
rename: true
|
||||
standard: default
|
||||
daily: default
|
||||
anime: default
|
||||
include:
|
||||
# Comment out any of the following includes to disable them
|
||||
- template: sonarr-quality-definition-anime
|
||||
- template: sonarr-v4-quality-profile-anime
|
||||
- template: sonarr-v4-custom-formats-anime
|
||||
|
||||
# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- 026d5aadd1a6b4e550b134cb6c72b3ca # Uncensored
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
|
||||
- trash_ids:
|
||||
- b2550eb333d27b75833e25b8c2557b38 # 10bit
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
|
||||
- trash_ids:
|
||||
- 418f50b10f1907201b6cfdf881f467b7 # Anime Dual Audio
|
||||
assign_scores_to:
|
||||
- name: Remux-1080p - Anime
|
||||
score: 0 # Adjust scoring as desired
|
||||
@@ -0,0 +1,17 @@
|
||||
radarr_default_base_url: http://radarr:7878
|
||||
radarr_default_api_key:
|
||||
|
||||
radarr_4k_base_url: http://radarr4k:7878
|
||||
radarr_4k_api_key:
|
||||
|
||||
radarr_anime_base_url: http://radarranime:7878
|
||||
radarr_anime_api_key:
|
||||
|
||||
sonarr_default_base_url: http://sonarr:8989
|
||||
sonarr_default_api_key:
|
||||
|
||||
sonarr_4k_base_url: http://sonarr4k:8989
|
||||
sonarr_4k_api_key:
|
||||
|
||||
sonarr_anime_base_url: http://sonarranime:8989
|
||||
sonarr_anime_api_key:
|
||||
@@ -0,0 +1,28 @@
|
||||
# Zurg configuration version
|
||||
zurg: v1
|
||||
token: ENTER REAL-DEBRID API TOKEN HERE # https://real-debrid.com/apitoken
|
||||
# host: "[::]"
|
||||
# port: 9999
|
||||
# username:
|
||||
# password:
|
||||
# proxy:
|
||||
api_rate_limit_per_minute: 60
|
||||
torrents_rate_limit_per_minute: 25
|
||||
concurrent_workers: 32
|
||||
check_for_changes_every_secs: 10
|
||||
# repair_every_mins: 60
|
||||
ignore_renames: true
|
||||
retain_rd_torrent_name: true
|
||||
retain_folder_name_extension: true
|
||||
enable_repair: false
|
||||
auto_delete_rar_torrents: false
|
||||
get_torrents_count: 5000
|
||||
# api_timeout_secs: 15
|
||||
# download_timeout_secs: 10
|
||||
# enable_download_mount: false
|
||||
# rate_limit_sleep_secs: 6
|
||||
# retries_until_failed: 2
|
||||
# network_buffer_size: 4194304 # 4MB
|
||||
serve_from_rclone: true
|
||||
# verify_download_link: false
|
||||
# force_ipv6: false
|
||||
@@ -0,0 +1,5 @@
|
||||
[zurg]
|
||||
type = webdav
|
||||
url = http://zurg:9999/dav
|
||||
vendor = other
|
||||
pacer_min_sleep = 0
|
||||
@@ -1,6 +0,0 @@
|
||||
curl https://raw.githubusercontent.com/Viren070/stremio-addons-docker-compose-template/refs/heads/main/.env -o .env
|
||||
curl https://raw.githubusercontent.com/Viren070/stremio-addons-docker-compose-template/refs/heads/main/compose.yaml -o compose.yaml
|
||||
mkdir -p ./data/mediafusion
|
||||
mkdir -p ./data/honey
|
||||
curl https://raw.githubusercontent.com/Viren070/stremio-addons-docker-compose-template/refs/heads/main/honey.config.json -o ./data/honey/config.json
|
||||
curl https://raw.githubusercontent.com/Viren070/stremio-addons-docker-compose-template/refs/heads/main/.env.mediafusion -o ./data/mediafusion/.env
|
||||
Reference in New Issue
Block a user