x-arcane:
  icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/romm.svg"
  urls:
    - "https://docs.romm.app/latest/getting-started/quick-start/"
services:
  romm:
    image: "rommapp/romm:latest"
    restart: "unless-stopped"
    ports:
      - "${PORT:-8080}:8080"
    environment:
      DB_HOST: "db"
      DB_NAME: "romm"
      DB_USER: "romm"
      DB_PASSWD: "${DB_PASSWORD:?Set DB_PASSWORD in .env}"
      ROMM_AUTH_SECRET_KEY: "${AUTH_SECRET:?Set AUTH_SECRET in .env}"
      SCREENSCRAPER_USER: "${SCREENSCRAPER_USER:-}"
      SCREENSCRAPER_PASSWORD: "${SCREENSCRAPER_PASSWORD:-}"
      RETROACHIEVEMENTS_API_KEY: "${RETROACHIEVEMENTS_API_KEY:-}"
      STEAMGRIDDB_API_KEY: "${STEAMGRIDDB_API_KEY:-}"
      IGDB_CLIENT_ID: "${IGDB_CLIENT_ID:-}"
      IGDB_CLIENT_SECRET: "${IGDB_CLIENT_SECRET:-}"
      HASHEOUS_API_ENABLED: "true"
    volumes:
      - "resources:/romm/resources"
      - "redis-data:/redis-data"
      - "${LIBRARY_PATH:-/data/media/roms}:/romm/library"
      - "assets:/romm/assets"
      - "config:/romm/config"
    depends_on:
      db:
        condition: "service_healthy"
    labels:
      com.getarcaneapp.arcane.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/romm.svg"
  db:
    image: "mariadb:11.4"
    restart: "unless-stopped"
    environment:
      MARIADB_DATABASE: "romm"
      MARIADB_USER: "romm"
      MARIADB_PASSWORD: "${DB_PASSWORD:?Set DB_PASSWORD in .env}"
      MARIADB_ROOT_PASSWORD: "${DB_ROOT_PASSWORD:?Set DB_ROOT_PASSWORD in .env}"
    volumes:
      - "db-data:/var/lib/mysql"
    healthcheck:
      test:
        - "CMD"
        - "healthcheck.sh"
        - "--connect"
        - "--innodb_initialized"
      interval: "10s"
      timeout: "5s"
      retries: 10
      start_period: "30s"
    labels:
      com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/mariadb.svg
volumes:
  resources: {}
  redis-data: {}
  assets: {}
  config: {}
  db-data: {}
