The person who stands rolter up and hands it to everyone else. In a small shop
that is one person holding superadmin; in a larger one it splits into a
platform operator (superadmin: the deployment, its policies and its fleet) and
an org admin (admin at the org: its providers, people, keys and budgets). The
scripts mark which of the two a step needs.
Goal: from nothing to “our people and our applications call our models
through rolter, inside limits we chose, and we can see what they did.”
Dogfood accounts:dev@rolter.local (superadmin), orgadmin@rolter.local
(admin at org default). See dogfood data.
The observer watches:audit_log for every mutation below, ui_events for
the Getting started card and the sheets, and Cluster Config for the config
version reaching the gateway after each change.
docker/docker-compose.yml is the local stack and is open on purpose: the
control plane binds every interface with ROLTER_ALLOW_OPEN_MODE=1, 4001 is
published, no admin token is set, the file reads none of the A0.5 secrets, and
its gateway serves the bundled rolter.toml instead of polling the control
plane. It also publishes Postgres (example rolter/rolter login), Redis (no
password) and ClickHouse (passwordless default user) on every interface, so an
admin token added by hand still leaves the data reachable around it. A0-b is a
single-person trial until a compose shape for a shared host exists (#1890); a
team goes to A0-c.
A0-c has its own gap: with default values the chart’s preflight init container
cannot pass (preflight.strict fails on the 0.0.0.0 bind the Service needs,
and the gateway pod runs the control plane’s checks), so today an install sets
preflight.enabled=false (#1939).
admin token, internal token, KEK, key pepper and session pepper written somewhere they outlive a restart
works
A0.6
bring the stack up
docker compose … up -d, or helm install
Postgres, Redis, ClickHouse healthy; migrations applied on control-plane boot
verified (compose datastores); partial on constrained hosts — #1819; the compose planes do not take the A0.5 secrets — #1890; the chart’s default preflight cannot pass — #1939
A0.7
check the configuration before trusting it
rolter check
admin token, KEK and database URL present; a warning for a missing key pepper, a missing session pepper or a control plane on every interface
works
A0.8
create the first account
rolter-seed --admin-email … --admin-password …
a superadmin that can sign in; the org, team and project default exist
partial — #1897 (verified from a checkout; not in the image or package)
A0.9
sign in and enrol a second factor
dashboard sign-in, then Settings → My Virtual Keys → Two-factor authentication
TOTP enrolled, ten recovery codes shown once
works
A0.10
confirm the planes agree
Cluster Config
every gateway node live and converged on the current config version
The second fork: does the company have an identity provider rolter should
trust? Branches A1-a to A1-c are alternatives; A1-d and A1-e combine with any.
rows created or updated to match the file; the gateway picks them up within its poll interval
verified (4 s)
A3.13
notice what the import did not apply
the import’s output
sections it does not import ([adaptive_routing], [retry], budgets, keys) named
gap — #1818
A3.14
choose a strategy per route
the model sheet’s Strategy, at creation; changing it later is #2208
round robin for identical replicas, cache_aware for prefix-heavy chat, fastest/predicted_latency for latency, weighted for a canary, adaptive to let live latency, cost and load decide
verified, except cache_aware: it sends every request to one replica — bug #1851
Day-2 operations (health, upgrades, drains, backups) are the
DevOps script; identity hardening, payload redaction and audit are
the SecOps script. An admin who is both walks those next.