Build from source
Build a release tag rather than an arbitrary main commit. The examples below target v0.3.0; tags and images become available when the release is published.
git clone https://github.com/bitcoin-numeraire/swissknife.git
cd swissknife
git checkout v0.3.0
Cargo​
Install the Rust toolchain pinned in rust-toolchain.toml and the Protocol Buffers compiler (protoc), then build:
cargo build --locked --release
Configure the database, Lightning provider, and authentication before running target/release/swissknife. The process automatically applies pending migrations at startup. A backend-only source build has no dashboard assets; set SWISSKNIFE_DASHBOARD_DIR="" if no static export is installed.
Docker​
Before building a dashboard, edit dashboard/.env.production with your public API URL and authentication settings. NEXT_PUBLIC_* values are compiled into the browser bundle; the checked-in profile targets Numeraire's hosted Auth0 deployment. For a bundled local-JWT setup, set NEXT_PUBLIC_AUTH_METHOD=jwt and leave NEXT_PUBLIC_SERVER_URL empty.
The Makefile provides three build targets:
make build-docker # Backend and static dashboard
make build-docker-server # Backend only
make build-docker-dashboard # Standalone Next.js dashboard
These create local swissknife:latest, swissknife-server:latest, and swissknife-dashboard:latest images. See Docker deployment for runtime configuration, persistent storage, and credential mounts. Building an image does not configure or bundle a Lightning node.
Dashboard development​
Use Node 24 and the Yarn version pinned in dashboard/package.json through Corepack. The dashboard README covers development, standalone and static builds, and configuration.