Quickstart
Run one Docker command, sign in to the dashboard, add a provider key, and send your first message — all in about five minutes.
Prerequisites
- Docker installed and running on your machine.
- An API key from one LLM provider — OpenAI, Anthropic, Google, or any OpenAI-compatible service.
- Port
8080free on your host.
1. Start the bot
Pull the image and start the container with two named volumes so your settings and chat history survive restarts. The two-e lines match the image defaults and are shown explicitly so you can see where state lives inside the container.
About --cap-add=SYS_ADMIN
--shm-size=256m and --cap-add=SYS_ADMIN let the bot drive a headless Chromium for browser tools. SYS_ADMIN is a broad Linux capability — close to root on the host — so only keep both flags if you intend to use the browser. Drop them for a first run; you can always recreate the container later when you enable browsing.
docker pull ghcr.io/alexk-dev/golemcore-bot:latest
docker run -d \
--name golemcore-bot \
--shm-size=256m \
--cap-add=SYS_ADMIN \
-e STORAGE_PATH=/app/workspace \
-e TOOLS_WORKSPACE=/app/sandbox \
-v golemcore-bot-data:/app/workspace \
-v golemcore-bot-sandbox:/app/sandbox \
-p 8080:8080 \
--restart unless-stopped \
ghcr.io/alexk-dev/golemcore-bot:latestUnable to find image 'ghcr.io/alexk-dev/golemcore-bot:latest' locally
latest: Pulling from alexk-dev/golemcore-bot
Digest: sha256:7b2c9e5a1f...
Status: Downloaded newer image for ghcr.io/alexk-dev/golemcore-bot:latest
8f3e6a1c4d2b9e7fa5b3c1d0e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f92. Open the dashboard
On its very first boot the bot prints a one-time admin password to its own log. Grab it with:
docker logs golemcore-bot 2>&1 | grep "Initial admin password"Initial admin password: Xf3kP9-qLmN2w7ROpen http://localhost:8080 in your browser. Sign in with the username admin and the password you just copied. You land on the onboarding screen.
3. Connect a model
Connecting a model is three short pages under Settings, in order. Each one does one thing: register the provider, tell the bot which model of that provider it is allowed to call, then assign that model to a tier.
- Settings → LLM Providers. Click Add provider, pick your provider (OpenAI, Anthropic, Google, or any OpenAI-compatible endpoint), paste the API key, and save. This only registers the credentials — no model is available yet.
- Settings → Model Catalog. Click Add model and pick the concrete model you want from the provider you just added — for example
openai/gpt-5.1. The catalog is the list of models the bot is allowed to reach; the router can only point tiers at what lives here. - Settings → Model Router. Point
balanced,smart,coding, anddeepat the model you just added. For a first run it is fine to pin all four named tiers to the same model — you can split them later once you have stronger models for reasoning or code.
Do not leave named tiers blank
The router does not walk down a fallback chain between named tiers. If a skill, a webhook, the /tiercommand, or the dynamic upgrade step requests a tier that has no model bound, the turn fails with “Tier is not configured”. The safe shape for a first run is the same model in all four named tiers; the five special1–special5 slots can stay empty because nothing picks them implicitly.
When to point each tier at a different model — and how the dynamic upgrade step decides to switch to coding mid-turn — is covered in Model Routing.
Your key stays on your machine
The dashboard stores the key inside the container volume. It never leaves your machine and is never baked into the container image.
4. Send your first message
Open Chat. Type something simple — for example, Say hello in one sentence. The bot streams its reply in real time, with any tool calls and progress visible inline. The exact wording of the response depends on the model you wired up, but a short greeting confirms the full path (provider → catalog → router → chat) is working.
If the bot did not reply
- Run
docker logs golemcore-botand look for provider errors — wrong key, unknown model ID, rate limits. - Double-check that the model ID you entered in Model Catalog actually exists at your provider.
- If it is still wrong, the troubleshooting page is organized by what you see, not by what is wrong inside.
That is the full quickstart. The bot is running, the dashboard is yours, and your first conversation is in the books. Use Sessions and Logs if you want to look at what just happened in detail.
What to do next
Tour the dashboard
See what every page in the dashboard does so you know where to go for what.
Model routing
Learn how the bot picks a model for each turn and how to set up the other tiers.
Install plugins
Add browser, search, voice, or mail capabilities through the plugin marketplace.
Your first skill
Build your first skill by walking through the GitHub MCP recipe end-to-end.
Related pages
User Guide
Dashboard
A tour of the dashboard — what each page is for, where to find settings, and how to read what the bot is doing.
User Guide
Model Routing
How GolemCore Bot picks a model for each turn, the four named tiers plus five custom slots, and how to set them up in Settings.
User Guide
Deployment
Three ways to run the bot — Docker, Docker Compose, or a plain JAR — and what to check before you call it production-ready.