Skip to content

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:

  1. Download the .cc.json file from https://staging-connect-docs.forma3d.be/codecharta/forma3d.cc.json (or via the "Codebase City Map" link in Settings → Help & Support)
  2. Open the CodeCharta Web Studio
  3. Drag-and-drop the downloaded file into the Web Studio

Note: The shareable ?file=URL approach 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