BUILDING.md listed AppImage, .deb and .rpm as build artifacts, but Linux ships as AppImage only -- CI passes `--bundles appimage`, and the .deb and .rpm were dropped because neither could self-update. A bare `npx tauri build` still emits all three, since tauri.conf.json keeps "targets": "all" to leave macOS and Windows untouched, so the table now marks which are actually released rather than pretending the others do not exist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.3 KiB
Building Triple-C
Triple-C is a Tauri v2 desktop application with a React/TypeScript frontend and a Rust backend. This guide covers building the app from source on Linux, macOS, and Windows.
Prerequisites (All Platforms)
- Node.js 22 LTS — https://nodejs.org/
- Rust (stable) — https://rustup.rs/
- Git
Linux
1. Install system dependencies
Ubuntu / Debian:
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
patchelf \
libssl-dev \
pkg-config \
build-essential
Fedora:
sudo dnf install -y \
gtk3-devel \
webkit2gtk4.1-devel \
libayatana-appindicator-gtk3-devel \
librsvg2-devel \
libsoup3-devel \
patchelf \
openssl-devel \
pkg-config \
gcc
Arch:
sudo pacman -S --needed \
gtk3 \
webkit2gtk-4.1 \
libayatana-appindicator \
librsvg \
libsoup3 \
patchelf \
openssl \
pkg-config \
base-devel
2. Install frontend dependencies
cd app
npm ci
3. Build
npx tauri build
Linux ships as AppImage only. To match what CI produces, pass the bundle explicitly:
npx tauri build --bundles appimage
The .deb and .rpm bundles were dropped — two more artifacts to build and
publish for an audience the AppImage already serves, and neither could
self-update. A bare npx tauri build still emits them, because
tauri.conf.json keeps "targets": "all" so that macOS and Windows are
untouched; they are not released and not tested.
Build artifacts are located in app/src-tauri/target/release/bundle/:
| Format | Path | Released |
|---|---|---|
| AppImage | appimage/*.AppImage |
yes |
| Debian pkg | deb/*.deb |
no |
| RPM pkg | rpm/*.rpm |
no |
scripts/finalize-appimage.sh post-processes the AppImage; see the Packaging
section of CLAUDE.md for why both of its steps are load-bearing.
macOS
1. Install prerequisites
- Xcode Command Line Tools — required for the C/C++ toolchain and system headers:
xcode-select --install
No additional system libraries are needed — macOS includes WebKit natively.
2. Install Rust targets (universal binary)
To build a universal binary that runs on both Apple Silicon and Intel Macs:
rustup target add aarch64-apple-darwin x86_64-apple-darwin
3. Install frontend dependencies
cd app
npm ci
4. Build
For a universal binary (recommended for distribution):
npx tauri build --target universal-apple-darwin
For the current architecture only (faster, for local development):
npx tauri build
Build artifacts are located in app/src-tauri/target/universal-apple-darwin/release/bundle/ (or target/release/bundle/ for single-arch builds):
| Format | Path |
|---|---|
| DMG | dmg/*.dmg |
| macOS App | macos/*.app |
| macOS App (compressed) | macos/*.app.tar.gz |
Note: The app is not signed or notarized. On first launch, macOS Gatekeeper may block it. Right-click the app and select "Open" to bypass, or remove the quarantine attribute:
xattr -cr /Applications/Triple-C.app
Windows
1. Install prerequisites
- Visual Studio Build Tools or Visual Studio with the "Desktop development with C++" workload — https://visualstudio.microsoft.com/visual-cpp-build-tools/
- WebView2 — pre-installed on Windows 10 (1803+) and Windows 11. If missing, download the Evergreen Bootstrapper from https://developer.microsoft.com/en-us/microsoft-edge/webview2/
2. Install frontend dependencies
cd app
npm ci
3. Build
npx tauri build
Build artifacts are located in app\src-tauri\target\release\bundle\:
| Format | Path |
|---|---|
| MSI | msi\*.msi |
| NSIS | nsis\*.exe |
Development Mode
To run the app in development mode with hot-reload:
cd app
npm ci # if not already done
npx tauri dev
Container Image
The sandbox container image (used at runtime by the app) is built automatically by CI when files under container/ change. To build it locally:
docker build -t triple-c-sandbox ./container