Control Plane (Dashboard + Orchestrator)

This repository includes a “control plane” layer to make local benchmarking workflows fast, repeatable, and observable.

It consists of:

Last updated: 2026-01-19

Why a control plane exists

Benchmarking isn’t just “start service → run wrk2”. In practice you iterate repeatedly:

The control plane exists to make that loop:

Architecture

High-level flow:

Browser
  → nextjs-dash (Next.js)
    → /api/* proxy routes
      → orchestrator (Quarkus)
        → docker compose ... (host engine via docker socket)

Key principle: keep Next.js “thin”

The Next.js dashboard should remain a presentation layer.

The orchestrator owns:

What you can do with it

1) Edit environment configuration

The dashboard exposes a UI to view/edit the environment file used by Compose (compose/.env).

2) Run curated command presets

The orchestrator exposes an allowlisted “run” API.

The dashboard can submit:

Depending on repo configuration, it may also expose IntelliJ .run presets.

3) Stream progress (SSE)

Long-running tasks (builds, start/stop, reruns) report progress via Server-Sent Events.

This gives a low-friction, browser-native “tail -f” experience.

4) Health aggregation

The orchestrator can aggregate health/readiness across the stack so you can quickly verify:

How to use it

  1. Start the stack (at least the control plane services) using the repository’s compose workflow.
  2. Open the dashboard:

From there:

Option B: Call orchestrator directly

Orchestrator API base:

Useful endpoints:

See also:

“Gotchas” (especially on Windows + WSL2)

Security note

The orchestrator commonly mounts the Docker socket and can control the host Docker engine.

Treat it as privileged and do not expose it publicly.


Screenshots (control plane UI)

Dashboard hub

Next.js dashboard: hub

Environment configuration editor

Next.js dashboard: environment configuration

Running scripts and following output

Next.js dashboard: script runner (1)

Next.js dashboard: script runner (2)

Service health overview

Next.js dashboard: service health (1)

Next.js dashboard: service health (2)