Datalumo installs with one command. It pulls the Docker image, sets up HTTPS, starts the server, and prints your admin key. On a fresh server it takes a few minutes.
You'll need:
- A server with Docker and Docker Compose. Any small VPS works. (See System requirements.)
- A domain pointed at the server with a DNS A record, plus ports 80 and 443 open. This is how Datalumo gets a TLS certificate.
- An API key from a supported provider (OpenAI, Anthropic, Mistral, Gemini, or xAI), or a local model (Ollama and friends, no key needed).
- Your Datalumo license key (
dl_lic_…).
Run this on the server:
curl -fsSL https://get.datalumo.app/install.sh | bash
It asks for your license key, your domain, and your provider key, then does the rest: logs in to the registry, pulls the image, starts everything behind Caddy with automatic HTTPS, and prints your admin key.
Prefer to set it up without prompts? Pass the answers as environment variables:
DATALUMO_LICENSE_KEY=dl_lic_… DOMAIN=ai.example.com OPENAI_API_KEY=sk-… \
bash -c "$(curl -fsSL https://get.datalumo.app/install.sh)"
When it finishes, open https://your-domain/admin and sign in with the admin key it printed.
Datalumo uses SQLite by default. No setup, one file, right for most installs.
Pick Postgres if you expect a very large amount of content, run at high scale, or already run it. The installer can set it up, or point Datalumo at your own.
Add Redis only if you run several instances that need shared rate limiting.
Switching later means re-ingesting your content, so it's best to make a well considered choice.
The installer prints the admin key once. To see it again:
docker compose exec datalumo cat /app/data/admin-key
Use it to sign in to the admin UI, and as Authorization: Bearer <key> for the API.
Want to kick the tires on your laptop before committing a domain? Run without TLS:
docker run -d --name datalumo -p 3000:3000 \
-v datalumo_data:/app/data \
-e OPENAI_API_KEY=sk-… \
registry.datalumo.app/datalumo:latest
Open http://localhost:3000/admin. Everything works the same, just over plain HTTP on your machine.
The dl command lives inside the container. Run it like this:
docker compose exec datalumo dl index create docs
docker compose exec datalumo dl doctor
dl doctor checks your providers, stores, and config. Run it any time something looks off.
Set or change a provider key after install, then restart:
docker compose exec datalumo dl env set OPENAI_API_KEY=sk-…
docker compose restart datalumo