From b169c0beb7e00fc46f923ce16ee9fe22eaa9ce4c Mon Sep 17 00:00:00 2001 From: Thomas Kendrick Date: Tue, 20 Jan 2026 20:49:16 +0000 Subject: [PATCH] feat(media): add jellystat service --- media/jellystat/.env.example | 3 ++ media/jellystat/docker-compose.yml | 52 ++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 media/jellystat/.env.example create mode 100644 media/jellystat/docker-compose.yml diff --git a/media/jellystat/.env.example b/media/jellystat/.env.example new file mode 100644 index 0000000..171ab8e --- /dev/null +++ b/media/jellystat/.env.example @@ -0,0 +1,3 @@ +JELLYSTAT_DB_USER=postgres +JELLYSTAT_DB_PASSWORD=change_me +JELLYSTAT_JWT_SECRET=change_me_to_a_random_string diff --git a/media/jellystat/docker-compose.yml b/media/jellystat/docker-compose.yml new file mode 100644 index 0000000..1b85e69 --- /dev/null +++ b/media/jellystat/docker-compose.yml @@ -0,0 +1,52 @@ +version: "3.8" + +services: + jellystat-db: + image: postgres:15 + container_name: jellystat-db + environment: + POSTGRES_DB: jfstat + POSTGRES_USER: ${JELLYSTAT_DB_USER:-postgres} + POSTGRES_PASSWORD: ${JELLYSTAT_DB_PASSWORD} + volumes: + - ${DOCKER_PATH}/jellystat/postgres:/var/lib/postgresql/data + restart: unless-stopped + networks: + - traefik_public + + jellystat: + image: cyfershepard/jellystat:latest + container_name: jellystat + environment: + POSTGRES_USER: ${JELLYSTAT_DB_USER:-postgres} + POSTGRES_PASSWORD: ${JELLYSTAT_DB_PASSWORD} + POSTGRES_IP: jellystat-db + POSTGRES_PORT: 5432 + JWT_SECRET: ${JELLYSTAT_JWT_SECRET} + volumes: + - ${DOCKER_PATH}/jellystat/backup:/app/backend/backup-data + depends_on: + - jellystat-db + expose: + - 3000 + restart: unless-stopped + labels: + # Traefik + traefik.enable: "true" + traefik.http.routers.jellystat.rule: "Host(`jellystat.${DOMAIN}`)" + traefik.http.routers.jellystat.entrypoints: "https" + traefik.http.routers.jellystat.service: "jellystat" + traefik.http.routers.jellystat.tls.certresolver: "cloudflare" + traefik.http.services.jellystat.loadbalancer.server.port: "3000" + # Homepage + homepage.group: "Media" + homepage.name: "Jellystat" + homepage.icon: "jellystat.png" + homepage.href: "https://jellystat.${DOMAIN}" + homepage.description: "Jellyfin Statistics" + networks: + - traefik_public + +networks: + traefik_public: + external: true