# Use the backend source code in upstream/HubBackend. name: drivershub services: mariadb: image: mariadb:10.11 restart: unless-stopped entrypoint: ["/usr/local/bin/hub-mariadb-entrypoint"] command: ["mariadbd", "--log-warnings=1"] environment: MARIADB_DATABASE: ${DB_NAME:-drivershub} MARIADB_USER: drivershub MARIADB_PASSWORD: ${DB_PASSWORD:-change-me} MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-change-root-me} volumes: - ./data/mariadb:/var/lib/mysql - ./data/mariadb-external:/var/lib/mysqlext - ./docker/mariadb-entrypoint.sh:/usr/local/bin/hub-mariadb-entrypoint:ro - ./docker/mariadb-init.sql:/docker-entrypoint-initdb.d/10-drivershub.sql:ro healthcheck: test: ["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized"] interval: 5s timeout: 5s retries: 30 valkey: image: valkey/valkey:8-alpine restart: unless-stopped command: ["valkey-server", "--appendonly", "yes"] volumes: - ./data/valkey:/data healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 5s timeout: 3s retries: 20 db-init: build: context: . command: ["drivershub", "--config", "/app/config/config.json", "setup", "init-db"] volumes: - ./config:/app/config depends_on: mariadb: condition: service_healthy restart: "no" bannergen: build: context: . restart: unless-stopped command: ["bannergen", "--host", "0.0.0.0", "--port", "8700", "--workers", "2"] backend: build: context: . restart: unless-stopped environment: TRUST_HOST_PROXY: "1" command: ["drivershub", "--config", "/app/config/config.json", "--banner-service-url", "http://bannergen:8700/banner"] volumes: - ./config:/app/config ports: - "${BACKEND_BIND:-127.0.0.1:17777}:7777" depends_on: db-init: condition: service_completed_successfully valkey: condition: service_healthy bannergen: condition: service_started