diff --git a/.env b/.env index e0914a4..305bb61 100644 --- a/.env +++ b/.env @@ -205,6 +205,7 @@ TORBOX_MANAGER_HOSTNAME=tbm.${DOMAIN} TRAEFIK_HOSTNAME=traefik.${DOMAIN} UPTIME_KUMA_HOSTNAME=status.${DOMAIN} USENET_STREAMER_HOSTNAME=usenet-streamer.${DOMAIN} +USENET_ULTIMATE_HOSTNAME=usenet-ultimate.${DOMAIN} VAULTWARDEN_HOSTNAME=vaultwarden.${DOMAIN} WALLOS_HOSTNAME=wallos.${DOMAIN} WEBSTREAMR_HOSTNAME=webstreamr.${DOMAIN} diff --git a/apps/authelia/compose.yaml b/apps/authelia/compose.yaml index dad3c9f..aaff450 100644 --- a/apps/authelia/compose.yaml +++ b/apps/authelia/compose.yaml @@ -27,6 +27,7 @@ services: ${EASYNEWS_PLUS_HOSTNAME}, ${EASYNEWS_PLUS_PLUS_HOSTNAME}, ${MEDIAFUSION_HOSTNAME}, + ${NZBDAV_HOSTNAME}, ${JACKETTIO_HOSTNAME}, ${PLEXIO_HOSTNAME}, ${STREMIO_AI_COMPANION_HOSTNAME}, @@ -42,6 +43,7 @@ services: ${TMDB_ADDON_HOSTNAME}, ${TMDB_COLLECTIONS_HOSTNAME}, ${USENET_STREAMER_HOSTNAME}, + ${USENET_ULTIMATE_HOSTNAME}, ${WEBSTREAMR_HOSTNAME} TEMPLATE_FRESHRSS_HOSTNAME: ${FRESHRSS_HOSTNAME?} TEMPLATE_KARAKEEP_HOSTNAME: ${KARAKEEP_HOSTNAME?} diff --git a/apps/cloudflare-ddns/compose.yaml b/apps/cloudflare-ddns/compose.yaml index 7ccc849..33a1b5c 100644 --- a/apps/cloudflare-ddns/compose.yaml +++ b/apps/cloudflare-ddns/compose.yaml @@ -104,6 +104,7 @@ services: ${TRAEFIK_HOSTNAME}, ${UPTIME_KUMA_HOSTNAME}, ${USENET_STREAMER_HOSTNAME}, + ${USENET_ULTIMATE_HOSTNAME}, ${VAULTWARDEN_HOSTNAME}, ${WALLOS_HOSTNAME}, ${WEBSTREAMR_HOSTNAME}, diff --git a/apps/usenet-ultimate/.env b/apps/usenet-ultimate/.env new file mode 100644 index 0000000..e10d566 --- /dev/null +++ b/apps/usenet-ultimate/.env @@ -0,0 +1,127 @@ +# ============================================================================================================================ # +# ██╗ ██╗███████╗███████╗███╗ ██╗███████╗████████╗ ██╗ ██╗██╗ ████████╗██╗███╗ ███╗ █████╗ ████████╗███████╗ # +# ██║ ██║██╔════╝██╔════╝████╗ ██║██╔════╝╚══██╔══╝ ██║ ██║██║ ╚══██╔══╝██║████╗ ████║██╔══██╗╚══██╔══╝██╔════╝ # +# ██║ ██║███████╗█████╗ ██╔██╗ ██║█████╗ ██║ ██║ ██║██║ ██║ ██║██╔████╔██║███████║ ██║ █████╗ # +# ██║ ██║╚════██║██╔══╝ ██║╚██╗██║██╔══╝ ██║ ██║ ██║██║ ██║ ██║██║╚██╔╝██║██╔══██║ ██║ ██╔══╝ # +# ╚██████╔╝███████║███████╗██║ ╚████║███████╗ ██║ ╚██████╔╝███████╗ ██║ ██║██║ ╚═╝ ██║██║ ██║ ██║ ███████╗ # +# ╚═════╝ ╚══════╝╚══════╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ # +# ============================================================================================================================ # +# +# For the most up-to-date documentation and variables, see https://github.com/DSmart33/Usenet-Ultimate +# +# All env var overrides follow the priority: env var > config.json > default. +# Active overrides are logged at startup. +# +# ============================================================================== +# ESSENTIAL ADDON SETUP +# ============================================================================== + +# Base URL for the application (used in manifests, stream URLs, and NZB proxy links) +# Must be publicly accessible if using with Stremio remotely +BASE_URL=https://${USENET_ULTIMATE_HOSTNAME?} + +# HTTP server port +PORT=1337 + +# ============================================================================== +# INDEXER CONFIGURATION (ONE-TIME MIGRATION) +# ============================================================================== +# These values are migrated to config.json on first startup. +# After initial setup, manage indexers through the web UI instead. + +# Single indexer +#INDEXER_URL=https://your-indexer.com +#INDEXER_API_KEY=your-api-key-here + +# Multiple indexers (comma-separated) +#INDEXER_URL=https://indexer1.com,https://indexer2.com +#INDEXER_API_KEY=key1,key2 + +# ============================================================================== +# CACHE CONFIGURATION +# ============================================================================== +# Also migrated to config.json on first startup; manage via web UI after that. + +# Search result cache TTL in seconds (default: 43200 = 12 hours; 0 disables caching) +#CACHE_TTL=43200 + +# ============================================================================== +# INDEX MANAGER +# ============================================================================== +# Runtime overrides — these always take priority over config.json / web UI values. + +# Indexer manager type (options: newznab, prowlarr, nzbhydra) +#INDEX_MANAGER=prowlarr + +# Prowlarr connection +#PROWLARR_URL=http://prowlarr:9696 +#PROWLARR_API_KEY=your-prowlarr-api-key + +# NZBHydra connection +#NZBHYDRA_URL=http://nzbhydra:5076 +#NZBHYDRA_API_KEY=your-nzbhydra-api-key + +# ============================================================================== +# NZBDAV CONNECTION +# ============================================================================== + +# NZBDav API and WebDAV configuration +#NZBDAV_URL=http://nzbdav:3000 +#NZBDAV_API_KEY=your-nzbdav-api-key +#NZBDAV_WEBDAV_URL=http://nzbdav:3000 +#NZBDAV_WEBDAV_USER=admin +#NZBDAV_WEBDAV_PASS=your-webdav-password + +# ============================================================================== +# BUILT-IN EASYNEWS INDEXER +# ============================================================================== + +# Easynews integration (optional) +#EASYNEWS_ENABLED=false +#EASYNEWS_USERNAME=your-easynews-username +#EASYNEWS_PASSWORD=your-easynews-password + +# ============================================================================== +# STREAMING CONFIGURATION +# ============================================================================== + +# Streaming mode (options: nzbdav, stremio) +#STREAMING_MODE=nzbdav + +# Stream buffer size in megabytes (reduces micro-stalls on high-bitrate content) +# Priority: STREAM_BUFFER_MB env var > config UI setting > 64 MB default +#STREAM_BUFFER_MB=64 + +# ============================================================================== +# HTTP PROXY +# ============================================================================== + +# Proxy mode (options: disabled, http) +#PROXY_MODE=disabled +#PROXY_URL=http://your-proxy:8080 + +# ============================================================================== +# NZB HEALTH CHECK +# ============================================================================== + +# Zyclops verification service endpoint (for NZB health checking) +# Override to point at a self-hosted Zyclops instance +#ZYCLOPS_ENDPOINT=https://zyclops.elfhosted.com + +# NNTP-level health checks — define a primary Usenet provider via env vars +# When HEALTH_CHECK_NNTP_HOST is set, it is prepended to any providers in config.json +#HEALTH_CHECK_ENABLED=true +#HEALTH_CHECK_NNTP_HOST=news.your-provider.com +#HEALTH_CHECK_NNTP_PORT=563 +#HEALTH_CHECK_NNTP_TLS=true +#HEALTH_CHECK_NNTP_USER=your-usenet-username +#HEALTH_CHECK_NNTP_PASS=your-usenet-password + +# ============================================================================== +# ADMIN / MAINTENANCE +# ============================================================================== + +# One-time password reset (remove after restart) +# Format with username: RESET_PASSWORD=username:newpassword +# Single-user shorthand: RESET_PASSWORD=newpassword +#RESET_PASSWORD= diff --git a/apps/usenet-ultimate/compose.yaml b/apps/usenet-ultimate/compose.yaml new file mode 100644 index 0000000..53aaa64 --- /dev/null +++ b/apps/usenet-ultimate/compose.yaml @@ -0,0 +1,26 @@ +services: + usenet-ultimate: + image: ghcr.io/dsmart33/usenet-ultimate:latest + container_name: usenet-ultimate + restart: unless-stopped + expose: + - 1337 + env_file: + - .env + labels: + - "traefik.enable=true" + - "traefik.http.routers.usenet-ultimate.rule=Host(`${USENET_ULTIMATE_HOSTNAME?}`)" + - "traefik.http.routers.usenet-ultimate.entrypoints=websecure" + - "traefik.http.routers.usenet-ultimate.tls.certresolver=letsencrypt" + - "traefik.http.routers.usenet-ultimate.middlewares=authelia@docker" + - "traefik.http.services.usenet-ultimate.loadbalancer.server.port=1337" + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "1" + volumes: + - ${DOCKER_DATA_DIR}/usenet-ultimate:/app/config:z + profiles: + - usenet-ultimate + - all \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index e8edf7d..40cafe7 100644 --- a/compose.yaml +++ b/compose.yaml @@ -98,6 +98,7 @@ include: - apps/tweakio/compose.yaml - apps/uptime-kuma/compose.yaml - apps/usenet-streamer/compose.yaml + - apps/usenet-ultimate/compose.yaml - apps/vaultwarden/compose.yaml - apps/wallos/compose.yaml - apps/warp/compose.yaml