-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.gateway.yml
More file actions
52 lines (49 loc) · 1.96 KB
/
Copy pathdocker-compose.gateway.yml
File metadata and controls
52 lines (49 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
services:
traefik:
image: traefik:v3.0
security_opt:
- no-new-privileges:true
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
keycloak:
image: quay.io/keycloak/keycloak:24.0.3
environment:
- KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN:?Set KEYCLOAK_ADMIN for gateway}
- KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD:?Set KEYCLOAK_ADMIN_PASSWORD for gateway}
- KC_HOSTNAME=auth.localhost
- KC_HTTP_ENABLED=true
- KC_PROXY_HEADERS=xforwarded
command: start
expose:
- "8080"
labels:
- "traefik.enable=true"
- "traefik.http.routers.keycloak.rule=Host(`auth.localhost`)"
- "traefik.http.services.keycloak.loadbalancer.server.port=8080"
backend:
image: naruon-backend:local
environment:
DATABASE_URL: ${DATABASE_URL:?Set DATABASE_URL for gateway backend}
AUTH_SESSION_HMAC_SECRET: ${AUTH_SESSION_HMAC_SECRET:?Set AUTH_SESSION_HMAC_SECRET for gateway backend}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
OPENAI_EMBEDDING_MODEL: ${OPENAI_EMBEDDING_MODEL:-text-embedding-3-small}
OPENAI_MODEL: ${OPENAI_MODEL:-gpt-4o}
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.rule=Host(`api.localhost`)"
- "traefik.http.routers.backend.middlewares=backend-auth"
- "traefik.http.services.backend.loadbalancer.server.port=8000"
- "traefik.http.middlewares.backend-auth.forwardauth.address=http://keycloak:8080/realms/master/protocol/openid-connect/userinfo"
- "traefik.http.middlewares.backend-auth.forwardauth.authResponseHeaders=Authorization"
frontend:
image: naruon-frontend:local
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend.rule=Host(`localhost`)"
- "traefik.http.services.frontend.loadbalancer.server.port=3000"