stacks/romm/compose.yaml
2025-07-01 17:30:05 +08:00

78 lines
2.7 KiB
YAML

name: romm
services:
romm:
image: rommapp/romm:latest
container_name: romm
depends_on:
romm_db:
condition: service_healthy
restart: true
volumes:
- romm_resources:/romm/resources # Resources fetched from IGDB (covers, screenshots, etc.)
- romm_redis:/redis-data # Cached data for background tasks
- romm_assets:/romm/assets # Uploaded saves, states, etc.
- romm_config:/romm/config # Path where config.yml is stored
- /media/media/romm:/romm/library/roms:ro # Your game library. Check https://github.com/rommapp/romm?tab=readme-ov-file#folder-structure for more details.
environment:
- DB_HOST=romm_db
- DB_NAME=romm # Should match MARIADB_DATABASE in mariadb
- DB_USER=romm # Should match MARIADB_USER in mariadb
- DB_PASSWD=${MARIADB_PASSWORD} # Should match MARIADB_PASSWORD in mariadb
- ROMM_AUTH_SECRET_KEY=${ROMM_AUTH_SECRET_KEY} # Generate a key with `openssl rand -hex 32`
- OIDC_ENABLED=true
- OIDC_PROVIDER=authentik
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID}
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}
- OIDC_REDIRECT_URI=https://games.fern.garden/api/oauth/openid
- OIDC_SERVER_APPLICATION_URL=https://auth.fern.garden/application/o/romm/
- MOBYGAMES_API_KEY=${MOBYGAMES_API_KEY}
- IGDB_CLIENT_ID=${IGDB_CLIENT_ID} # Generate an ID and SECRET in IGDB
- IGDB_CLIENT_SECRET=${IGDB_CLIENT_SECRET} # https://api-docs.igdb.com/#account-creation
- SCREENSCRAPER_USER=mondas # Use your ScreenScraper username and password
- SCREENSCRAPER_PASSWORD=${SCREENSCRAPER_PASSWORD} # https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#screenscraper
- STEAMGRIDDB_API_KEY=${STEAMGRIDDB_API_KEY} # https://github.com/rommapp/romm/wiki/Metadata-Providers#steamgriddb
networks:
- default
- proxy
restart: unless-stopped
labels:
caddy: games.fern.garden
caddy.reverse_proxy: '{{upstreams 8080}}'
romm_db:
image: mariadb:latest
container_name: romm_db
volumes:
- romm_db:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} # Use a unique, secure password
- MARIADB_DATABASE=romm
- MARIADB_USER=romm
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
networks:
- default
restart: unless-stopped
healthcheck:
test: [ CMD, healthcheck.sh, --connect, --innodb_initialized ]
start_period: 30s
start_interval: 10s
interval: 10s
timeout: 5s
retries: 5
networks:
default:
proxy:
external: true
volumes:
romm_db:
name: romm_db
romm_resources:
name: romm_resources
romm_redis:
name: romm_redis
romm_assets:
name: romm_assets
romm_config:
name: romm_config