version: "3.9" services: postgres: image: postgres:18 container_name: edgerush-postgres restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-edgerush} POSTGRES_USER: ${POSTGRES_USER:-edgerush} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-edgerush} volumes: - postgres_data:/var/lib/postgresql ports: - "5432:5432" data-sync: build: context: . dockerfile: Dockerfile.data-sync container_name: edgerush-data-sync working_dir: /home/gradle/project volumes: - ./:/home/gradle/project - simc_profiles:/home/gradle/project/simc-profiles - /var/run/docker.sock:/var/run/docker.sock # For running SimC Docker from container depends_on: - postgres environment: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_DB: ${POSTGRES_DB:-edgerush} POSTGRES_USER: ${POSTGRES_USER:-edgerush} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-edgerush} WOWAUDIT_API_KEY: ${WOWAUDIT_API_KEY} WOWAUDIT_GUILD_URI: ${WOWAUDIT_GUILD_URI} SYNC_RUN_ON_STARTUP: ${SYNC_RUN_ON_STARTUP:-false} SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-default} # Warcraft Logs Configuration WARCRAFT_LOGS_ENABLED: ${WARCRAFT_LOGS_ENABLED:-false} WARCRAFT_LOGS_CLIENT_ID: ${WARCRAFT_LOGS_CLIENT_ID:-} WARCRAFT_LOGS_CLIENT_SECRET: ${WARCRAFT_LOGS_CLIENT_SECRET:-} # Simulation Configuration SIMULATION_DOCKER_IMAGE: ${SIMULATION_DOCKER_IMAGE:-simulationcraftorg/simc} SIMULATION_DOCKER_PROFILE_DIR: /home/gradle/project/simc-profiles SIMULATION_DOCKER_TIMEOUT_MINUTES: ${SIMULATION_DOCKER_TIMEOUT_MINUTES:-30} # Raidbots Configuration RAIDBOTS_URL: ${RAIDBOTS_URL:-https://www.raidbots.com} RAIDBOTS_API_KEY: ${RAIDBOTS_API_KEY:-} RAIDBOTS_ENABLED: ${RAIDBOTS_ENABLED:-false} # OAuth2 Configuration (Discord & Battle.net) DISCORD_CLIENT_ID: ${DISCORD_CLIENT_ID:-} DISCORD_CLIENT_SECRET: ${DISCORD_CLIENT_SECRET:-} DISCORD_REDIRECT_URI: ${DISCORD_REDIRECT_URI:-http://localhost/auth/discord/callback} BATTLENET_CLIENT_ID: ${BATTLENET_CLIENT_ID:-} BATTLENET_CLIENT_SECRET: ${BATTLENET_CLIENT_SECRET:-} BATTLENET_REDIRECT_URI: ${BATTLENET_REDIRECT_URI:-http://localhost/auth/battlenet/callback} BATTLENET_REGION: ${BATTLENET_REGION:-us} # JWT Configuration JWT_SECRET: ${JWT_SECRET:-} ports: - "8080:8080" web-dashboard: build: context: ./web-dashboard dockerfile: Dockerfile args: VITE_API_URL: ${VITE_API_URL:-/api} VITE_WS_URL: ${VITE_WS_URL:-} VITE_DISCORD_CLIENT_ID: ${VITE_DISCORD_CLIENT_ID:-} VITE_BATTLENET_CLIENT_ID: ${VITE_BATTLENET_CLIENT_ID:-} VITE_GUILD_ID: ${VITE_GUILD_ID:-dod} container_name: edgerush-web-dashboard restart: unless-stopped depends_on: - data-sync nginx: image: nginx:1.27 container_name: edgerush-nginx depends_on: - data-sync - web-dashboard ports: - "80:80" volumes: - ./deploy/nginx/conf.d:/etc/nginx/conf.d:ro volumes: postgres_data: driver: local simc_profiles: driver: local