Quick start
This walks through going from a freshly-installed kimbap to a deployed project with a real domain and SSL.
1. Create the first admin account
After installing and starting kimbap, open its address in a
browser (http://<host>:8080/ before Traefik is set up). You'll land on the
setup wizard — pick a username and password. This creates the one and only
way to bootstrap kimbap: the setup endpoint disables itself the moment an
account exists.
2. Install Docker (if needed)
The System page shows whether Docker is present. If not, click Install
Docker — this runs Docker's official install script
(get.docker.com), streaming its output live. It's confirmation-gated: you
have to click through, kimbap never installs Docker silently.
3. Provision Traefik
Still on the System page, click Provision Traefik once Docker is ready. This:
- Creates the
kimbap-publicDocker network. - Writes Traefik's config under
/var/lib/kimbap/traefik/. - Starts the Traefik container, listening on
:80/:443.
Traefik immediately starts routing kimbap's own UI (via the admin domain
you configured at install time, or admin.localtest.me by default for local
testing) — see Domains & TLS for how.
4. Create a project
From the dashboard, click New project. Give it a slug (used as both the
directory name and the docker-compose -p project name), paste in a
docker-compose.yml, and optionally a .env. For example:
services:
web:
image: nginx:alpine
ports:
- "8080:80"
Saving does not deploy it — it just writes the files to
/var/lib/kimbap/projects/<slug>/. Click Deploy to actually run
docker compose up -d.
5. Add a domain
Open the project, scroll to Domains, and add one: pick the compose
service name (web in the example above), the domain
(app.example.com), and the container port (80 — the container's
port, not whatever host port you may have mapped in the compose file
directly). kimbap:
- Records the domain.
- Regenerates
docker-compose.kimbap-labels.ymlfor the project with the right Traefik labels. - Re-runs
docker compose up -dif the project is currently deployed, so the label change takes effect immediately — no Traefik restart needed.
Point the domain's DNS A record at your host, and Traefik issues a Let's
Encrypt certificate for it automatically on first request.
6. Watch it from Claude, if you like
Create an MCP-scoped API key (Settings → API keys → scope mcp) and add
kimbap as a remote MCP connector — see the MCP guide. From there you
can ask Claude to list projects, deploy changes, tail logs, or add a domain,
without touching the UI at all.