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