Skip to main content

Server Overview

The Dokimos server stores your eval run results and gives you a web UI to view, compare, and track quality over time. Run it when you want a shared place for results instead of files on one laptop.

It also closes the eval loop: hold datasets centrally and pin tests to a version, fail a build when a run regresses, score runs and production traces with an LLM judge, and turn evaluator misses back into new dataset versions.

The loop, end to end: pin a test to a server dataset version, report the run, gate it against its baseline in CI, score runs and production traces with a judge, get alerted on a regression, then review and curate the misses into the next dataset version.

The Dokimos server dashboard: every project that has reported a run, with its experiment count and latest activity

Start the server

Two commands get you running:

curl -O https://raw.githubusercontent.com/dokimos-dev/dokimos/master/docker-compose.yml
docker compose up -d

Open http://localhost:8080. That is the web UI.

A few things to know:

  • Your infrastructure. The server runs entirely on your machines.
  • Just Docker. The pre-built image from GitHub Container Registry includes everything. You do not build anything locally and you install no extra dependencies.
  • Persistent storage. Results live in PostgreSQL.

For a full walkthrough that runs an experiment against the server, see Getting Started.

Why use the server?

  • Centralized results. All experiment data lives in one database and can be shared across your team.
  • Web UI. Browse experiments, view individual runs, and drill into specific test cases.
  • Trend tracking. See how your pass rates change over time and catch regressions before they reach production.
  • Team collaboration. Teammates see the same data without passing files around.
  • CI/CD integration. Run evaluations in your pipeline and report results to the server.

Architecture

┌─────────────────────────────────────────────────────────────────┐
│ Your Infrastructure │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Local Dev │ │ CI/CD │ │ Production │ │
│ │ Experiments │ │ Pipeline │ │ Tests │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └────────────────────┼────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ DokimosServer │ │
│ │ Reporter │ │
│ └────────┬─────────┘ │
│ │ HTTP/JSON │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Dokimos Server │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │
│ │ │ REST API │ │ Web UI │ │ Background │ │ │
│ │ │ /api/v1/* │ │ React │ │ Processing │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ └────────┬────────┘ │ │
│ │ │ │ │ │ │
│ │ └────────────────┼──────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌───────────────────────┐ │ │
│ │ │ PostgreSQL │ │ │
│ │ │ Projects, Runs, │ │ │
│ │ │ Items, Eval Results │ │ │
│ │ └───────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Browser │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ Dashboard │ Experiments │ Runs │ Items │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Your code sends results to the server through the DokimosServerReporter. The server stores them in PostgreSQL and serves the web UI.

Data model

The server nests data four levels deep:

  • Project: Top-level container (for example, "my-llm-app")
    • Experiment: A named evaluation scenario (for example, "customer-support-qa")
      • Run: A single execution of an experiment, with timestamp and metadata
        • Item: A single test case, with input, output, and eval results

Key features

Dashboard

See all your projects in one place with their latest runs.

Experiment view

View all runs for an experiment with pass rate trends over time.

An experiment view: latest and best pass rate, a pass-rate trend chart, and every run with its score and duration

Run details

Drill into a run to see individual test cases, scores, and evaluation reasons. Token, cost, and latency roll up into cards when your task reports them.

A run detail: total items, pass rate, and token, cost, and latency cards above a per-item table of evaluator scores

Expandable items

Click any item to see full input/output text and detailed evaluation results.

Server datasets

Hold your datasets on the server, versioned and shared, and reference a specific version from code by URI. See Server datasets.

Review and curation

Review the items evaluators got wrong, annotate them, and promote them into a new dataset version. See Review and curation.

Run comparison

Compare two runs item by item to see exactly what a change moved. See Comparing runs.

LLM judge

Score runs and traces on the server with an LLM as judge, using a stored connection that speaks the Open Responses or Chat Completions API. See LLM judge.

Production traces

Ingest OTLP traces from your running app and evaluate them online as they arrive. See Production traces.

Regression alerting

Get a webhook when a run regresses against its baseline. See Regression alerting.

Next steps

For AI agentsView as Markdown