Desktop app updates

Use a hosted release manifest to check for new packaged desktop builds and apply them after a restart.

{{ statusLabel() }}
@if (isCapacitor) {

Mobile app updates

Check the Play Store or App Store for newer native builds. Android can install in-app updates when Google Play allows it.

{{ mobileStatusLabel() }}
@if (!mobileState().isSupported) {

Store updates are only available in the packaged Android or iOS app.

} @else {

Installed

{{ mobileState().currentVersion }}

Store version

{{ mobileState().availableVersion || 'Unknown' }}

Last checked

{{ mobileState().lastCheckedAt ? (mobileState().lastCheckedAt | date: 'medium') : 'Not checked yet' }}

Status

{{ mobileState().statusMessage || 'Waiting for the first store update check.' }}

@if (mobileState().status === 'update-available') { @if (mobileState().immediateUpdateAllowed || mobileState().flexibleUpdateAllowed) { } @if (mobileState().flexibleUpdateAllowed && mobileState().status === 'downloading') { } }
} } @if (!isElectron && !isCapacitor) {

Automatic updates are only available in the packaged Electron desktop app or native mobile app.

} @if (isElectron) {

Installed

{{ state().currentVersion }}

Latest in manifest

{{ state().latestVersion || 'Unknown' }}

Target version

{{ state().targetVersion || 'Automatic' }}

Last checked

{{ state().lastCheckedAt ? (state().lastCheckedAt | date: 'medium') : 'Not checked yet' }}

Update policy

Choose whether the app tracks the newest release, stays on a specific release, or turns updates off entirely.

Status

{{ state().statusMessage || 'Waiting for release information from the active server.' }}

@if (state().restartRequired) { }
Manifest URL priority

Add one manifest URL per line. The app tries them from top to bottom and falls back to the next URL when a manifest cannot be loaded or is invalid.

{{ isUsingConnectedServerDefaults() ? 'Using connected server defaults' : 'Using saved manifest URLs' }}

When this list is empty, the app automatically uses manifest URLs reported by your configured servers.

@if (!state().defaultManifestUrls.length && isUsingConnectedServerDefaults()) {

None of your configured servers currently report a manifest URL.

}
@if (state().serverBlocked) {
Server update required

{{ state().serverBlockMessage }}

Connected server

{{ state().serverVersion || 'Not reported' }}

Required minimum

{{ state().minimumServerVersion || 'Unknown' }}

}

Resolved manifest URL

{{ state().manifestUrl || 'No working manifest URL has been resolved yet.' }}

}