Skip to content

Install

Lumbung is two Go programs from one module: lumbungd, the engine, and lumbung, the CLI. Both are static binaries with no cgo, so they run anywhere Go builds.

Terminal window
docker compose up -d --build

The image runs as a non-root user, keeps its data in the data volume at /data, and has a built-in health check. See Docker Compose.

You need the Go version in apps/engine/go.mod; an older Go downloads it automatically.

Terminal window
cd apps/engine
go build -o bin/ ./cmd/lumbungd ./cmd/lumbung
LUMBUNG_DATA_DIR=/var/lib/lumbung ./bin/lumbungd

With no settings at all, lumbungd starts: it creates the data folder, meta.db and a service token, and listens on 127.0.0.1:4870. Every setting is an environment variable; see Configuration.

Terminal window
go install github.com/zakiego/lumbung/apps/engine/cmd/lumbung@latest

Or build it from a checkout as above. Then:

Terminal window
lumbung version
lumbung --help
  • A local disk for the data folder. SQLite’s file locking doesn’t work on network file systems.
  • Linux or macOS. On Linux, kernel 3.15 or newer (for open file description locks).
  • Memory: about 128 MiB per busy connection at most (LUMBUNG_CONN_MAX_MEMORY); an idle instance uses much less.