Developing the Developer Setup GUI
This page is for contributing to the Tauri app or running it from a git checkout. If you only need a binary to onboard, see Installing instead.
Stack
-
Tauri 2.x (Rust + WebView; see Tauri v2 documentation)
-
React 18 + TypeScript
-
Vite 4 (frontend;
root=app/) -
Tailwind CSS
-
PowerShell (Windows) for project setup and scripts under
setup-gui/scripts/
Run from source
From the setup-gui directory in this repository:
corepack enable
corepack install
pnpm install
pnpm tauri dev
This starts the Vite dev server and the Tauri window with hot reload.
Build a release locally
cd setup-gui
pnpm install
pnpm tauri build
tauri.conf.json keeps bundle.active: false for day-to-day local builds, so pnpm tauri build only places the app under src-tauri/target/release/ (e.g. setup-gui or setup-gui.exe). For Linux only, tauri.linux.conf.json merges in bundle.active: true and targets: deb so a .deb is also produced; the release workflow turns that into a Flatpak (see setup-gui/flatpak/). The repository does not check in build products; GitHub Releases ships Windows, macOS, and the Linux .flatpak.
Prerequisites (development)
-
Rust — rustup (stable toolchain is enough for normal dev).
-
Node.js 22+ and pnpm (Corepack:
corepack enablethencorepack installinsetup-gui). -
Windows: PowerShell, with execution policy that allows the scripts the app calls (or run elevated when the UI instructs you).
-
macOS / Linux: same Node/Rust; on Linux, install WebView/gtk build dependencies for Tauri 2 (WebKitGTK 4.1, not 4.0) per Tauri v2 prerequisites — Linux before
pnpm tauri build.
Project layout (high level)
onboarding/
├── setup-gui/ # This app
│ ├── app/ # Vite + React (UI)
│ │ ├── index.html
│ │ └── src/
│ ├── src-tauri/ # Tauri (Rust) backend
│ │ ├── capabilities/ # v2 permission capabilities (e.g. default.json)
│ │ ├── src/
│ │ ├── tauri.conf.json
│ │ └── tauri.linux.conf.json # Linux: produce .deb for Flatpak repack
│ ├── flatpak/ # com.foodtrucknerdz.setup flatpak manifest (Linux)
│ ├── scripts/ # PowerShell helpers
│ ├── vite.config.ts
│ └── package.json
└── docs/ # Antora docs (this site)
GitHub builds (releases only)
A single workflow (.github/workflows/release-tauri.yml) runs when you push a version tag v*.*.*: it builds Windows and macOS executables and a Linux Flatpak (.flatpak) in GitHub Actions and attaches them to a GitHub release, plus STANDALONE-README.txt. There is no separate per-push CI workflow in this repository; version tags are how release assets are produced. Day-to-day development uses pnpm tauri dev (or a local pnpm tauri build) on your computer.
-
Installing — where to download release binaries.
-
PowerShell scripts —
setup.ps1/run.ps1reference.