networks: npm-network: external: true romm-internal: services: romm: image: rommapp/romm:latest container_name: romm restart: unless-stopped environment: - TZ=America/New_York - DB_HOST=romm-db - DB_NAME=romm - DB_USER=romm-user - DB_PASSWD=${DB_PASSWD} - ROMM_AUTH_SECRET_KEY=${ROMM_AUTH_SECRET_KEY} # Metadata providers (all optional but recommended) - SCREENSCRAPER_USER= - SCREENSCRAPER_PASSWORD= - RETROACHIEVEMENTS_API_KEY= - STEAMGRIDDB_API_KEY= - HASHEOUS_API_ENABLED=true - IGDB_CLIENT_ID=${IGDB_CLIENT_ID} - IGDB_CLIENT_SECRET=${IGDB_CLIENT_SECRET} volumes: - /mnt/nas_games:/romm/library # NAS: media/games → library root; roms/ subdir inside - /srv/romm/assets:/romm/assets # Saves, states, screenshots - /srv/romm/config:/romm/config # config.yml (optional) - /srv/romm/resources:/romm/resources - /srv/romm/redis:/redis-data networks: - npm-network - romm-internal depends_on: romm-db: condition: service_healthy restart: true romm-db: image: mariadb:latest container_name: romm-db restart: unless-stopped environment: - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - MARIADB_DATABASE=romm - MARIADB_USER=romm-user - MARIADB_PASSWORD=${MARIADB_PASSWORD} volumes: - /srv/romm/db:/var/lib/mysql networks: - romm-internal healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] start_period: 30s start_interval: 10s interval: 10s timeout: 5s retries: 5