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 #

ToolVersion
Rust≥ 1.82 (2021 edition)
Node.js≥ 24 — for the interface
PostgreSQL16 — 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 it
Good to know

For 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/*.pkg
Note

The 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 rapide
Note

After a build, cargo clean frees several gigabytes. See also the technical documentation if your aim is to write a module.