You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docker compose -f docker-compose.yml -f dashboard/deploy/docker/compose.yml up -d dashboard
219
+
220
+
## Deployment Details
221
+
222
+
### Docker Compose Integration Notes
223
+
224
+
- The Dashboard service is integrated as a **default service** in `deploy/docker-compose/docker-compose.yml`.
225
+
- No additional overlay files are needed; `make docker-compose-up` will automatically start all services.
226
+
- The Dashboard depends on the `semantic-router` (for health checks), `grafana`, and `prometheus` services.
227
+
228
+
### Dockerfile Build
229
+
230
+
- A multi-stage build (Go builder → distroless) is defined in `dashboard/backend/Dockerfile`.
231
+
- An independent Go module `dashboard/backend/go.mod` isolates dependencies.
232
+
- Frontend static assets are packaged into the image at `/app/frontend`.
233
+
234
+
### Grafana Embedding Support
235
+
236
+
Grafana is already configured for embedding in `deploy/docker-compose/docker-compose.yml`:
237
+
238
+
```yaml
239
+
- GF_SECURITY_ALLOW_EMBEDDING=true
240
+
- GF_SECURITY_COOKIE_SAMESITE=lax
184
241
```
185
242
186
-
### Notes on Dockerfile
243
+
The Dashboard reverse proxy will automatically clean up `X-Frame-Options` and adjust CSP headers to ensure the iframe loads correctly.
187
244
188
-
- Multi-stage build (Go → distroless) defined in `dashboard/backend/Dockerfile`.
189
-
- Standalone Go module in `dashboard/backend/go.mod` isolates dependencies.
190
-
- Frontend static assets baked into the image under `/app/frontend`.
245
+
### Health Check
191
246
192
-
### Grafana embedding
247
+
The Dashboard provides a `/healthz` endpoint for container health checks:
193
248
194
-
- Root `docker-compose.yml` now sets `GF_SECURITY_ALLOW_EMBEDDING=true` for iframe usage.
195
-
- If you need stricter policies, remove the flag and authenticate Grafana separately; the dashboard proxy will still sanitize frame headers but Grafana may block unauthenticated panels.
0 commit comments