From 0dfef8e212037c4a5f7d8caa37bc48596d217329 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Fri, 28 Feb 2025 19:38:56 +0000 Subject: [PATCH] add stremio-catalog-providers and stremio-trakt-addon --- .env | 22 ++++++++++ compose.yaml | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) diff --git a/.env b/.env index a08af89..d80ff57 100644 --- a/.env +++ b/.env @@ -55,6 +55,28 @@ STREMIO_SERVER_HOSTNAME= ADDON_MANAGER_HOSTNAME= + +# For these two addons, after your inital compose up, you need to create the databases in postgres +# You can do this by running the following commands: +# docker exec -it postgres psql -U postgres +# CREATE DATABASE stremio_trakt_db; +# CREATE DATABASE stremio_catalog_db; +# \q +RAVENN_CATALOGS_HOSTNAME= +RAVENN_TRAKT_HOSTNAME= + +## These credentials are required to interact with the Trakt API and access its services. +# To obtain these credentials: +# 1. Create an account on Trakt.tv (https://trakt.tv). +# 2. Go to the applications section (https://trakt.tv/oauth/applications). +# 3. Create a new application by filling in the required information (name, description, etc.). +# - For the "Redirect URL", add the following URLs: +# - ${RAVENN_TRAKT_HOSTNAME}/callback +# - ${RAVENN_CATALOGS_HOSTNAME}/callback +TRAKT_CLIENT_ID= +TRAKT_CLIENT_SECRET= + + POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres diff --git a/compose.yaml b/compose.yaml index 3139c2a..fb6f82a 100644 --- a/compose.yaml +++ b/compose.yaml @@ -849,7 +849,120 @@ services: - "flame.url=https://${ADDON_MANAGER_HOSTNAME}" + ravenn-catalogs: + image: reddravenn/stremio-catalog-providers + container_name: ravenn-catalogs + expose: + - 7000 + environment: + PORT: 7000 + BASE_URL: https://${RAVENN_CATALOGS_HOSTNAME?} + DB_USER: ${POSTGRES_USER} + DB_HOST: ravenn-postgres + DB_NAME: stremio_catalog_db + DB_PASSWORD: ${POSTGRES_PASSWORD} + DB_PORT: 5432 + DB_MAX_CONNECTIONS: 20 + DB_IDLE_TIMEOUT: 30000 + DB_CONNECTION_TIMEOUT: 2000 + REDIS_HOST: ravenn-redis + REDIS_PORT: 6379 + REDIS_PASSWORD: + TRAKT_CLIENT_ID: ${TRAKT_CLIENT_ID} + TRAKT_CLIENT_SECRET: ${TRAKT_CLIENT_SECRET} + TRAKT_HISTORY_FETCH_INTERVAL: 1d + CACHE_CATALOG_CONTENT_DURATION_DAYS: 1 + CACHE_POSTER_CONTENT_DURATION_DAYS: 7 + LOG_LEVEL: info + LOG_INTERVAL_DELETION: 3d + NODE_ENV: production + depends_on: + ravenn-postgres: + condition: service_healthy + ravenn-redis: + condition: service_healthy + volumes: + - ./data/ravenn/catalogs/db:/usr/src/app/db + - ./data/ravenn/catalogs/log:/usr/src/app/log + labels: + - "traefik.enable=true" + - "traefik.http.routers.ravenn-catalogs.rule=Host(`${RAVENN_CATALOGS_HOSTNAME?}`)" + - "traefik.http.routers.ravenn-catalogs.entrypoints=websecure" + - "traefik.http.routers.ravenn-catalogs.tls.certresolver=myresolver" + - "flame.type=app" + - "flame.name=Stremio Catalogs" + - "flame.url=https://${RAVENN_CATALOGS_HOSTNAME}" + + ravenn-trakt: + image: reddravenn/stremio-trakt-addon + container_name: ravenn-trakt + expose: + - 7000 + environment: + PORT: 7000 + BASE_URL: https://${RAVENN_TRAKT_HOSTNAME?} + DB_USER: ${POSTGRES_USER} + DB_HOST: ravenn-postgres + DB_NAME: stremio_trakt_db + DB_PASSWORD: ${POSTGRES_PASSWORD} + DB_PORT: 5432 + DB_MAX_CONNECTIONS: 20 + DB_IDLE_TIMEOUT: 30000 + DB_CONNECTION_TIMEOUT: 2000 + REDIS_HOST: ravenn-redis + REDIS_PORT: 6379 + REDIS_PASSWORD: + TRAKT_CLIENT_ID: ${TRAKT_CLIENT_ID} + TRAKT_CLIENT_SECRET: ${TRAKT_CLIENT_SECRET} + TMDB_CACHE_DURATION: 1d + TRAKT_CACHE_DURATION: 1d + TRAKT_HISTORY_FETCH_INTERVAL: 1d + LOG_LEVEL: info + LOG_INTERVAL_DELETION: 3d + NODE_ENV: production + restart: unless-stopped + depends_on: + ravenn-postgres: + condition: service_healthy + ravenn-redis: + condition: service_healthy + volumes: + - ./data/ravenn/trakt/cache:/usr/src/app/cache + - ./data/ravenn/trakt/log:/usr/src/app/log + labels: + - "traefik.enable=true" + - "traefik.http.routers.ravenn-trakt.rule=Host(`${RAVENN_TRAKT_HOSTNAME?}`)" + - "traefik.http.routers.ravenn-trakt.entrypoints=websecure" + - "traefik.http.routers.ravenn-trakt.tls.certresolver=myresolver" + - "flame.type=app" + - "flame.name=Stremio Trakt" + - "flame.url=https://${RAVENN_TRAKT_HOSTNAME}" + ravenn-postgres: + container_name: ravenn-postgres + image: postgres:16.4 + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - ravenn-postgres:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 10s + + ravenn-redis: + container_name: ravenn-redis + image: redis:6 + volumes: + - ravenn-redis:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 30s + timeout: 10s + retries: 5 # plausible_db: # image: postgres:16-alpine @@ -946,6 +1059,8 @@ volumes: redis-data: postgres-data: mongodb-data: + ravenn-postgres: + ravenn-redis: # plausible-db: # plausible-data: # plausible-event-db: