# Test Card — desktop app A small menu-bar app that serves Test Card on your own machine, for the venue with no internet: pick a network interface and a port, press **Start**, and open it from any browser in the room. It is the same page as the hosted copy, served from inside the app — nothing is installed beside it and nothing phones home. Built with [Tauri v2](https://tauri.app) on the fleet's reusable [av-launcher](https://github.com/stoatworks-labs/av-launcher) shell, using its `[serve] mode = "static"`: the launcher serves the bundled `site/` directory itself rather than supervising a server process. The site's `_headers` file ships beside it and is honoured, so this copy sends the same security and cache headers as the hosted one. The default port is **8522**, the same one the container image and the Unraid template use. ## Building from source ```bash cd launcher npm install bash scripts/prepare.sh # builds the site (`npm run build` at the repo root), and stages it as src-tauri/site/ npm run tauri build # -> src-tauri/target/release/bundle/ ``` `npm run tauri dev` works the same way after `prepare.sh`. ## What is generated Everything in this directory comes from [stoatworks-unraid](https://github.com/stoatworks-labs/stoatworks-unraid)'s `gen-launcher.mjs`, reading the same `fleet.json` entry the Dockerfile is generated from — so the served directory, the not-found policy and the port cannot differ between the container and this app. The shell (`src/`, `src-tauri/src/`, `src-tauri/crates/`) is a copy of av-launcher at `804555c`. Change either there and regenerate; edits made here are overwritten.