Skip to content

Building from source

yuriy edited this page Oct 13, 2026 · 1 revision

Building from source

Requirements

  • Rust, stable, 1.90 or newer: https://rustup.rs
  • Node.js 22 or newer with npm (CI uses Node 24)
  • The Tauri system dependencies for your system: https://tauri.app/start/prerequisites/. On Debian/Ubuntu: libwebkit2gtk-4.1-dev, libgtk-3-dev, libayatana-appindicator3-dev, librsvg2-dev, build-essential, curl, wget, file, libssl-dev, libxdo-dev.

Get the code and run it

git clone https://github.com/FriendsOfKubernetes/sextant.git
cd sextant
npm ci                 # or npm install
npm run tauri dev      # run in development mode

npm run tauri dev starts the Vite dev server on port 1420 (the port is fixed: if it is busy, the start fails) and the application window. If you installed Rust with rustup, make sure ~/.cargo/bin is in your PATH.

Build installers

# installers in target/release/bundle/, without the in-app update files:
npm run tauri -- build --config '{"bundle":{"createUpdaterArtifacts":false}}'

The project's own builds are made with the in-app updater on (bundle.createUpdaterArtifacts in src-tauri/tauri.conf.json). A plain npm run tauri build signs the update files with the project's private key from TAURI_SIGNING_PRIVATE_KEY and fails without it. That key lives only in the repository's release workflow, so a build of your own turns the update files off, as in the command above. In PowerShell write the option as --config '{\"bundle\":{\"createUpdaterArtifacts\":false}}'.

An installed build of your own still offers the official releases as updates; installing one replaces your build with the official one.

What you get:

System Packages
Linux .deb, .rpm and .AppImage (the official releases ship .deb and .AppImage)
macOS .app and .dmg
Windows .msi and an NSIS installer (the official releases ship .msi)

To pick only some bundles, add --bundles, for example --bundles deb,appimage.

A binary without a bundle

For a quick debug binary (no installer, no signing):

npm run tauri -- build --debug --no-bundle    # target/debug/sextant

Run it with target/debug/sextant. The same binary offers sextant mcp, the bridge used by Claude Desktop (see MCP server).

Good to know

  • The sextant crate embeds the built frontend from dist/. On a clean clone, run npm run build before cargo build, cargo test or cargo clippy (npm run tauri ... does it for you through its beforeBuildCommand).
  • target/ grows large (tens of gigabytes) because of debug information. For local checks and builds, CARGO_PROFILE_DEV_DEBUG=0 CARGO_INCREMENTAL=0 keeps it small.
  • The version number lives in five files and must be the same in all of them; see Development.

Next: Development.

Clone this wiki locally