Openstatus
www.openstatus.dev
1networks:
2 openstatus:
3 driver: bridge
4 name: openstatus
5
6volumes:
7 libsql-data:
8 name: openstatus-libsql-data
9
10services:
11 # External services
12 libsql:
13 container_name: openstatus-libsql
14 image: ghcr.io/tursodatabase/libsql-server:latest
15 networks:
16 - openstatus
17 ports:
18 - "8080:8080"
19 - "5001:5001"
20 volumes:
21 - libsql-data:/var/lib/sqld
22 environment:
23 - SQLD_NODE=primary
24 healthcheck:
25 test:
26 [
27 "CMD-SHELL",
28 'perl -e ''use IO::Socket::INET; exit(IO::Socket::INET->new(PeerAddr=>"127.0.0.1:8080",Timeout=>1) ? 0 : 1);''',
29 ]
30 interval: 10s
31 timeout: 5s
32 retries: 5
33 start_period: 10s
34 restart: unless-stopped
35
36 tinybird-local:
37 container_name: openstatus-tinybird
38 image: tinybirdco/tinybird-local:latest
39 platform: linux/amd64
40 networks:
41 - openstatus
42 ports:
43 - "7181:7181"
44 environment:
45 - COMPATIBILITY_MODE=1
46 healthcheck:
47 test: ["CMD", "curl", "-f", "http://localhost:7181/"]
48 interval: 15s
49 timeout: 5s
50 retries: 5
51 start_period: 20s
52 restart: unless-stopped
53
54 # Internal Services
55 workflows:
56 container_name: openstatus-workflows
57 build:
58 context: .
59 dockerfile: apps/workflows/Dockerfile
60 image: openstatus/workflows:latest
61 networks:
62 - openstatus
63 ports:
64 - "3000:3000"
65 env_file:
66 - .env.docker
67 environment:
68 - DATABASE_URL=http://libsql:8080
69 - PORT=3000
70 depends_on:
71 libsql:
72 condition: service_healthy
73 healthcheck:
74 test: ["CMD-SHELL", "curl -f http://localhost:3000/ping || exit 1"]
75 interval: 15s
76 timeout: 10s
77 retries: 3
78 start_period: 30s
79 restart: unless-stopped
80
81 server:
82 container_name: openstatus-server
83 build:
84 context: .
85 dockerfile: apps/server/Dockerfile
86 image: openstatus/server:latest
87 networks:
88 - openstatus
89 ports:
90 - "3001:3000"
91 env_file:
92 - .env.docker
93 environment:
94 - DATABASE_URL=http://libsql:8080
95 - PORT=3000
96 depends_on:
97 workflows:
98 condition: service_healthy
99 libsql:
100 condition: service_healthy
101 healthcheck:
102 test: ["CMD-SHELL", "curl -f http://localhost:3000/ping || exit 1"]
103 interval: 15s
104 timeout: 10s
105 retries: 3
106 start_period: 30s
107 restart: unless-stopped
108
109 private-location:
110 container_name: openstatus-private-location
111 build:
112 context: apps/private-location
113 dockerfile: Dockerfile
114 image: openstatus/private-location:latest
115 networks:
116 - openstatus
117 ports:
118 - "8081:8080"
119 env_file:
120 - .env.docker
121 environment:
122 - DB_URL=http://libsql:8080
123 - TINYBIRD_URL=http://tinybird-local:7181
124 - GIN_MODE=release
125 - PORT=8080
126 depends_on:
127 server:
128 condition: service_healthy
129 healthcheck:
130 test:
131 [
132 "CMD",
133 "wget",
134 "--spider",
135 "-q",
136 "http://localhost:8080/health",
137 ]
138 interval: 15s
139 timeout: 10s
140 retries: 3
141 start_period: 30s
142 restart: unless-stopped
143
144 dashboard:
145 container_name: openstatus-dashboard
146 build:
147 context: .
148 dockerfile: apps/dashboard/Dockerfile
149 image: openstatus/dashboard:latest
150 networks:
151 - openstatus
152 ports:
153 - "3002:3000"
154 env_file:
155 - .env.docker
156 environment:
157 - DATABASE_URL=http://libsql:8080
158 - PORT=3000
159 - HOSTNAME=0.0.0.0
160 - AUTH_TRUST_HOST=true
161 depends_on:
162 workflows:
163 condition: service_healthy
164 libsql:
165 condition: service_healthy
166 server:
167 condition: service_healthy
168 healthcheck:
169 test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
170 interval: 15s
171 timeout: 10s
172 retries: 3
173 start_period: 45s
174 restart: unless-stopped
175
176 status-page:
177 container_name: openstatus-status-page
178 build:
179 context: .
180 dockerfile: apps/status-page/Dockerfile
181 image: openstatus/status-page:latest
182 networks:
183 - openstatus
184 ports:
185 - "3003:3000"
186 env_file:
187 - .env.docker
188 environment:
189 - DATABASE_URL=http://libsql:8080
190 - PORT=3000
191 - HOSTNAME=0.0.0.0
192 - AUTH_TRUST_HOST=true
193 depends_on:
194 workflows:
195 condition: service_healthy
196 libsql:
197 condition: service_healthy
198 server:
199 condition: service_healthy
200 healthcheck:
201 test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
202 interval: 15s
203 timeout: 10s
204 retries: 3
205 start_period: 45s
206 restart: unless-stopped