Start the Server¶
Once you have published and promoted a sample dataset into a serving store, starting the local
server is straightforward: point the runtime at that store root and keep the cache root under
artifacts/.
The important precondition is real: the sample dataset must already be published and catalog-promoted. Starting the server against a build root is a workflow mistake, not a supported shortcut.
Runtime Inputs¶
flowchart LR
BuildRoot[artifacts/getting-started/tiny-build] --> Publish[dataset publish]
Publish --> Store[artifacts/getting-started/tiny-store]
Store --> Server[bijux-atlas-server]
Cache[artifacts/getting-started/server-cache] --> Server
Config[flags or config file] --> Server
This runtime-input diagram shows why the server startup page comes after publication. Atlas expects the runtime to start from serving store state, plus explicit cache and configuration inputs.
Validate the Runtime Shape First¶
mkdir -p artifacts/getting-started/server-cache
cargo run -p bijux-atlas --bin bijux-atlas-server -- \
--store-root artifacts/getting-started/tiny-store \
--cache-root artifacts/getting-started/server-cache \
--validate-config
This is a low-risk first step because it validates runtime inputs without committing to a long-running process.
If --validate-config fails, fix that before trying to bind the server. A broken validation step usually means startup would fail or produce misleading partial behavior anyway.
Start the Local Server¶
cargo run -p bijux-atlas --bin bijux-atlas-server -- \
--bind 127.0.0.1:8080 \
--store-root artifacts/getting-started/tiny-store \
--cache-root artifacts/getting-started/server-cache
Leave the server running in one terminal while you query it from another.
Startup Sequence¶
sequenceDiagram
participant User
participant Server
participant Store
participant Cache
User->>Server: start with bind, store-root, cache-root
Server->>Store: open store root
Server->>Cache: prepare cache directory
Server-->>User: bind and accept requests
This startup sequence keeps the server’s dependencies visible. If startup fails, the first place to look is the store root, cache root, or resolved configuration, not the query layer.
First Health Checks¶
In another terminal:
curl -s http://127.0.0.1:8080/healthz
curl -s http://127.0.0.1:8080/readyz
curl -s http://127.0.0.1:8080/v1/version
Interpret them in order:
healthztells you whether the process is alive enough to answerreadyztells you whether it considers itself ready to serve/v1/versiontells you whether the API surface is reachable beyond pure health plumbing
What the Startup Model Is Protecting¶
flowchart TD
Validate[Validate runtime inputs] --> Bind[Bind server]
Bind --> Health[Expose health endpoints]
Health --> Query[Serve query endpoints]
This model shows the order Atlas is trying to enforce. Readiness should come after configuration and artifact resolution, not before.
Atlas tries to make startup failure explicit rather than turning configuration drift into partial runtime behavior.
If the Server Does Not Start¶
- confirm the sample dataset was built, published, and catalog-promoted first
- confirm the
--store-rootpoints at the serving store, not the ingest build root or source fixture directory - confirm the
--cache-rootis underartifacts/and writable - re-run with
--print-effective-configif you need to inspect resolved settings - treat “process started” and “runtime is ready” as different questions
What a Good Startup Proves¶
- the server can resolve the store root and cache root you supplied
- the runtime can bind and expose health endpoints
- you are ready to move from startup checks to real query checks
Purpose¶
This page explains the Atlas material for start the server and points readers to the canonical checked-in workflow or boundary for this topic.
Stability¶
This page is part of the canonical Atlas docs spine. Keep it aligned with the current repository behavior and adjacent contract pages.