home-docker/main-docker/ganymede/compose.yaml
2025-06-15 14:21:05 -05:00

73 lines
2.6 KiB
YAML

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