services: postgres: image: postgres:16-alpine container_name: clipin-postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-clipin} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-clipin_dev_pass} POSTGRES_DB: ${POSTGRES_DB:-clipin_dev} ports: - "${POSTGRES_PORT:-5433}:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-clipin} -d ${POSTGRES_DB:-clipin_dev}"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: clipin-redis restart: unless-stopped ports: - "${REDIS_PORT:-6380}:6379" volumes: - redis_data:/data healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 5s timeout: 5s retries: 5 verifier: profiles: ["app"] build: context: ./services/verifier restart: unless-stopped environment: VERIFIER_PORT: 8081 VERIFIER_ENV: ${VERIFIER_ENV:-development} VERIFIER_API_BASE: ${VERIFIER_API_BASE:-http://host.docker.internal:8080} VERIFIER_API_KEY: ${VERIFIER_API_KEY:-} VERIFIER_POLL_INTERVAL: ${VERIFIER_POLL_INTERVAL:-15m} VERIFIER_BATCH_SIZE: ${VERIFIER_BATCH_SIZE:-20} VERIFIER_HTTP_TIMEOUT: ${VERIFIER_HTTP_TIMEOUT:-30s} YOUTUBE_API_KEY: ${YOUTUBE_API_KEY:-} extra_hosts: - "host.docker.internal:host-gateway" ports: - "${VERIFIER_PORT:-8081}:8081" healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8081/health"] interval: 30s timeout: 5s retries: 3 start_period: 10s volumes: postgres_data: name: clipin_postgres_data redis_data: name: clipin_redis_data