services: ganymede: container_name: ganymede image: ghcr.io/zibbp/ganymede:latest restart: unless-stopped depends_on: - ganymede-db environment: - DEBUG=false - TZ=America/Chicago # Set to your timezone # Data paths in container; update the mounted volume paths as well - VIDEOS_DIR=/data/videos - TEMP_DIR=/data/temp - LOGS_DIR=/data/logs - CONFIG_DIR=/data/config # Database settings - DB_HOST=ganymede-db - DB_PORT=5432 - DB_USER=ganymede - DB_PASS=${POSTGRES_PASSWORD} - DB_NAME=ganymede-prd - DB_SSL=disable # - DB_SSL_ROOT_CERT= # path to cert in the container if DB_SSL is not disabled - TWITCH_CLIENT_ID=${TWITCH_CLIENT_ID} # from your twitch application - TWITCH_CLIENT_SECRET=${TWITCH_CLIENT_SECRET} # from your twitch application # Worker settings. Max number of tasks to run in parallel per type. - MAX_CHAT_DOWNLOAD_EXECUTIONS=3 - MAX_CHAT_RENDER_EXECUTIONS=2 - MAX_VIDEO_DOWNLOAD_EXECUTIONS=2 - MAX_VIDEO_CONVERT_EXECUTIONS=3 - MAX_VIDEO_SPRITE_THUMBNAIL_EXECUTIONS=2 # Optional OAuth settings # - OAUTH_ENABLED=false # - OAUTH_PROVIDER_URL= # - OAUTH_CLIENT_ID= # - OAUTH_CLIENT_SECRET= # - OAUTH_REDIRECT_URL=http://IP:PORT/api/v1/auth/oauth/callback # Points to the API service # Optional Frontend settings - SHOW_SSO_LOGIN_BUTTON=true - FORCE_SSO_AUTH=false - REQUIRE_LOGIN=false # - CDN_URL= # Set this if you are hosting static files through another service (nginx, S3, etc). By default this does not need to be configured as Ganymede serves the static files. volumes: - /mnt/ganymede:/data/videos # update VIDEOS_DIR env var - /mnt/temp/ganymede/temp:/data/temp # update TEMP_DIR env var - /home/docker/ganymede/logs:/data/logs # queue logs - /home/docker/ganymede/config:/data/config # config and other miscellaneous files ports: - 4800:4000 healthcheck: test: curl --fail http://localhost:4000/health || exit 1 interval: 60s retries: 5 start_period: 60s timeout: 10s ganymede-db: container_name: ganymede-db image: postgres:14 volumes: - /home/docker/ganymede/ganymede-db:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=ganymede - POSTGRES_DB=ganymede-prd ports: - 4801:5432 restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 30s timeout: 60s retries: 5 start_period: 60s