# Cameleer Infrastructure # Shared base — always loaded. Mode-specific services in separate compose files. services: cameleer-traefik: image: ${TRAEFIK_IMAGE:-gitea.siegeln.net/cameleer/cameleer-traefik}:${VERSION:-latest} restart: unless-stopped ports: - "${HTTP_PORT:-80}:80" - "${HTTPS_PORT:-443}:443" - "${LOGTO_CONSOLE_BIND:-127.0.0.1}:${LOGTO_CONSOLE_PORT:-3002}:3002" environment: PUBLIC_HOST: ${PUBLIC_HOST:-localhost} AUTH_HOST: ${AUTH_HOST:-localhost} CERT_FILE: ${CERT_FILE:-} KEY_FILE: ${KEY_FILE:-} CA_FILE: ${CA_FILE:-} volumes: - cameleer-certs:/certs - ${DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock:ro labels: - "prometheus.io/scrape=true" - "prometheus.io/port=8082" - "prometheus.io/path=/metrics" networks: - cameleer - cameleer-traefik - monitoring cameleer-postgres: image: ${POSTGRES_IMAGE:-gitea.siegeln.net/cameleer/cameleer-postgres}:${VERSION:-latest} restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-cameleer_saas} POSTGRES_USER: ${POSTGRES_USER:-cameleer} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in .env} volumes: - cameleer-pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-cameleer} -d $${POSTGRES_DB:-cameleer_saas}"] interval: 5s timeout: 5s retries: 5 networks: - cameleer - monitoring cameleer-clickhouse: image: ${CLICKHOUSE_IMAGE:-gitea.siegeln.net/cameleer/cameleer-clickhouse}:${VERSION:-latest} restart: unless-stopped environment: CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:?CLICKHOUSE_PASSWORD must be set in .env} volumes: - cameleer-chdata:/var/lib/clickhouse healthcheck: test: ["CMD-SHELL", "clickhouse-client --password $${CLICKHOUSE_PASSWORD} --query 'SELECT 1'"] interval: 10s timeout: 5s retries: 3 labels: - "prometheus.io/scrape=true" - "prometheus.io/port=9363" - "prometheus.io/path=/metrics" networks: - cameleer - monitoring volumes: cameleer-pgdata: cameleer-chdata: cameleer-certs: networks: cameleer: driver: bridge cameleer-traefik: name: cameleer-traefik driver: bridge monitoring: name: cameleer-monitoring-noop