services: postgres: image: postgres:16-alpine container_name: iled-postgres environment: POSTGRES_DB: iled POSTGRES_USER: iled POSTGRES_PASSWORD: iled123 ports: - "5433:5432" volumes: - iled_pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U iled -d iled"] interval: 5s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: iled-redis ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 # Backend observability: logs + metrics + traces (UI http://localhost:5080) # Login: root@iled.local / Complexpass#123 openobserve: image: public.ecr.aws/zinclabs/openobserve:latest container_name: iled-openobserve environment: ZO_ROOT_USER_EMAIL: root@iled.local ZO_ROOT_USER_PASSWORD: Complexpass#123 ZO_DATA_DIR: /data ports: - "5080:5080" volumes: - iled_openobserve:/data api: build: context: ../src/backend dockerfile: ../../docker/Dockerfile.api container_name: iled-api ports: - "5000:8080" environment: ASPNETCORE_ENVIRONMENT: Development ConnectionStrings__DefaultConnection: "Host=postgres;Port=5432;Database=iled;Username=iled;Password=iled123" ConnectionStrings__Redis: "redis:6379" Cors__Origins__0: "http://localhost:4200" Cors__Origins__1: "http://localhost:4201" OpenTelemetry__OtlpEndpoint: "http://openobserve:5080/api/default" OpenTelemetry__OtlpHeaders: "Authorization=Basic cm9vdEBpbGVkLmxvY2FsOkNvbXBsZXhwYXNzIzEyMw==" OpenTelemetry__ServiceName: "iled-api" depends_on: postgres: condition: service_healthy redis: condition: service_healthy openobserve: condition: service_started profiles: - full volumes: iled_pgdata: iled_openobserve: