-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yaml
126 lines (121 loc) · 4.79 KB
/
docker-compose.yaml
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
services:
languagelab-frontend:
container_name: languagelab-frontend
image: registry.forge.uclouvain.be/sbibauw/languagelab:frontend
environment:
- PUBLIC_API_URL=https://languagelab.be/tmp-api
- PUBLIC_API_PROXY=https://languagelab.be/tmp-api
- PUBLIC_APP_URL=https://languagelab.be
- PUBLIC_WS_URL=wss://languagelab.be/tmp-api/v1/ws
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- languagelab-backend
networks:
- external
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend.rule=Host(`languagelab.be`)"
- "traefik.http.routers.frontend.tls=true"
- "traefik.http.services.frontend.loadbalancer.server.port=8080"
languagelab-backend:
container_name: languagelab-backend
image: registry.forge.uclouvain.be/sbibauw/languagelab:backend
environment:
- DATABASE_URL=sqlite:////data/db.sqlite3
- JWT_SECRET_KEY=${LANGUAGELAB_JWT_SECRET_KEY}
- JWT_REFRESH_SECRET_KEY=${LANGUAGELAB_JWT_REFRESH_SECRET_KEY}
- ADMIN_EMAIL=${LANGUAGELAB_ADMIN_EMAIL_DEV}
- ADMIN_PASSWORD=${LANGUAGELAB_ADMIN_PASSWORD_DEV}
- CALCOM_SECRET=${LANGUAGELAB_CALCOM_SECRET}
- ALLOWED_ORIGINS=https://languagelab.be,https://api.languagelab.be
volumes:
- /mnt/data/languagelab/backend:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- external
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.tls=true"
- "traefik.http.services.backend.loadbalancer.server.port=8000"
- "traefik.http.routers.backend.rule=Host(`languagelab.be`) && (PathPrefix(`/tmp-api`) || PathPrefix(`/docs`) || PathPrefix(`/openapi.json`))"
languagelab-frontend-dev:
container_name: languagelab-frontend-dev
image: registry.forge.uclouvain.be/sbibauw/languagelab:frontend-dev
environment:
- PUBLIC_API_URL=https://dev.languagelab.be/tmp-api
- PUBLIC_API_PROXY=https://dev.languagelab.be/tmp-api
- PUBLIC_APP_URL=https://dev.languagelab.be
- PUBLIC_WS_URL=wss://dev.languagelab.be/tmp-api/v1/ws
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- languagelab-backend-dev
networks:
- external
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend-dev.rule=Host(`dev.languagelab.be`)"
- "traefik.http.routers.frontend-dev.tls=true"
- "traefik.http.services.frontend-dev.loadbalancer.server.port=8080"
languagelab-backend-dev:
container_name: languagelab-backend-dev
image: registry.forge.uclouvain.be/sbibauw/languagelab:backend-dev
environment:
- DATABASE_URL=sqlite:////data/db.dev.sqlite3
- JWT_SECRET_KEY=${LANGUAGELAB_JWT_SECRET_KEY}
- JWT_REFRESH_SECRET_KEY=${LANGUAGELAB_JWT_REFRESH_SECRET_KEY}
- ADMIN_EMAIL=${LANGUAGELAB_ADMIN_EMAIL}
- ADMIN_PASSWORD=${LANGUAGELAB_ADMIN_PASSWORD}
- CALCOM_SECRET=${LANGUAGELAB_CALCOM_SECRET}
- ALLOWED_ORIGINS=*
volumes:
- /mnt/data/languagelab/backend:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- external
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend-dev.tls=true"
- "traefik.http.services.backend-dev.loadbalancer.server.port=8000"
- "traefik.http.routers.backend-dev.rule=Host(`dev.languagelab.be`) && (PathPrefix(`/tmp-api`) || PathPrefix(`/docs`) || PathPrefix(`/openapi.json`))"
traefik:
container_name: traefik
image: traefik:v2.9
command:
- "--api.insecure=true"
- "--log.level=DEBUG"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=external"
- "--entrypoints.external.address=:80"
- "--entrypoints.externalsecure.address=:443"
- "--entrypoints.external.http.redirections.entryPoint.to=externalsecure"
- "--entrypoints.external.http.redirections.entryPoint.scheme=https"
- "--entrypoints.external.http.redirections.entryPoint.permanent=true"
- "--providers.file.filename=/etc/traefik/dynamic-config.yaml"
environment:
- TZ=Europe/Paris
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- type: bind
source: /mnt/data/languagelab/repo/configs/traefik.yaml
target: /etc/traefik/dynamic-config.yaml
- type: bind
source: /mnt/data/languagelab/repo/configs/languagelab_be.key
target: /etc/traefik/languagelab_be.key
- type: bind
source: /mnt/data/languagelab/repo/configs/languagelab_be.pem
target: /etc/traefik/languagelab_be.pem
restart: always
networks:
- external
networks:
external: