From source
Building it yourself: to develop, to audit what you run, or to produce your own packages. If you simply want to operate an instance, prefer a packaged method.
Build requirements #
| Tool | Version |
|---|---|
| Rust | ≥ 1.82 (2021 edition) |
| Node.js | ≥ 24 — for the interface |
| PostgreSQL | 16 — at runtime |
Building and installing #
git clone https://github.com/kubuno/core && cd core
cargo build --release
(cd frontend && npm ci && npm run build)
bash build_deb.sh core # builds the package THEN installs itFor the core, build_deb.sh installs the package it has just built — it does not merely produce it. On a machine already running an instance, that updates it. Module repositories, by contrast, keep the two apart: bash build_deb.sh builds, --install installs.
Producing a package for another platform #
bash build_deb.sh # Debian / Ubuntu → dist/*.deb
bash build_rpm.sh # Fedora / RHEL → dist/*.rpm
bash build_windows.sh # Windows (NSIS) → dist/*.exe
bash build_macos.sh # macOS (sur un Mac) → dist/*.pkgThe detailed requirements of each script — including cross-compiling to Windows from Linux — are in PACKAGING.md, at the root of the core repository.
Development loop #
To iterate without rebuilding a package, once the instance has been installed once:
bash _tools/deploy_local.sh core # serveur + interface
bash _tools/deploy_local.sh core --frontend # interface seule, plus rapideAfter a build, cargo clean frees several gigabytes. See also the technical documentation if your aim is to write a module.