llumen is a lightweight, self-hostable LLM chat application (frontend + backend) that aims to provide an out-of-the-box experience for self-hosting users.
Its design goal is simplicity: you only need a single OpenRouter API key to use LLM features — no separate keys for OCR, search, embeddings, image generation, or other services.
- 🤝 We provide windows executable, docker image, linux binary
- 🚢 Single API key requirement (OpenRouter) for model calls.
- 🚀 starting time < 1s, disk usage < 100 MiB, memory usage < 128MB
- 📘 Markdown rendering with code and math support.
- 🔍 Multiple chat modes (normal, web-search-enabled).
- 🧠 Deep-research and agentic modes (WIP 🚧 ).
Tip
Use reasoning-proxy to unlock advance feature(search, OCR) with normal openai endpoint
Important
The default account is admin
, password is P@88w0rd
- The repository includes a multi-stage
Dockerfile
that builds the frontend and the backend and produces a small image that serves static files and runs the server. - Example: build and run the container (binds port 80 by default).
docker run -it --rm \
-e API_KEY="<YOUR_OPENROUTER_API_KEY>" \
-p 80:80 \
-v "$(pwd)/data:/data" \
ghcr.io/pinkfuwa/llumen:latest
06:46:48.654Z INFO | Using endpoint https://openrouter.ai/api/v1/chat/completions for completions
06:46:48.675Z INFO | Listening on http://127.0.0.1:8001
Tip
Prebuild-binary is not up to dated, it only built on per-release basis
We also provided prebuild binary, download it and extract from release.
API_KEY
(required) — OpenRouter or equivalent provider API key.API_BASE
— openai compatible api url. Default:https://openrouter.ai
DATABASE_URL
— database connection string. Default in Docker:sqlite://data/db.sqlite?mode=rwc
.BLOB_URL
— path for redb object storage. Default in Docker:/data/blobs.redb
.BIND_ADDR
— address the backend binds to (default in Docker:0.0.0.0:80
).
- Development and build-from-source steps, advanced type generation and other developer-focused docs were moved to
DEV.md
. If you want to build locally or contribute code, readDEV.md
first. - Backend source:
backend/
(Rust). - Frontend source:
frontend/
(SvelteKit).