bokf
Self-hosted bookkeeping for Swedish organizations. One C daemon, one SQLite file, one JSON API shared by the CLI, the ncurses UI and LLM agents.
Status: 0.1.0-dev — walking skeleton. Not production ready. See
docs/COMPLIANCE.md §9.
Build
Requirements: Linux, a C11 compiler, GNU make, and libncursesw for the TUI. No other system libraries — SQLite, yyjson, SHA-256 and Argon2 are vendored.
sh
make -j$(nproc)
make test
make test runs the server/protocol suite, the TUI unit tests and a docs/code
consistency check. Extra targets: make test-asan / make test-ubsan
(sanitizers) and make test-pty (drives the real TUI over a pty against a
throwaway /tmp daemon and asserts on screen text).
Produces build/bokfd (daemon), build/bokfctl (CLI) and build/bokftui
(ncurses UI). Builds on x86_64 and arm64 (Armbian, Raspberry Pi, …).
Run
```sh ./build/bokfd init –db /var/lib/bokfd/bokfd.db –user admin BOKFD_PASSWORD=secret ./build/bokfd init … # non-interactive
./build/bokfd –db /var/lib/bokfd/bokfd.db –socket /run/bokfd/bokfd.sock ```
In another shell, the terminal UI (or script with bokfctl):
```sh BOKFD_SOCKET=/run/bokfd/bokfd.sock BOKFD_USER=admin BOKFD_PASSWORD=secret \ ./build/bokftui
BOKFD_USER=admin BOKFD_PASSWORD=secret \ ./build/bokfctl –socket /run/bokfd/bokfd.sock org.create ‘{“name”:“AB Ett”,“org_nr”:“5560123456”}’ ```
Documentation
docs/PROTOCOL.md— transport, auth, command referencedocs/SCHEMA.md— database schema, invariants, hash chainsdocs/COMPLIANCE.md— BFL/BFNAR mapping and operator duties
License
GPL-3.0-or-later. Vendored components have their own compatible licenses; see
THIRD_PARTY_NOTICES.md.
