services: postgres: container_name: lbf-bot-postgres image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB:-lbf-bot} volumes: - postgres_data:/var/lib/postgresql/data networks: - lbf-network healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] interval: 5s timeout: 5s retries: 5 redis: container_name: lbf-bot-redis image: redis:7-alpine restart: unless-stopped volumes: - redis_data:/data networks: - lbf-network discord-bot: container_name: lbf-bot image: git.pihkaal.xyz/pihkaal/lbf-bot:latest restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_started networks: - lbf-network environment: - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-lbf-bot} - REDIS_URL=redis://redis:6379 - DISCORD_BOT_TOKEN - DISCORD_MENTION - DISCORD_REWARDS_GIVER - DISCORD_REWARDS_CHANNEL - DISCORD_ADMIN_MENTION - DISCORD_ADMIN_CHANNEL - DISCORD_TRACKING_CHANNEL - DISCORD_STAFF_ROLE_ID - WOV_API_KEY - WOV_CLAN_ID - WOV_FETCH_INTERVAL - WOV_TRACKING_INTERVAL - QUEST_REWARDS - QUEST_EXCLUDE networks: lbf-network: driver: bridge volumes: postgres_data: redis_data: