services: postgres: image: postgres:16-alpine container_name: iled-postgres restart: always environment: POSTGRES_DB: ${POSTGRES_DB:-iled} POSTGRES_USER: ${POSTGRES_USER:-iled} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-iled123} volumes: - iled_pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 5s retries: 5 networks: - iled - homelab redis: image: redis:7-alpine container_name: iled-redis restart: always healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - iled openobserve: image: public.ecr.aws/zinclabs/openobserve:latest container_name: iled-openobserve restart: always environment: ZO_ROOT_USER_EMAIL: ${ZO_ROOT_USER_EMAIL:-root@iled.local} ZO_ROOT_USER_PASSWORD: ${ZO_ROOT_USER_PASSWORD:-Complexpass#123} ZO_DATA_DIR: /data volumes: - iled_openobserve:/data networks: - iled api: image: registry.zea.lt/miczek/iled-api:latest container_name: iled-api restart: always environment: ASPNETCORE_ENVIRONMENT: Production ConnectionStrings__DefaultConnection: "Host=postgres;Port=5432;Database=${POSTGRES_DB:-iled};Username=${POSTGRES_USER:-iled};Password=${POSTGRES_PASSWORD:-iled123}" ConnectionStrings__Redis: "redis:6379" Cors__Origins__0: "https://shop.zea.lt" Cors__Origins__1: "https://admin.zea.lt" 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 networks: - iled - homelab labels: - "traefik.enable=true" - "traefik.docker.network=homelab" - "traefik.http.routers.iled-api.rule=Host(`api.iled.zea.lt`)" - "traefik.http.routers.iled-api.entrypoints=websecure" - "traefik.http.routers.iled-api.tls.certresolver=leresolver" - "traefik.http.services.iled-api.loadbalancer.server.port=8080" shop: image: registry.zea.lt/miczek/iled-shop:latest container_name: iled-shop restart: always depends_on: - api networks: - homelab labels: - "traefik.enable=true" - "traefik.docker.network=homelab" - "traefik.http.routers.iled-shop.rule=Host(`shop.zea.lt`)" - "traefik.http.routers.iled-shop.entrypoints=websecure" - "traefik.http.routers.iled-shop.tls.certresolver=leresolver" - "traefik.http.services.iled-shop.loadbalancer.server.port=80" admin: image: registry.zea.lt/miczek/iled-admin:latest container_name: iled-admin restart: always depends_on: - api networks: - homelab labels: - "traefik.enable=true" - "traefik.docker.network=homelab" - "traefik.http.routers.iled-admin.rule=Host(`admin.zea.lt`)" - "traefik.http.routers.iled-admin.entrypoints=websecure" - "traefik.http.routers.iled-admin.tls.certresolver=leresolver" - "traefik.http.services.iled-admin.loadbalancer.server.port=80" volumes: iled_pgdata: iled_openobserve: networks: iled: name: iled driver: bridge homelab: name: homelab external: true