aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-17 19:55:36 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-17 19:55:36 +0200
commit380195f7cd5e57acf2c1cf2bc41069e6b0b979ed (patch)
tree32a88fb22a7fbe8f1fd5c105156d1f928c93950d /README.md
downloadbokf-380195f7cd5e57acf2c1cf2bc41069e6b0b979ed.tar.gz
bokf-380195f7cd5e57acf2c1cf2bc41069e6b0b979ed.zip
Initial commit: daemon, clients, docs, Docker deploy pipelinev0.1.0
Diffstat (limited to 'README.md')
-rw-r--r--README.md50
1 files changed, 50 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f13f5ed
--- /dev/null
+++ b/README.md
@@ -0,0 +1,50 @@
+# 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
+```
+
+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 reference
+- `docs/SCHEMA.md` — database schema, invariants, hash chains
+- `docs/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`.