-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
108 lines (102 loc) · 2.59 KB
/
Copy pathdocker-compose.yml
File metadata and controls
108 lines (102 loc) · 2.59 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
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
services:
api:
build:
context: .
dockerfile: Dockerfile
target: api
environment:
PORT: 3001
DATABASE_PROVIDER: ${DATABASE_PROVIDER}
DATABASE_URL: ${DATABASE_URL}
BOT_TOKEN: ${BOT_TOKEN}
JWT_SECRET: ${JWT_SECRET}
ADMIN_TG_USER_ID: ${ADMIN_TG_USER_ID}
WEBAPP_URL: ${WEBAPP_URL}
N8N_HOST: ${N8N_HOST}
DEV_LOGIN_TOKEN: ${DEV_LOGIN_TOKEN}
STATUS_CHANGED_WEBHOOK_URL: ${STATUS_CHANGED_WEBHOOK_URL}
TICKET_CREATED_WEBHOOK_URL: ${TICKET_CREATED_WEBHOOK_URL}
TICKET_REMINDER_WEBHOOK_URL: ${TICKET_REMINDER_WEBHOOK_URL}
ports:
- "3001:3001"
volumes:
- api_data:/app/apps/api/prisma
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3001/api/health >/dev/null || exit 1"]
interval: 15s
timeout: 4s
retries: 5
start_period: 15s
bot:
build:
context: .
dockerfile: Dockerfile
target: bot
environment:
BOT_TOKEN: ${BOT_TOKEN}
API_URL: http://api:3001
WEBAPP_URL: ${WEBAPP_URL}
NGROK_API_URL: http://ngrok-web:4040/api/tunnels
depends_on:
api:
condition: service_healthy
web:
build:
context: .
dockerfile: Dockerfile
target: web
args:
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL}
NEXT_PUBLIC_WS_URL: ${NEXT_PUBLIC_WS_URL}
NEXT_PUBLIC_DEV_LOGIN_TOKEN: ${NEXT_PUBLIC_DEV_LOGIN_TOKEN}
environment:
NEXT_PUBLIC_API_URL: ""
NEXT_PUBLIC_WS_URL: ""
NEXT_PUBLIC_DEV_LOGIN_TOKEN: ${DEV_LOGIN_TOKEN}
HOSTNAME: 0.0.0.0
depends_on:
api:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3000 >/dev/null || exit 1"]
interval: 15s
timeout: 4s
retries: 5
start_period: 15s
n8n:
image: n8nio/n8n:latest
environment:
- GENERIC_TIMEZONE=Europe/Kyiv
- N8N_EDITOR_BASE_URL=${N8N_PUBLIC_URL}
- WEBHOOK_URL=${N8N_PUBLIC_URL}
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
gateway:
image: caddy:2.7-alpine
depends_on:
api:
condition: service_healthy
web:
condition: service_healthy
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
ports:
- "8080:8080"
ngrok-web:
image: ngrok/ngrok:latest
depends_on:
- gateway
command:
- "http"
- "--authtoken=${NGROK_AUTHTOKEN}"
- "--region=${NGROK_REGION}"
- "--log=stdout"
- "--log-format=logfmt"
- "gateway:8080"
ports:
- "4040:4040"
volumes:
api_data:
n8n_data: