services: app: # Lighweight proxy to bridge Traefik to local host (HMR support) image: alpine/socat restart: always command: tcp-listen:3000,fork,reuseaddr tcp:host.docker.internal:3000 extra_hosts: - "host.docker.internal:host-gateway" networks: - default - infra labels: - "traefik.enable=true" - "traefik.http.services.${PROJECT_NAME:-mintel-me}.loadbalancer.server.port=3000" - "traefik.docker.network=infra" - "caddy=http://${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy={{upstreams 3000}}" gatekeeper: profiles: ["gatekeeper"] image: registry.infra.mintel.me/mintel/gatekeeper:v1.7.12 restart: always networks: infra: aliases: - ${PROJECT_NAME:-mintel-me}-gatekeeper env_file: - .env environment: PORT: 3000 labels: - "traefik.http.services.${PROJECT_NAME:-mintel-me}-gatekeeper.loadbalancer.server.port=3000" - "traefik.docker.network=infra" - "caddy=http://gatekeeper.${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy={{upstreams 3000}}" postgres-db: image: postgres:15-alpine restart: always networks: - default env_file: - .env environment: POSTGRES_DB: ${postgres_DB_NAME:-directus} POSTGRES_USER: ${postgres_DB_USER:-directus} POSTGRES_PASSWORD: ${postgres_DB_PASSWORD:-directus} ports: - "5432:5432" volumes: - directus-db-data:/var/lib/postgresql/data imgproxy: image: registry.infra.mintel.me/mintel/image-processor:latest restart: always networks: - default - infra extra_hosts: - "mintel.localhost:host-gateway" - "host.docker.internal:host-gateway" env_file: - .env environment: OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} IMGPROXY_URL_MAPPING: "http://mintel.localhost/:http://app:3000/" IMGPROXY_LOG_LEVEL: debug labels: - "traefik.http.services.${PROJECT_NAME:-mintel-me}-imgproxy.loadbalancer.server.port=8080" - "traefik.docker.network=infra" - "caddy=http://${IMGPROXY_HOST:-img.mintel.localhost}" - "caddy.reverse_proxy={{upstreams 8080}}" networks: default: name: ${PROJECT_NAME:-mintel-me}-internal infra: external: true volumes: directus-db-data: