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)

  • Rustrustup (stable toolchain is enough for normal dev).

  • Node.js 22+ and pnpm (Corepack: corepack enable then corepack install in setup-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.