Skip to main content
Enclave

Building the desktop app (Tauri) yourself

The desktop shell lives in apps/desktop: Tauri 2 in remote mode (the shell carries no backend). Windows builds with a single command; macOS needs Xcode CLT and Rust targets, with three signing tiers from unsigned to notarized. The auto-update pipeline is fully wired but produces no update artifacts by default.

Official installers can be downloaded straight from GitHub Releases; this page is for developers who want to produce their own builds (internal distribution, shell modifications). The desktop shell reuses the apps/app build output and only connects to a remote world address at runtime, so building the desktop app requires deploying no backend dependencies.

  1. 1.Windows build

    On any machine with Rust + Node, run pnpm --dir apps/desktop build:windows:x64; artifacts land in apps/desktop/src-tauri/target/x86_64-pc-windows-msvc/release/bundle/. The installer supports Chinese, English, Japanese and Korean.

  2. 2.macOS build

    Must be run on macOS. Install Xcode Command Line Tools first (xcode-select --install) and add the Rust targets (rustup target add aarch64-apple-darwin x86_64-apple-darwin), then run pnpm --dir apps/desktop build:mac:aarch64 or build:mac:x86_64 depending on the chip; artifacts include the .app and the .dmg.

  3. 3.Signing: three tiers

    Controlled by environment variables: (1) leave APPLE_SIGNING_IDENTITY unset or set it to "-" (ad-hoc) — installs on your own machine; recipients must right-click-open or clear the quarantine attribute; (2) set a Developer ID certificate identity — distributable, but users approve the first launch in System Settings; (3) on top of (2), add the App Store Connect API Key trio for notarization — distributes directly with no Gatekeeper warnings. The repo's CI workflow upgrades to (3) automatically once the secrets are configured.

  4. 4.Auto-update (inactive by default)

    The shell ships with tauri-plugin-updater (a "Check for Updates…" menu item plus a silent check at startup), but bundle.createUpdaterArtifacts is off by default: turning it on hard-requires the minisign signing private key, otherwise the build fails outright. To activate: generate a key pair with tauri signer generate → put the public key into tauri.conf.json → add the private key to CI secrets → flip the switch and cut a release. While inactive everything works normally — updates simply aren't pushed.

Related questions

  • Which devices / platforms does Enclave support?
    Enclave is a browser-based web app that works right out of the box, with desktop apps for Windows, macOS, and Linux, plus mobile experiences for iOS and Android. Modern browsers (recent versions of Chrome / Edge / Safari / Firefox) need no installation at all.
  • Is Enclave open source? What license does it use?
    Yes. The entire Enclave monorepo is open source on GitHub under the MIT license — free to audit, modify, and use commercially. Any promise that we won't misuse your data is something you can verify by reading the code yourself, instead of just having to take it on faith.

Related

Back to self-hosting docs
ShareXTelegramLINEWeibo
Building the desktop app (Tauri) yourself · Enclave