Configuration
Every setting kimbap has, in one place. Most of it lives in the environment
file kimbap install writes (/etc/kimbap.env by default) — edit it with
kimbap configure, which applies the change live (systemctl try-restart)
if the service is already running, or a no-op if it isn't.
Precedence is the same everywhere: an explicit CLI flag (kimbap install --admin-domain ..., kimbap run --admin-domain ...) wins over the
environment variable, which wins over the built-in default shown below.
Runtime settings
These live in the env file — kimbap configure --set KEY=value, or edit it
directly and sudo kimbap restart.
| Variable | Default | Meaning |
|---|---|---|
KIMBAP_STATE_DIR |
/var/lib/kimbap (install) / ./state (kimbap run) |
Where the sqlite database and every project's docker-compose.yml/.env files live. |
KIMBAP_ADDR |
127.0.0.1:<port>, or :8080 if installed with --traefik-enabled=true |
kimbap's own HTTP listen address. 127.0.0.1:8080 binds localhost only; :8080 binds every interface. |
KIMBAP_ADMIN_DOMAIN |
admin.localtest.me |
The public hostname kimbap's UI/API is reached at — used for the OAuth issuer/secure-cookie scoping, and (when Traefik is enabled) the domain Traefik routes to kimbap's own UI. Still meaningful with Traefik disabled: it's whatever hostname your own reverse proxy/tunnel forwards to kimbap. |
KIMBAP_ACME_EMAIL |
(empty) | Let's Encrypt contact email — required for kimbap's managed Traefik to actually issue certificates. No effect if Traefik is disabled. |
KIMBAP_ACME_STAGING |
false |
Use Let's Encrypt's staging directory (avoids production rate limits while testing). No effect if Traefik is disabled. |
KIMBAP_TRAEFIK_ENABLED |
false |
Whether kimbap provisions/manages its own Traefik instance at all. Set true to have kimbap handle a public domain + HTTPS itself — see Domains & TLS. When true and KIMBAP_ADMIN_DOMAIN is set, kimbap won't start unless that domain actually resolves to this host. |
KIMBAP_VOLUME_HELPER_IMAGE |
busybox:stable |
The image kimbap runs to read and write Docker volume contents when taking or restoring a snapshot (see Volumes & snapshots). Only worth changing on a host that can't pull from Docker Hub; the replacement needs tar and find. |
KIMBAP_DEV |
false |
Dev mode: don't serve the embedded web UI: expects npm --prefix web run dev to proxy instead. Not something a real install needs. |
LOG_LEVEL |
info |
debug | info | warn | error. |
Install-time-only settings
Not part of the env file — these decide where things get placed, so
they only matter to kimbap install/uninstall themselves, not the
running server.
| Variable / flag | Default | Meaning |
|---|---|---|
KIMBAP_BIN_DIR / --bin |
/usr/local/bin (falls back to ~/.local/bin if that's not writable) |
Where the binary itself gets placed. |
--state-dir |
/var/lib/kimbap |
Passed straight through to KIMBAP_STATE_DIR in the env file install writes. |
--user |
kimbap |
System user the service runs as (--no-user to skip creating one and run as the current user instead). |
--unit-dir |
/etc/systemd/system |
Where the systemd unit gets written. |
--env-file |
/etc/kimbap.env |
Where the env file itself gets written. |
kimbap update-only settings
Not persisted anywhere — resolved fresh each time you run it.
| Variable / flag | Default | Meaning |
|---|---|---|
KIMBAP_UPDATE_SITE / --site |
https://kimbap.okonomi.cloud |
Where to check for/download releases. Only worth changing if you're self-hosting your own fork's distribution point. |
Seeing the effective config
kimbap configure with no --set opens the env file in $EDITOR — every
setting is written out with its effective value already, not just the
ones you changed at install time (a fresh install writes all of them; an
upgrade backfills any that were added since). There's no separate kimbap config show command — the env file itself is always the full, current
picture.
See also
- Install — the flags
kimbap installitself takes. - Domains & TLS — the full story on running with or without kimbap's built-in Traefik, not just the setting that toggles it.