Files
iled-shop/docker/docker-compose.yml

121 lines
3.5 KiB
YAML

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
# homelab first: Traefik is there; iled for postgres/redis/proxy.
networks:
- homelab
- iled
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
- iled
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
- iled
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