Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

LUMEN ships as a single static binary. Pick one of three ways to get it: Docker, a prebuilt binary from a GitHub release, or a build from source.

Docker

docker run -p 8080:8080 \
  -v ./config.toml:/config.toml \
  -e OPENAI_API_KEY=sk-... \
  ghcr.io/qdequele/lumen:latest

The image sets LUMEN_SERVER__HOST=0.0.0.0 for you, so the server binds to all interfaces inside the container. The image is multi-arch: linux/amd64 and linux/arm64.

Prebuilt binary

Static musl binaries for x86_64-unknown-linux-musl and aarch64-unknown-linux-musl are attached to every GitHub release cut from a v* tag, each with a .sha256 checksum file alongside it. Verify a download before unpacking:

shasum -a 256 -c lumen-x86_64-unknown-linux-musl.tar.gz.sha256

From source

Needs a recent stable Rust toolchain (MSRV 1.94, per Cargo.toml and checked in CI against the committed Cargo.lock):

cargo build --release -p server --bin lumen

The binary lands at target/release/lumen. Run it with:

lumen --config config.toml

Validate a config without booting

lumen --check-config [--config <PATH>] validates a config file the same way the server does at boot (parsing, semantic validation and provider registry construction) and exits: 0 if valid, non-zero otherwise. It binds no listener, opens no database, and contacts no provider, so it is safe to run in a CI or deploy pipeline ahead of a real boot:

lumen --check-config --config config.toml

Next

Continue to the Quickstart, or browse the fully commented config.example.toml on GitHub.