services: streamystats_frontend: image: fredrikburmester/streamystats-v2-nextjs:latest container_name: streamystats_frontend restart: unless-stopped expose: - 3000 environment: NODE_ENV: "production" DATABASE_URL: "postgresql://streamystats:streamystats@streamystats_postgres:5432/streamystats" JOB_SERVER_URL: "http://streamystats_backend:3005" HOSTNAME: "0.0.0.0" labels: - "traefik.enable=true" - "traefik.http.routers.streamystats_frontend.rule=Host(`${STREAMYSTATS_HOSTNAME?}`)" - "traefik.http.routers.streamystats_frontend.entrypoints=websecure" - "traefik.http.routers.streamystats_frontend.tls.certresolver=letsencrypt" - "traefik.http.routers.streamystats_frontend.middlewares=authelia@docker" - "traefik.http.services.streamystats_frontend.loadbalancer.server.port=3000" depends_on: streamystats_postgres: condition: service_healthy streamystats_migrations: condition: service_completed_successfully healthcheck: test: [ "CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health", ] interval: 30s timeout: 10s retries: 3 start_period: 60s profiles: - streamystats - all streamystats_backend: image: fredrikburmester/streamystats-v2-job-server:latest container_name: streamystats_backend restart: unless-stopped expose: - 3005 environment: NODE_ENV: "production" DATABASE_URL: "postgresql://streamystats:streamystats@streamystats_postgres:5432/streamystats" PORT: 3005 depends_on: streamystats_postgres: condition: service_healthy streamystats_migrations: condition: service_completed_successfully healthcheck: test: [ "CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3005/health", ] interval: 30s timeout: 10s retries: 3 start_period: 60s profiles: - streamystats - all streamystats_postgres: image: tensorchord/vchord-postgres:pg17-v0.4.1 container_name: streamystats_postgres restart: unless-stopped expose: - 5432 environment: POSTGRES_USER: streamystats POSTGRES_PASSWORD: streamystats POSTGRES_DB: streamystats PGDATA: /var/lib/postgresql/data/pgdata volumes: - ${DOCKER_DATA_DIR}/streamystats:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "streamystats", "-d", "streamystats"] interval: 10s timeout: 5s retries: 5 profiles: - streamystats - all streamystats_migrations: image: fredrikburmester/streamystats-v2-migrate:latest container_name: streamystats_migrations restart: "no" environment: - DATABASE_URL=postgresql://streamystats:streamystats@streamystats_postgres:5432/streamystats - POSTGRES_USER=streamystats - POSTGRES_PASSWORD=streamystats - POSTGRES_DB=streamystats - PGPASSWORD=streamystats depends_on: streamystats_postgres: condition: service_healthy profiles: - streamystats - all