Skip to content

Help wiki Running a server

Running kabacus-server

Shared books over an HTTP API, the web app and an MCP endpoint.

Launch and connect

kabacus-server serves one ledger to several people and devices. It ships as a container image with the books in a /data volume (/data/books.kabacus is made on first start) or in PostgreSQL via database_url.

podman run -d --name kabacus-server --userns=keep-id --read-only --tmpfs /tmp --network none \
  -v /path/to/data:/data \
  -v "$XDG_RUNTIME_DIR/kabacus:/run/kabacus" \
  -v /path/to/server.toml:/etc/kabacus/server.toml:ro \
  localhost/kabacus-server:latest --auth=none
  • --auth=none is for one user on one computer, over a unix socket only. For OAuth or the remote HTTPS listener, configure [auth] and [remote] and drop it.
  • Other devices connect over the HTTPS listener with Connect to a Server… in the app. An ordinary certificate or a private CA works.
  • /mcp serves MCP over streamable HTTP; clients sign in with the same provider.
  • The server logs one line per request, to the journal if its socket is mounted, otherwise stderr.
  • Set account_kinds in the config to change how account paths map to kinds; it reloads on SIGHUP.

The container README in the Kabacus repository lists every volume and setting.