services: kvideo: container_name: kvideo build: context: . dockerfile: Dockerfile target: runner image: kvideo:latest init: true restart: always ports: - "3000:3000" environment: NODE_ENV: production PORT: 3000 AUTH_SECRET: ${AUTH_SECRET:-} AUTH_COOKIE_SECURE: ${AUTH_COOKIE_SECURE:-} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-} ACCESS_PASSWORD: ${ACCESS_PASSWORD:-} ACCOUNTS: ${ACCOUNTS:-} PREMIUM_PASSWORD: ${PREMIUM_PASSWORD:-} REDIS_URL: ${REDIS_URL:-redis://redis:6379/0} UPSTASH_REDIS_REST_URL: ${UPSTASH_REDIS_REST_URL:-} UPSTASH_REDIS_REST_TOKEN: ${UPSTASH_REDIS_REST_TOKEN:-} depends_on: redis: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget --spider --quiet http://127.0.0.1:3000/ || exit 1"] interval: 30s timeout: 5s retries: 3 start_period: 30s redis: image: redis:7-alpine container_name: kvideo-redis restart: always command: ["redis-server", "--appendonly", "yes"] volumes: - kvideo-redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 5 volumes: kvideo-redis-data: