@@ -17,156 +17,63 @@ services:
1717 start_period : 5s
1818 retries : 3
1919
20- trogon-source-github :
20+ trogon-gateway :
2121 build :
2222 context : ../../../rsworkspace
23- dockerfile : ../devops/docker/compose/services/trogon-source-github /Dockerfile
23+ dockerfile : ../devops/docker/compose/services/trogon-gateway /Dockerfile
2424 environment :
2525 NATS_URL : " nats:4222"
26- GITHUB_WEBHOOK_SECRET : " ${GITHUB_WEBHOOK_SECRET:-}"
27- GITHUB_WEBHOOK_PORT : " ${GITHUB_WEBHOOK_PORT:-8080}"
28- GITHUB_SUBJECT_PREFIX : " ${GITHUB_SUBJECT_PREFIX:-github}"
29- GITHUB_STREAM_NAME : " ${GITHUB_STREAM_NAME:-GITHUB}"
30- GITHUB_STREAM_MAX_AGE_SECS : " ${GITHUB_STREAM_MAX_AGE_SECS:-604800}"
31- GITHUB_NATS_ACK_TIMEOUT_SECS : " ${GITHUB_NATS_ACK_TIMEOUT_SECS:-10}"
3226 RUST_LOG : " ${RUST_LOG:-info}"
33- depends_on :
34- nats :
35- condition : service_healthy
36- restart : unless-stopped
37- healthcheck :
38- test : ["CMD", "curl", "-sf", "http://localhost:${GITHUB_WEBHOOK_PORT:-8080}/health"]
39- interval : 10s
40- timeout : 3s
41- start_period : 10s
42- retries : 3
27+ TROGON_GATEWAY_PORT : " ${TROGON_GATEWAY_PORT:-8080}"
4328
44- trogon-source-linear :
45- build :
46- context : ../../../rsworkspace
47- dockerfile : ../devops/docker/compose/services/trogon-source-linear/Dockerfile
48- environment :
49- NATS_URL : " nats:4222"
50- LINEAR_WEBHOOK_SECRET : " ${LINEAR_WEBHOOK_SECRET}"
51- LINEAR_WEBHOOK_PORT : " ${LINEAR_WEBHOOK_PORT:-8080}"
52- LINEAR_SUBJECT_PREFIX : " ${LINEAR_SUBJECT_PREFIX:-linear}"
53- LINEAR_STREAM_NAME : " ${LINEAR_STREAM_NAME:-LINEAR}"
54- LINEAR_STREAM_MAX_AGE_SECS : " ${LINEAR_STREAM_MAX_AGE_SECS:-604800}"
55- LINEAR_WEBHOOK_TIMESTAMP_TOLERANCE_SECS : " ${LINEAR_WEBHOOK_TIMESTAMP_TOLERANCE_SECS:-60}"
56- LINEAR_NATS_ACK_TIMEOUT_MS : " ${LINEAR_NATS_ACK_TIMEOUT_MS:-10000}"
57- RUST_LOG : " ${RUST_LOG:-info}"
58- depends_on :
59- nats :
60- condition : service_healthy
61- restart : unless-stopped
62- healthcheck :
63- test : ["CMD", "curl", "-sf", "http://localhost:${LINEAR_WEBHOOK_PORT:-8080}/health"]
64- interval : 10s
65- timeout : 3s
66- start_period : 10s
67- retries : 3
29+ TROGON_SOURCE_GITHUB_WEBHOOK_SECRET : " ${TROGON_SOURCE_GITHUB_WEBHOOK_SECRET:-}"
30+ TROGON_SOURCE_GITHUB_SUBJECT_PREFIX : " ${TROGON_SOURCE_GITHUB_SUBJECT_PREFIX:-github}"
31+ TROGON_SOURCE_GITHUB_STREAM_NAME : " ${TROGON_SOURCE_GITHUB_STREAM_NAME:-GITHUB}"
32+ TROGON_SOURCE_GITHUB_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_GITHUB_STREAM_MAX_AGE_SECS:-604800}"
33+ TROGON_SOURCE_GITHUB_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_GITHUB_NATS_ACK_TIMEOUT_SECS:-10}"
6834
69- trogon-source-discord :
70- build :
71- context : ../../../rsworkspace
72- dockerfile : ../devops/docker/compose/services/trogon-source-discord/Dockerfile
73- environment :
74- NATS_URL : " nats:4222"
75- DISCORD_MODE : " ${DISCORD_MODE:-gateway}"
76- DISCORD_BOT_TOKEN : " ${DISCORD_BOT_TOKEN:-}"
77- DISCORD_GATEWAY_INTENTS : " ${DISCORD_GATEWAY_INTENTS:-}"
78- DISCORD_PUBLIC_KEY : " ${DISCORD_PUBLIC_KEY:-}"
79- DISCORD_WEBHOOK_PORT : " ${DISCORD_WEBHOOK_PORT:-8080}"
80- DISCORD_SUBJECT_PREFIX : " ${DISCORD_SUBJECT_PREFIX:-discord}"
81- DISCORD_STREAM_NAME : " ${DISCORD_STREAM_NAME:-DISCORD}"
82- DISCORD_STREAM_MAX_AGE_SECS : " ${DISCORD_STREAM_MAX_AGE_SECS:-604800}"
83- DISCORD_NATS_ACK_TIMEOUT_SECS : " ${DISCORD_NATS_ACK_TIMEOUT_SECS:-10}"
84- DISCORD_NATS_REQUEST_TIMEOUT_SECS : " ${DISCORD_NATS_REQUEST_TIMEOUT_SECS:-2}"
85- DISCORD_MAX_BODY_SIZE : " ${DISCORD_MAX_BODY_SIZE:-4194304}"
86- RUST_LOG : " ${RUST_LOG:-info}"
87- depends_on :
88- nats :
89- condition : service_healthy
90- restart : unless-stopped
91- healthcheck :
92- test : ["CMD", "curl", "-sf", "http://localhost:${DISCORD_WEBHOOK_PORT:-8080}/health"]
93- interval : 10s
94- timeout : 3s
95- start_period : 10s
96- retries : 3
97- profiles :
98- - discord
35+ TROGON_SOURCE_DISCORD_MODE : " ${TROGON_SOURCE_DISCORD_MODE:-}"
36+ TROGON_SOURCE_DISCORD_BOT_TOKEN : " ${TROGON_SOURCE_DISCORD_BOT_TOKEN:-}"
37+ TROGON_SOURCE_DISCORD_GATEWAY_INTENTS : " ${TROGON_SOURCE_DISCORD_GATEWAY_INTENTS:-}"
38+ TROGON_SOURCE_DISCORD_PUBLIC_KEY : " ${TROGON_SOURCE_DISCORD_PUBLIC_KEY:-}"
39+ TROGON_SOURCE_DISCORD_SUBJECT_PREFIX : " ${TROGON_SOURCE_DISCORD_SUBJECT_PREFIX:-discord}"
40+ TROGON_SOURCE_DISCORD_STREAM_NAME : " ${TROGON_SOURCE_DISCORD_STREAM_NAME:-DISCORD}"
41+ TROGON_SOURCE_DISCORD_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_DISCORD_STREAM_MAX_AGE_SECS:-604800}"
42+ TROGON_SOURCE_DISCORD_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_DISCORD_NATS_ACK_TIMEOUT_SECS:-10}"
43+ TROGON_SOURCE_DISCORD_NATS_REQUEST_TIMEOUT_SECS : " ${TROGON_SOURCE_DISCORD_NATS_REQUEST_TIMEOUT_SECS:-2}"
9944
100- trogon-source-gitlab :
101- build :
102- context : ../../../rsworkspace
103- dockerfile : ../devops/docker/compose/services/trogon-source-gitlab/Dockerfile
104- environment :
105- NATS_URL : " nats:4222"
106- GITLAB_WEBHOOK_SECRET : " ${GITLAB_WEBHOOK_SECRET:-}"
107- GITLAB_WEBHOOK_PORT : " ${GITLAB_WEBHOOK_PORT:-8080}"
108- GITLAB_SUBJECT_PREFIX : " ${GITLAB_SUBJECT_PREFIX:-gitlab}"
109- GITLAB_STREAM_NAME : " ${GITLAB_STREAM_NAME:-GITLAB}"
110- GITLAB_STREAM_MAX_AGE_SECS : " ${GITLAB_STREAM_MAX_AGE_SECS:-604800}"
111- GITLAB_NATS_ACK_TIMEOUT_MS : " ${GITLAB_NATS_ACK_TIMEOUT_MS:-10000}"
112- RUST_LOG : " ${RUST_LOG:-info}"
113- depends_on :
114- nats :
115- condition : service_healthy
116- restart : unless-stopped
117- healthcheck :
118- test : ["CMD", "curl", "-sf", "http://localhost:${GITLAB_WEBHOOK_PORT:-8080}/health"]
119- interval : 10s
120- timeout : 3s
121- start_period : 10s
122- retries : 3
45+ TROGON_SOURCE_SLACK_SIGNING_SECRET : " ${TROGON_SOURCE_SLACK_SIGNING_SECRET:-}"
46+ TROGON_SOURCE_SLACK_SUBJECT_PREFIX : " ${TROGON_SOURCE_SLACK_SUBJECT_PREFIX:-slack}"
47+ TROGON_SOURCE_SLACK_STREAM_NAME : " ${TROGON_SOURCE_SLACK_STREAM_NAME:-SLACK}"
48+ TROGON_SOURCE_SLACK_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_SLACK_STREAM_MAX_AGE_SECS:-604800}"
49+ TROGON_SOURCE_SLACK_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_SLACK_NATS_ACK_TIMEOUT_SECS:-10}"
50+ TROGON_SOURCE_SLACK_TIMESTAMP_MAX_DRIFT_SECS : " ${TROGON_SOURCE_SLACK_TIMESTAMP_MAX_DRIFT_SECS:-300}"
12351
124- trogon-source-telegram :
125- build :
126- context : ../../../rsworkspace
127- dockerfile : ../devops/docker/compose/services/trogon-source-telegram/Dockerfile
128- environment :
129- NATS_URL : " nats:4222"
130- TELEGRAM_WEBHOOK_SECRET : " ${TELEGRAM_WEBHOOK_SECRET}"
131- TELEGRAM_SOURCE_PORT : " ${TELEGRAM_SOURCE_PORT:-8080}"
132- TELEGRAM_SUBJECT_PREFIX : " ${TELEGRAM_SUBJECT_PREFIX:-telegram}"
133- TELEGRAM_STREAM_NAME : " ${TELEGRAM_STREAM_NAME:-TELEGRAM}"
134- TELEGRAM_STREAM_MAX_AGE_SECS : " ${TELEGRAM_STREAM_MAX_AGE_SECS:-604800}"
135- TELEGRAM_NATS_ACK_TIMEOUT_SECS : " ${TELEGRAM_NATS_ACK_TIMEOUT_SECS:-10}"
136- TELEGRAM_MAX_BODY_SIZE : " ${TELEGRAM_MAX_BODY_SIZE:-10485760}"
137- RUST_LOG : " ${RUST_LOG:-info}"
138- depends_on :
139- nats :
140- condition : service_healthy
141- restart : unless-stopped
142- healthcheck :
143- test : ["CMD", "curl", "-sf", "http://localhost:${TELEGRAM_SOURCE_PORT:-8080}/health"]
144- interval : 10s
145- timeout : 3s
146- start_period : 10s
147- retries : 3
52+ TROGON_SOURCE_TELEGRAM_WEBHOOK_SECRET : " ${TROGON_SOURCE_TELEGRAM_WEBHOOK_SECRET:-}"
53+ TROGON_SOURCE_TELEGRAM_SUBJECT_PREFIX : " ${TROGON_SOURCE_TELEGRAM_SUBJECT_PREFIX:-telegram}"
54+ TROGON_SOURCE_TELEGRAM_STREAM_NAME : " ${TROGON_SOURCE_TELEGRAM_STREAM_NAME:-TELEGRAM}"
55+ TROGON_SOURCE_TELEGRAM_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_TELEGRAM_STREAM_MAX_AGE_SECS:-604800}"
56+ TROGON_SOURCE_TELEGRAM_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_TELEGRAM_NATS_ACK_TIMEOUT_SECS:-10}"
14857
149- trogon-source-slack :
150- build :
151- context : ../../../rsworkspace
152- dockerfile : ../devops/docker/compose/services/trogon-source-slack/Dockerfile
153- environment :
154- NATS_URL : " nats:4222"
155- SLACK_SIGNING_SECRET : " ${SLACK_SIGNING_SECRET:-}"
156- SLACK_WEBHOOK_PORT : " ${SLACK_WEBHOOK_PORT:-3000}"
157- SLACK_SUBJECT_PREFIX : " ${SLACK_SUBJECT_PREFIX:-slack}"
158- SLACK_STREAM_NAME : " ${SLACK_STREAM_NAME:-SLACK}"
159- SLACK_STREAM_MAX_AGE_SECS : " ${SLACK_STREAM_MAX_AGE_SECS:-604800}"
160- SLACK_NATS_ACK_TIMEOUT_SECS : " ${SLACK_NATS_ACK_TIMEOUT_SECS:-10}"
161- SLACK_TIMESTAMP_MAX_DRIFT_SECS : " ${SLACK_TIMESTAMP_MAX_DRIFT_SECS:-300}"
162- RUST_LOG : " ${RUST_LOG:-info}"
58+ TROGON_SOURCE_GITLAB_WEBHOOK_SECRET : " ${TROGON_SOURCE_GITLAB_WEBHOOK_SECRET:-}"
59+ TROGON_SOURCE_GITLAB_SUBJECT_PREFIX : " ${TROGON_SOURCE_GITLAB_SUBJECT_PREFIX:-gitlab}"
60+ TROGON_SOURCE_GITLAB_STREAM_NAME : " ${TROGON_SOURCE_GITLAB_STREAM_NAME:-GITLAB}"
61+ TROGON_SOURCE_GITLAB_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_GITLAB_STREAM_MAX_AGE_SECS:-604800}"
62+ TROGON_SOURCE_GITLAB_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_GITLAB_NATS_ACK_TIMEOUT_SECS:-10}"
63+
64+ TROGON_SOURCE_LINEAR_WEBHOOK_SECRET : " ${TROGON_SOURCE_LINEAR_WEBHOOK_SECRET:-}"
65+ TROGON_SOURCE_LINEAR_SUBJECT_PREFIX : " ${TROGON_SOURCE_LINEAR_SUBJECT_PREFIX:-linear}"
66+ TROGON_SOURCE_LINEAR_STREAM_NAME : " ${TROGON_SOURCE_LINEAR_STREAM_NAME:-LINEAR}"
67+ TROGON_SOURCE_LINEAR_STREAM_MAX_AGE_SECS : " ${TROGON_SOURCE_LINEAR_STREAM_MAX_AGE_SECS:-604800}"
68+ TROGON_SOURCE_LINEAR_NATS_ACK_TIMEOUT_SECS : " ${TROGON_SOURCE_LINEAR_NATS_ACK_TIMEOUT_SECS:-10}"
69+ TROGON_SOURCE_LINEAR_TIMESTAMP_TOLERANCE_SECS : " ${TROGON_SOURCE_LINEAR_TIMESTAMP_TOLERANCE_SECS:-60}"
16370 depends_on :
16471 nats :
16572 condition : service_healthy
16673 restart : unless-stopped
16774 healthcheck :
168- test : ["CMD", "curl", "-sf", "http://localhost:${SLACK_WEBHOOK_PORT:-3000}/health "]
169- interval : 10s
75+ test : ["CMD", "curl", "-sf", "http://localhost:${TROGON_GATEWAY_PORT:-8080}/-/liveness "]
76+ interval : 5s
17077 timeout : 3s
17178 start_period : 10s
17279 retries : 3
@@ -175,52 +82,21 @@ services:
17582 image : ngrok/ngrok:alpine
17683 environment :
17784 NGROK_AUTHTOKEN : " ${NGROK_AUTHTOKEN:-}"
178- DISCORD_ADDR : " trogon-source-discord:${DISCORD_WEBHOOK_PORT:-8080}"
179- GITHUB_ADDR : " trogon-source-github:${GITHUB_WEBHOOK_PORT:-8080}"
180- GITLAB_ADDR : " trogon-source-gitlab:${GITLAB_WEBHOOK_PORT:-8080}"
181- LINEAR_ADDR : " trogon-source-linear:${LINEAR_WEBHOOK_PORT:-8080}"
182- SLACK_ADDR : " trogon-source-slack:${SLACK_WEBHOOK_PORT:-3000}"
183- TELEGRAM_ADDR : " trogon-source-telegram:${TELEGRAM_SOURCE_PORT:-8080}"
85+ GATEWAY_ADDR : " trogon-gateway:${TROGON_GATEWAY_PORT:-8080}"
18486 entrypoint :
18587 - /bin/sh
18688 - -c
18789 - |
18890 cat > /tmp/ngrok.yml <<EOF
18991 version: 3
19092 tunnels:
191- discord:
192- addr: $${DISCORD_ADDR}
193- proto: http
194- github:
195- addr: $${GITHUB_ADDR}
196- proto: http
197- gitlab:
198- addr: $${GITLAB_ADDR}
199- proto: http
200- linear:
201- addr: $${LINEAR_ADDR}
202- proto: http
203- slack:
204- addr: $${SLACK_ADDR}
205- proto: http
206- telegram:
207- addr: $${TELEGRAM_ADDR}
93+ gateway:
94+ addr: $${GATEWAY_ADDR}
20895 proto: http
20996 EOF
21097 exec ngrok start --all --config /tmp/ngrok.yml
21198 depends_on :
212- trogon-source-discord :
213- condition : service_healthy
214- required : false
215- trogon-source-github :
216- condition : service_healthy
217- trogon-source-gitlab :
218- condition : service_healthy
219- trogon-source-linear :
220- condition : service_healthy
221- trogon-source-slack :
222- condition : service_healthy
223- trogon-source-telegram :
99+ trogon-gateway :
224100 condition : service_healthy
225101 restart : unless-stopped
226102 profiles :
0 commit comments