hstack (local stack)
Desktop app (Tauri)
Optional native desktop wrapper around the web UI.
Tauri desktop app (optional)
The Tauri app is a native desktop wrapper around the web UI. It’s useful when you want:
- a native desktop window (instead of a browser tab)
- separate storage from other desktop installs (so it doesn’t reuse old server URLs/auth)
Important behavior
- The Tauri app must embed an explicit API base URL.
- By default,
hstackwill embed:- a Tailscale Serve
https://*.ts.netURL if it detects one on this machine (so the built app can be copied to other devices on the same tailnet), otherwise - the local loopback URL
http://127.0.0.1:<port>(same-machine only).
- a Tailscale Serve
- If you change what URL you want embedded, rebuild the Tauri app.
Prereqs
- Rust toolchain installed
- Tauri build dependencies installed for your OS
Build it
Build (one-off):
hstack build --tauriOr during bootstrap:
hstack bootstrap --tauriRun it
- Start the local server (or install the service):
hstack start- Launch the built app bundle (location is under
~/.happier/stacks/main/tauri-target/).
“Portable” Tauri builds (send to another computer)
If you build the Tauri app while Tailscale Serve is enabled on the server machine, the app will embed the https://*.ts.net URL and can be copied to another computer.
Requirements:
- The server machine is running
hstack startand Tailscale Serve is enabled - The other computer is on the same tailnet and can access the
https://*.ts.netURL
Configuration (high-signal)
HAPPIER_STACK_TAURI_IDENTIFIER(defaultcom.happier.stack)HAPPIER_STACK_TAURI_PRODUCT_NAME(defaultHappier)HAPPIER_STACK_TAURI_DEBUG=0(build release-like without devtools)HAPPIER_STACK_TAURI_SERVER_URL(force the embedded API URL)HAPPIER_STACK_TAURI_PREFER_TAILSCALE=0(disable Tailscale detection; always embed127.0.0.1)