services: jellystat_db: container_name: jellystat_db image: docker.io/library/postgres:18.2@sha256:9b5bd946f3a507db72c55959700e517463e8d5dbb6f7eb30d920d5bcf6951431 restart: unless-stopped shm_size: '1gb' environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - PGDATA=/var/lib/postgresql/18/docker volumes: - ${APPDATA_PATH}/jellystat/db:/var/lib/postgresql networks: - backend healthcheck: test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 3 start_period: 10s jellystat: container_name: jellystat image: ghcr.io/cyfershepard/jellystat:1.1.8@sha256:c8c451704ba7985340142cd047e2364cabaf41b613669b6c5340688ed217f82a restart: unless-stopped depends_on: jellystat-db: condition: service_healthy environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_IP=jellystat_db - POSTGRES_PORT=5432 - JWT_SECRET=${JWT_SECRET} - TZ=${TZ} volumes: - ${APPDATA_PATH}/jellystat/backup-data:/app/backend/backup-data ports: - ${PORT}:3000 networks: - frontend - backend healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:3000/auth/isConfigured || exit 1 interval: 60s timeout: 30s retries: 5 start_period: 30s networks: frontend: external: true backend: external: true