Skip to content

Commit 67405d9

Browse files
authored
feat(trogon-gateway): consolidate sources into unified binary (#104)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
1 parent 8bd6020 commit 67405d9

File tree

70 files changed

+3213
-3378
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+3213
-3378
lines changed

devops/docker/compose/.env.example

Lines changed: 39 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,56 @@
1+
# --- Gateway ---
2+
# TROGON_GATEWAY_PORT=8080
3+
14
# --- NATS ---
25
# NATS_URL=nats://localhost:4222
36

47
# --- GitHub Source ---
5-
# GITHUB_WEBHOOK_SECRET=
6-
# GITHUB_WEBHOOK_PORT=8080
7-
# GITHUB_SUBJECT_PREFIX=github
8-
# GITHUB_STREAM_NAME=GITHUB
9-
# GITHUB_STREAM_MAX_AGE_SECS=604800
10-
# GITHUB_NATS_ACK_TIMEOUT_SECS=10
8+
# TROGON_SOURCE_GITHUB_WEBHOOK_SECRET=
9+
# TROGON_SOURCE_GITHUB_SUBJECT_PREFIX=github
10+
# TROGON_SOURCE_GITHUB_STREAM_NAME=GITHUB
11+
# TROGON_SOURCE_GITHUB_STREAM_MAX_AGE_SECS=604800
12+
# TROGON_SOURCE_GITHUB_NATS_ACK_TIMEOUT_SECS=10
1113

1214
# --- GitLab Source ---
13-
# GITLAB_WEBHOOK_SECRET=
14-
# GITLAB_WEBHOOK_PORT=8080
15-
# GITLAB_SUBJECT_PREFIX=gitlab
16-
# GITLAB_STREAM_NAME=GITLAB
17-
# GITLAB_STREAM_MAX_AGE_SECS=604800
18-
# GITLAB_NATS_ACK_TIMEOUT_MS=10000
15+
# TROGON_SOURCE_GITLAB_WEBHOOK_SECRET=
16+
# TROGON_SOURCE_GITLAB_SUBJECT_PREFIX=gitlab
17+
# TROGON_SOURCE_GITLAB_STREAM_NAME=GITLAB
18+
# TROGON_SOURCE_GITLAB_STREAM_MAX_AGE_SECS=604800
19+
# TROGON_SOURCE_GITLAB_NATS_ACK_TIMEOUT_SECS=10
1920

2021
# --- Linear Source ---
21-
# LINEAR_WEBHOOK_SECRET=
22-
# LINEAR_WEBHOOK_PORT=8080
23-
# LINEAR_SUBJECT_PREFIX=linear
24-
# LINEAR_STREAM_NAME=LINEAR
25-
# LINEAR_STREAM_MAX_AGE_SECS=604800
26-
# LINEAR_WEBHOOK_TIMESTAMP_TOLERANCE_SECS=60
27-
# LINEAR_NATS_ACK_TIMEOUT_MS=10000
22+
# TROGON_SOURCE_LINEAR_WEBHOOK_SECRET=
23+
# TROGON_SOURCE_LINEAR_SUBJECT_PREFIX=linear
24+
# TROGON_SOURCE_LINEAR_STREAM_NAME=LINEAR
25+
# TROGON_SOURCE_LINEAR_STREAM_MAX_AGE_SECS=604800
26+
# TROGON_SOURCE_LINEAR_NATS_ACK_TIMEOUT_SECS=10
27+
# TROGON_SOURCE_LINEAR_TIMESTAMP_TOLERANCE_SECS=60
2828

2929
# --- Discord Source ---
30-
# DISCORD_MODE=gateway # "gateway" (WebSocket, all events) or "webhook" (HTTP, interactions only)
31-
# DISCORD_BOT_TOKEN= # required when DISCORD_MODE=gateway
32-
# DISCORD_GATEWAY_INTENTS=guilds,guild_members,guild_messages,guild_message_reactions,direct_messages,message_content,guild_voice_states
33-
# DISCORD_PUBLIC_KEY= # required when DISCORD_MODE=webhook
34-
# DISCORD_WEBHOOK_PORT=8080
35-
# DISCORD_SUBJECT_PREFIX=discord
36-
# DISCORD_STREAM_NAME=DISCORD
37-
# DISCORD_STREAM_MAX_AGE_SECS=604800
38-
# DISCORD_NATS_ACK_TIMEOUT_SECS=10
39-
# DISCORD_NATS_REQUEST_TIMEOUT_SECS=2
40-
# DISCORD_MAX_BODY_SIZE=4194304
30+
# TROGON_SOURCE_DISCORD_MODE=gateway # "gateway" (WebSocket, all events) or "webhook" (HTTP, interactions only)
31+
# TROGON_SOURCE_DISCORD_BOT_TOKEN= # required when mode=gateway
32+
# TROGON_SOURCE_DISCORD_GATEWAY_INTENTS=guilds,guild_members,guild_messages,guild_message_reactions,direct_messages,message_content,guild_voice_states
33+
# TROGON_SOURCE_DISCORD_PUBLIC_KEY= # required when mode=webhook
34+
# TROGON_SOURCE_DISCORD_SUBJECT_PREFIX=discord
35+
# TROGON_SOURCE_DISCORD_STREAM_NAME=DISCORD
36+
# TROGON_SOURCE_DISCORD_STREAM_MAX_AGE_SECS=604800
37+
# TROGON_SOURCE_DISCORD_NATS_ACK_TIMEOUT_SECS=10
38+
# TROGON_SOURCE_DISCORD_NATS_REQUEST_TIMEOUT_SECS=2
4139

4240
# --- Telegram Source ---
43-
# TELEGRAM_WEBHOOK_SECRET=
44-
# TELEGRAM_SOURCE_PORT=8080
45-
# TELEGRAM_SUBJECT_PREFIX=telegram
46-
# TELEGRAM_STREAM_NAME=TELEGRAM
47-
# TELEGRAM_STREAM_MAX_AGE_SECS=604800
48-
# TELEGRAM_NATS_ACK_TIMEOUT_SECS=10
49-
# TELEGRAM_MAX_BODY_SIZE=10485760
41+
# TROGON_SOURCE_TELEGRAM_WEBHOOK_SECRET=
42+
# TROGON_SOURCE_TELEGRAM_SUBJECT_PREFIX=telegram
43+
# TROGON_SOURCE_TELEGRAM_STREAM_NAME=TELEGRAM
44+
# TROGON_SOURCE_TELEGRAM_STREAM_MAX_AGE_SECS=604800
45+
# TROGON_SOURCE_TELEGRAM_NATS_ACK_TIMEOUT_SECS=10
5046

5147
# --- Slack Source ---
52-
# SLACK_SIGNING_SECRET=
53-
# SLACK_WEBHOOK_PORT=3000
54-
# SLACK_SUBJECT_PREFIX=slack
55-
# SLACK_STREAM_NAME=SLACK
56-
# SLACK_STREAM_MAX_AGE_SECS=604800
57-
# SLACK_NATS_ACK_TIMEOUT_SECS=10
58-
# SLACK_TIMESTAMP_MAX_DRIFT_SECS=300
48+
# TROGON_SOURCE_SLACK_SIGNING_SECRET=
49+
# TROGON_SOURCE_SLACK_SUBJECT_PREFIX=slack
50+
# TROGON_SOURCE_SLACK_STREAM_NAME=SLACK
51+
# TROGON_SOURCE_SLACK_STREAM_MAX_AGE_SECS=604800
52+
# TROGON_SOURCE_SLACK_NATS_ACK_TIMEOUT_SECS=10
53+
# TROGON_SOURCE_SLACK_TIMESTAMP_MAX_DRIFT_SECS=300
5954

6055
# --- Logging ---
6156
# RUST_LOG=info

devops/docker/compose/compose.yml

Lines changed: 46 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -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:

devops/docker/compose/services/trogon-source-github/Dockerfile renamed to devops/docker/compose/services/trogon-gateway/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ RUN cargo chef prepare --recipe-path recipe.json
1717
FROM chef AS builder
1818

1919
COPY --from=planner /build/recipe.json recipe.json
20-
RUN cargo chef cook --release --recipe-path recipe.json -p trogon-source-github
20+
RUN cargo chef cook --release --recipe-path recipe.json -p trogon-gateway
2121

2222
COPY Cargo.toml Cargo.lock ./
2323
COPY crates/ crates/
2424

25-
RUN cargo build --release -p trogon-source-github && \
26-
strip target/release/trogon-source-github
25+
RUN cargo build --release -p trogon-gateway && \
26+
strip target/release/trogon-gateway
2727

2828
# ── Stage 4: runtime ────────────────────────────────────────────────────────
2929
FROM debian:bookworm-20250317-slim AS runtime
@@ -34,12 +34,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
3434

3535
RUN useradd --no-create-home --shell /usr/sbin/nologin trogon
3636

37-
COPY --from=builder /build/target/release/trogon-source-github /usr/local/bin/trogon-source-github
37+
COPY --from=builder /build/target/release/trogon-gateway /usr/local/bin/trogon-gateway
3838

3939
USER trogon
4040

4141
EXPOSE 8080
4242

4343
STOPSIGNAL SIGTERM
4444

45-
ENTRYPOINT ["/usr/local/bin/trogon-source-github"]
45+
ENTRYPOINT ["/usr/local/bin/trogon-gateway", "serve"]

0 commit comments

Comments
 (0)