Prefer verified GitHub Actions or exact Release binaries during native updates, with checksum validation and local compilation fallback. Defer Support Agent source synchronization and rebuild queueing until after the console restart. Thanks: INSOLVE (Honorary); Marco Jakobs (@jacotec); MyNameisStitch (@MyNameisStitch); Redspin (@playerumpknow)
3.8 KiB
Client Generator
The Support Agent Generator in the web console builds branded BetterDesk Support Agent installers with your server address, public key, and appearance baked in. End users download from a public hub page — no manual network configuration.
BetterDesk focuses on Support Agent as the supported end-user client. Legacy Agent Client / RdClient workers may still exist in the codebase but are not offered in the Generator UI.
What you get
Each Support Agent bundle includes:
- Server / API / CDAP connection profile
- Server public key
- Optional company branding (colors, logo, product name, contact)
- Optional unattended access flag
- Incoming capability defaults (desktop, files, clipboard, audio, terminal, restart)
Platforms (Windows + Linux)
| Platform | Formats |
|---|---|
| Windows x64 | Portable .exe, installed .msi |
| Linux x64 | Portable .tar.gz, AppImage, .deb, .rpm |
You can deselect platforms when creating or rebuilding a bundle (for example Windows-only) to shorten the first build.
Quick start
- Log in as admin
- Open Generator in the sidebar
- Click New Support Agent
- Enter an internal bundle name and confirm the public server host (prefilled from console defaults)
- Optionally expand Branding & appearance for logo / colors / contact
- Confirm build platforms (all selected by default) and Save
- Watch build status (Ready / Queued / Building / Failed); use Retry on failed platforms
- Share the download hub link (
/d/:slug)
After a BetterDesk update
When agent source changes, the panel records a pending Support Agent rebuild
and completes the console/server update first. After the console restarts, the
worker synchronizes agent-source/ and requeues all non-revoked Support Agent
bundles in the background. Check Settings → Updates and the Generator status
for the deferred sync/build state.
If a Support Agent signed profile is incomplete or expired, Rebuild / Retry / auto-requeue re-issues the profile (connection URLs + TTL) before compiling. You can still Save the bundle in Generator to refresh the profile manually.
Toolchain
Support Agent builds need Go + CGO on the console host:
- mingw-w64 for Windows cross-builds (
x86_64-w64-mingw32-gcc) - wixl (msitools) for MSI
- appimagetool as an extracted wrapper under
/usr/local/lib/appimagetool(raw AppImage in/usr/local/binfails for thebetterdeskservice user) dpkg-deb/rpmbuildfor Linux packages- WebView2 runtime on end-user Windows machines (Wails UI; usually preinstalled on Windows 10/11)
- webkit2gtk on Linux build/runtime hosts for the Wails UI
Install via sudo ./scripts/install-build-toolchain.sh or betterdesk.sh menu B, then restart betterdesk-console. The Generator banner reports Go, mingw, wixl, and appimagetool.
UI: Support Agent defaults to Wails (HTML UI + Go bindings). Legacy Fyne builds remain available with BETTERDESK_SUPPORT_FYNEUI=1 (may embed Mesa OpenGL DLLs). Remote desktop capture uses ffmpeg (ddagrab/gdigrab on Windows) with hardware H.264/VP8/VP9/AV1/H.265 when available.
Note: Do not set mingw CC before branding seal — sealbranding is a host (Linux) Go tool and must run with CGO_ENABLED=0 / native compilers. Windows CC/CXX apply only to the final cross-compile.
Security notes
- Bundles do not embed a shared enrollment token
- Each install registers independently; in managed mode a unique
device_tokenis issued only after operator approval - Release builds seal branding inside the binary (obfuscation + integrity); local state is machine-bound AES-GCM
- Support Agent is inbound-only — end users cannot browse or connect to other devices on your infrastructure