version: '3.9' services: api: image: ghcr.io/${GITHUB_REPOSITORY_OWNER}/shieldai-api:${DOCKER_TAG:-latest} restart: unless-stopped ports: - "${PORT:-3000}:3000" environment: - DATABASE_URL=postgresql://shieldai:${POSTGRES_PASSWORD}@postgres:5432/shieldai - REDIS_URL=redis://redis:6379 - PORT=3000 - LOG_LEVEL=info - HIBP_API_KEY=${HIBP_API_KEY} - RESEND_API_KEY=${RESEND_API_KEY} depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - shieldai darkwatch: image: ghcr.io/${GITHUB_REPOSITORY_OWNER}/shieldai-darkwatch:${DOCKER_TAG:-latest} restart: unless-stopped environment: - DATABASE_URL=postgresql://shieldai:${POSTGRES_PASSWORD}@postgres:5432/shieldai - REDIS_URL=redis://redis:6379 - HIBP_API_KEY=${HIBP_API_KEY} depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - shieldai spamshield: image: ghcr.io/${GITHUB_REPOSITORY_OWNER}/shieldai-spamshield:${DOCKER_TAG:-latest} restart: unless-stopped environment: - DATABASE_URL=postgresql://shieldai:${POSTGRES_PASSWORD}@postgres:5432/shieldai - REDIS_URL=redis://redis:6379 depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - shieldai voiceprint: image: ghcr.io/${GITHUB_REPOSITORY_OWNER}/shieldai-voiceprint:${DOCKER_TAG:-latest} restart: unless-stopped environment: - DATABASE_URL=postgresql://shieldai:${POSTGRES_PASSWORD}@postgres:5432/shieldai - REDIS_URL=redis://redis:6379 depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - shieldai postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: shieldai POSTGRES_USER: shieldai POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U shieldai"] interval: 5s timeout: 5s retries: 5 networks: - shieldai redis: image: redis:7-alpine restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - shieldai volumes: pgdata: networks: shieldai: driver: bridge