Skip to content

App Settings ​

Desktopr apps are configured with environment variables read by scripts/prod-conf.sh (production) and scripts/dev-conf.sh (development), or with the matching inputs of the build workflow.

Application ​

VariableWorkflow inputDefaultDescription
APP_URLapp_url(empty)Absolute URL of your web app. Empty loads the bundled local page.
APP_VERSIONapp_version0.2.1App version, X.Y.Z.
APP_IDENTIFIERapp_identifierapp.desktopr.appBundle identifier in reverse-domain form, e.g. com.example.app.
MAIN_WINDOW_TITLEapp_nameDesktoprProduct name and main window title.
DEEPLINK_SCHEMEdeeplink_scheme(empty)Custom protocol scheme, e.g. example for example://….
APP_FRONTENDfrontendstandalonestandalone bundles the local page (or loads APP_URL); bundled embeds your own built web app; companion bundles the Companion app.
APP_FRONTEND_DISTfrontend_dist(empty)With bundled: directory of the built web app, relative to the repository root. Must contain index.html.

Only the origin of APP_URL and its subdomains are granted access to the native bridge. Do not point APP_URL at a domain whose subdomains third parties control.

A build that shows a bundled frontend keeps 'unsafe-inline' in script-src and tells Tauri not to rewrite that directive. Nonces and hashes there would also apply to the scripts that inject the bridge, and the app would start without window.Desktopr.

Main window ​

VariableDefaultDescription
MAIN_WINDOW_WIDTH1200Initial width in pixels.
MAIN_WINDOW_HEIGHT800Initial height in pixels.
MAIN_WINDOW_BG_COLOR#ffffffBackground colour shown before the page paints.
MAIN_WINDOW_RESIZABLEtrueWhether the window can be resized.
MAIN_WINDOW_OPEN_FULLSCREENfalseOpen the window in fullscreen.
MAIN_WINDOW_URLvalue of APP_URLOverride the URL of the main window only.

Example:

sh
APP_URL=https://app.example.com \
APP_VERSION=1.0.0 \
APP_IDENTIFIER=com.example.app \
MAIN_WINDOW_TITLE="Example" \
MAIN_WINDOW_WIDTH=1440 \
DEEPLINK_SCHEME=example \
npm run build

Icons ​

Icons live in src-tauri/icons/. Generate a full set from one square source image with the Tauri CLI:

sh
cd src-tauri && cargo tauri icon ../path/to/icon.svg

In the build workflow, pass the repository path of the source image as the icon input and the icons are generated for you.

Updates ​

The updater is off by default and is not even compiled in. To enable it you need your own HTTPS update manifest and signing key:

  • GitHub Actions: set the update_endpoint and updater_public_key inputs and the TAURI_SIGNING_PRIVATE_KEY secret.
  • Locally: set UPDATE_ENDPOINT and ED25519_PUBKEY for npm run prodconf, then build with cargo tauri build --features updater and TAURI_SIGNING_PRIVATE_KEY in the environment.

Both values are required together, and they are yours: Desktopr never points your app at an update server it controls. See Tauri's updater guide for the manifest format.

Companion mode ​

COMPANION_MODE=true accepts bridge calls from any HTTPS origin and from localhost. It exists for the Companion app and for development tooling — never ship a production app built this way.