Openstatus
www.openstatus.dev
1effective: |
2 ignore:
3 - node_modules
4 - /apps/docs
5 - /apps/screenshot-service
6 - /apps/server
7 - /apps/web
8 - /apps/dashboard
9 - /apps/status-page
10 - /packages/analytics
11 - /packages/api
12 - /packages/error
13 - /packages/tracker
14 builders:
15 build:
16 fromImage:
17 path: oven/bun
18 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
19 label:
20 org.opencontainers.image.stage: build
21 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6
22 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
23 workdir: /app/apps/workflows
24 env:
25 NODE_ENV: production
26 copy:
27 - paths:
28 - .
29 target: /app/
30 - fromBuilder: install
31 paths:
32 - /app/node_modules
33 target: /app/node_modules
34 run:
35 - bun build --compile --target bun --sourcemap src/index.ts --outfile=app
36 install:
37 fromImage:
38 path: oven/bun
39 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
40 label:
41 org.opencontainers.image.stage: install
42 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
43 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6
44 workdir: /app/
45 run:
46 - bun install --production --frozen-lockfile --verbose
47 cache:
48 - target: /root/.bun/install/cache
49 bind:
50 - target: bunfig.toml
51 source: bunfig.toml
52 - target: package.json
53 source: package.json
54 - target: apps/workflows/package.json
55 source: apps/workflows/package.json
56 - target: packages/assertions/package.json
57 source: packages/assertions/package.json
58 - target: packages/db/package.json
59 source: packages/db/package.json
60 - target: packages/emails/package.json
61 source: packages/emails/package.json
62 - target: packages/notifications/base/package.json
63 source: packages/notifications/base/package.json
64 - target: packages/notifications/discord/package.json
65 source: packages/notifications/discord/package.json
66 - target: packages/notifications/email/package.json
67 source: packages/notifications/email/package.json
68 - target: packages/notifications/google-chat/package.json
69 source: packages/notifications/google-chat/package.json
70 - target: packages/notifications/ntfy/package.json
71 source: packages/notifications/ntfy/package.json
72 - target: packages/notifications/opsgenie/package.json
73 source: packages/notifications/opsgenie/package.json
74 - target: packages/notifications/pagerduty/package.json
75 source: packages/notifications/pagerduty/package.json
76 - target: packages/notifications/slack/package.json
77 source: packages/notifications/slack/package.json
78 - target: packages/notifications/telegram/package.json
79 source: packages/notifications/telegram/package.json
80 - target: packages/notifications/twillio-whatsapp/package.json
81 source: packages/notifications/twillio-whatsapp/package.json
82 - target: packages/notifications/twillio-sms/package.json
83 source: packages/notifications/twillio-sms/package.json
84 - target: packages/notifications/webhook/package.json
85 source: packages/notifications/webhook/package.json
86 - target: packages/regions/package.json
87 source: packages/regions/package.json
88 - target: packages/utils/package.json
89 source: packages/utils/package.json
90 - target: packages/tsconfig/package.json
91 source: packages/tsconfig/package.json
92 - target: packages/tinybird/package.json
93 source: packages/tinybird/package.json
94 - target: packages/upstash/package.json
95 source: packages/upstash/package.json
96 - target: packages/theme-store/package.json
97 source: packages/theme-store/package.json
98 libsql:
99 fromImage:
100 path: oven/bun
101 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
102 label:
103 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
104 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6
105 workdir: /app/
106 copy:
107 - fromBuilder: docker
108 paths:
109 - /app/apps/build-docker/package.json
110 target: /app/package.json
111 run:
112 - bun install
113 ca-certs:
114 fromImage:
115 path: debian
116 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734
117 label:
118 org.opencontainers.image.base.name: docker.io/debian:bullseye-slim
119 org.opencontainers.image.base.digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734
120 run:
121 - apt update && apt install -y ca-certificates curl && update-ca-certificates
122 docker:
123 fromImage:
124 path: oven/bun
125 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
126 label:
127 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6
128 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
129 workdir: /app/apps/workflows
130 copy:
131 - paths:
132 - .
133 target: /app/
134 run:
135 - bun run src/build-docker.ts
136 fromImage:
137 path: debian
138 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734
139 label:
140 org.opencontainers.image.authors: OpenStatus Team
141 org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus
142 org.opencontainers.image.title: OpenStatus Workflows
143 io.dofigen.version: 2.5.0
144 org.opencontainers.image.base.digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734
145 org.opencontainers.image.base.name: docker.io/debian:bullseye-slim
146 org.opencontainers.image.vendor: OpenStatus
147 org.opencontainers.image.description: Background job processing and probe scheduling for OpenStatus
148 workdir: /app/
149 copy:
150 - fromBuilder: build
151 paths:
152 - /app/apps/workflows/app
153 target: /app/apps/workflows/
154 chmod: '555'
155 - fromBuilder: libsql
156 paths:
157 - /app/node_modules
158 target: /app/packages/db/node_modules
159 - fromBuilder: libsql
160 paths:
161 - /app/node_modules
162 target: /app/node_modules
163 - fromBuilder: ca-certs
164 paths:
165 - /etc/ssl/certs/ca-certificates.crt
166 target: /etc/ssl/certs/
167 - fromBuilder: ca-certs
168 paths:
169 - /usr/bin/curl
170 target: /usr/bin/curl
171 entrypoint:
172 - /app/apps/workflows/app
173 expose:
174 - port: 3000
175images:
176 docker.io:
177 library:
178 debian:
179 bullseye-slim:
180 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734
181 oven:
182 bun:
183 1.3.6:
184 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a
185resources:
186 dofigen.yml:
187 hash: 6a13d3715d011de108b8e7710153a84e1c2a05a1aaf9f89daf6ae6a7315490f8
188 content: |
189 ignore:
190 - node_modules
191 - /apps/docs
192 - /apps/screenshot-service
193 - /apps/server
194 - /apps/web
195 - /apps/dashboard
196 - /apps/status-page
197 - /packages/analytics
198 - /packages/api
199 - /packages/error
200 - /packages/tracker
201 builders:
202 install:
203 fromImage: oven/bun:1.3.6
204 workdir: /app/
205 labels:
206 org.opencontainers.image.stage: install
207 bind:
208 - bunfig.toml
209 - package.json
210 - apps/workflows/package.json
211 - packages/assertions/package.json
212 - packages/db/package.json
213 - packages/emails/package.json
214 - packages/notifications/base/package.json
215 - packages/notifications/discord/package.json
216 - packages/notifications/email/package.json
217 - packages/notifications/google-chat/package.json
218 - packages/notifications/ntfy/package.json
219 - packages/notifications/opsgenie/package.json
220 - packages/notifications/pagerduty/package.json
221 - packages/notifications/slack/package.json
222 - packages/notifications/telegram/package.json
223 - packages/notifications/twillio-whatsapp/package.json
224 - packages/notifications/twillio-sms/package.json
225 - packages/notifications/webhook/package.json
226 - packages/regions/package.json
227 - packages/utils/package.json
228 - packages/tsconfig/package.json
229 - packages/tinybird/package.json
230 - packages/upstash/package.json
231 - packages/theme-store/package.json
232 # Install dependencies
233 run: bun install --production --frozen-lockfile --verbose
234 cache:
235 - /root/.bun/install/cache
236
237 # Stage 4: Build application (compile to binary)
238 build:
239 fromImage: oven/bun:1.3.6
240 workdir: /app/apps/workflows
241 labels:
242 org.opencontainers.image.stage: build
243 copy:
244 - . /app/
245 - fromBuilder: install
246 source: /app/node_modules
247 target: /app/node_modules
248 # Should set env to production here
249 # Compile the TypeScript application
250 env:
251 NODE_ENV: production
252 run: bun build --compile --target bun --sourcemap src/index.ts --outfile=app
253
254 docker:
255 fromImage: oven/bun:1.3.6
256 workdir: /app/apps/workflows
257 copy:
258 - . /app/
259 run: bun run src/build-docker.ts
260
261 libsql:
262 fromImage: oven/bun:1.3.6
263 workdir: /app/
264 copy:
265 - fromBuilder: docker
266 source: /app/apps/build-docker/package.json
267 target: /app/package.json
268 run: bun install
269
270 ca-certs:
271 fromImage: debian:bullseye-slim
272 run: apt update && apt install -y ca-certificates curl && update-ca-certificates
273
274 fromImage: debian:bullseye-slim
275 workdir: /app/
276
277 # Metadata labels
278 labels:
279 org.opencontainers.image.title: OpenStatus Workflows
280 org.opencontainers.image.description: Background job processing and probe scheduling for OpenStatus
281 org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus
282 org.opencontainers.image.vendor: OpenStatus
283 org.opencontainers.image.authors: OpenStatus Team
284
285 # Copy artifacts from build stages
286 copy:
287 - fromBuilder: build
288 source: /app/apps/workflows/app
289 target: /app/apps/workflows/
290 chmod: "555"
291 - fromBuilder: libsql
292 source: /app/node_modules
293 target: /app/packages/db/node_modules
294 - fromBuilder: libsql
295 source: /app/node_modules
296 target: /app/node_modules
297 - fromBuilder: ca-certs
298 source: /etc/ssl/certs/ca-certificates.crt
299 target: /etc/ssl/certs/
300 - fromBuilder: ca-certs
301 source: /usr/bin/curl
302 target: /usr/bin/curl
303 expose: "3000"
304
305 entrypoint: /app/apps/workflows/app