Operational Tooling¶
Overview of all operator and developer tools deployed alongside the Forma3D.Connect platform.
Runtime Tools (Deployed Containers)¶
These run as Docker containers on the staging/production droplet and are accessible via Traefik.
Uptime Kuma¶
| Purpose | Health endpoint monitoring, status page, downtime notifications |
| Type | Docker container |
| Access | HTTPS via Traefik subdomain |
| Connects to | API Gateway health endpoint, SMTP for alerts |
| C4 diagrams | Container diagram, Deployment diagram |
Uptime Kuma probes the Gateway /health endpoint at regular intervals and provides a public-facing status page. When a service goes down, it sends notifications via SMTP (and optionally Telegram/Slack).
Dozzle¶
| Purpose | Real-time Docker container log viewer and resource monitor |
| Type | Docker container |
| Access | HTTPS via Traefik subdomain |
| Connects to | Docker daemon (read-only socket mount) |
| C4 diagrams | Deployment diagram |
Dozzle provides a lightweight web UI to tail container logs in real time. It reads directly from the Docker daemon via a read-only socket mount — it does not participate in the application's data flow, which is why it appears in the Deployment diagram but not the Container diagram.
pgAdmin¶
| Purpose | Database administration, query execution, schema inspection |
| Type | Docker container |
| Access | HTTPS via Traefik subdomain |
| Connects to | Managed PostgreSQL (TLS) |
| C4 diagrams | Deployment diagram |
pgAdmin provides a web-based UI for direct PostgreSQL access. Used for ad-hoc queries, schema inspection, data corrections, and database maintenance tasks.
Grafana¶
| Purpose | Log dashboards, alerting, and query interface |
| Type | Docker container |
| Access | HTTPS via Traefik subdomain (Port 3100) |
| Connects to | ClickHouse (log storage) |
| C4 diagrams | Container diagram, Deployment diagram |
Grafana queries structured logs from ClickHouse and provides dashboards for log analysis, error rate monitoring, and alerting rules.
Documentation Tools (Static Sites)¶
These are deployed as static sites and do not interact with the running system at runtime. They are not included in C4 architecture diagrams.
Zensical¶
| Purpose | Project documentation hub |
| Type | Static documentation site |
| Content | Architecture docs, ADRs, deployment guides, development guides, strategy |
| Source | docs/ directory in the repository |
Zensical hosts all project documentation from the docs/ folder, providing a searchable and navigable documentation site for the team.
EventCatalog¶
| Purpose | Event-driven architecture documentation |
| Type | Static documentation site |
| Content | Domain events, commands, queries, service boundaries |
| Source | docs/03-architecture/eventcatalog/ in the repository |
EventCatalog documents the event-driven communication between microservices — domains, events, commands, queries, and service ownership. It provides a visual catalog of how services interact through Redis/BullMQ.
CI/Pipeline Tools¶
These tools run during CI/CD pipeline execution only. They are not deployed as containers on the staging/production droplet.
CodeCharta¶
| Purpose | 3D city visualization of codebase metrics (complexity, code smells, coverage, churn) |
| Type | CI-only pipeline job (Docker image: codecharta/codecharta-analysis, ~1.2 GB) |
| Runs on | MS-hosted ubuntu-latest agent, main branch only |
| Data sources | SonarCloud API (metrics) + Git history (authors, commits, coupling) |
| Output | forma3d.cc.json — deployed to staging bind-mount volume at /opt/forma3d/codecharta/, served by docs container at /codecharta/forma3d.cc.json |
| Visualization | CodeCharta Web Studio (publicly hosted) |
| Access | Shareable URL with preconfigured metric views; link in Settings → Help & Support (admin-only) |
| C4 diagrams | Deployment diagram (pipeline → SonarCloud → docs container → Web Studio) |
CodeCharta generates a merged .cc.json from SonarCloud metrics and git history during the GenerateCodeCharta pipeline job. The file is published as a pipeline artifact and then deployed by the DeployCodeCharta job, which SCPs it to the staging server's bind-mount volume (/opt/forma3d/codecharta/). The docs container mounts this directory read-only and serves the file at /codecharta/ with CORS headers and Cache-Control: no-cache, so browsers always revalidate and pick up new versions without a container restart.
Usage:
- Download the
.cc.jsonfile fromhttps://staging-connect-docs.forma3d.be/codecharta/forma3d.cc.json(or via the "Codebase City Map" link in Settings → Help & Support) - Open the CodeCharta Web Studio
- Drag-and-drop the downloaded file into the Web Studio
Note: The shareable
?file=URLapproach does not work because CodeCharta's Content-Security-Policy (default-src 'self') blocks XHR requests to external origins. A future self-hosted visualization (Option D) would restore shareable URLs.
Related: CodeCharta Research | ADR-066 | Pipeline Reference
Tool Classification¶
Why some tools appear in C4 diagrams and others don't:
| Tool | Container Diagram | Deployment Diagram | Reason |
|---|---|---|---|
| Uptime Kuma | Yes | Yes | Operator-facing, probes system health endpoints, sends alerts |
| Grafana | Yes | Yes | Queries ClickHouse (internal data flow), operator-facing dashboards |
| Dozzle | No | Yes | Docker-level infrastructure tooling, no application data flow |
| pgAdmin | No | Yes | Admin client connecting to database, no application data flow |
| Zensical | No | No | Static documentation, not a runtime container |
| EventCatalog | No | No | Static documentation, not a runtime container |
| CodeCharta | No | Yes | CI-only tool; output deployed to bind-mount volume, served by docs container; Web Studio is external SaaS |