services: romm: image: rommapp/romm:latest container_name: romm restart: unless-stopped 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 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. depends_on: romm_db: condition: service_healthy restart: true networks: - default - proxy labels: caddy: games.fern.garden caddy.reverse_proxy: '{{upstreams 8080}}' romm_db: image: mariadb:latest container_name: romm_db restart: unless-stopped environment: - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} # Use a unique, secure password - MARIADB_DATABASE=romm - MARIADB_USER=romm - MARIADB_PASSWORD=${MARIADB_PASSWORD} volumes: - romm_db:/var/lib/mysql networks: - default 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