For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /nl/docs/desktop/updates.md (or send Accept: text/markdown).
Automatische updates en releasekanalen
Ondertekende updatefeeds, het stable/beta-kanaal en de meegeleverde releaseworkflow.
Genereer het updater-sleutelpaar eenmalig
De updater verifieert minisign-handtekeningen op gedownloade artefacten. Genereer een sleutelpaar met de Tauri-signer en bewaar de privésleutel als TAURI_SIGNING_PRIVATE_KEY met het wachtwoord in TAURI_SIGNING_PRIVATE_KEY_PASSWORD, allebei in uw geheimenopslag — nooit in de repo. Builds die updater-artefacten maken zetten een .sig-sidecar naast elk installatieprogramma; de publieke sleutel gaat naar clients, de privésleutel blijft in CI.
corepack pnpm --filter @supastack/desktop exec tauri signer generate -w ~/.tauri/product.keyConfigureer de updater tijdens het bouwen
tauri.conf.json levert een sentinel-updaterblok met lege endpoints en pubkey — behoud het, want de updaterplugin kan niet initialiseren zonder die sleutels. Echte waarden worden tijdens het bouwen diep gemerged via een --config-JSON-overlay of de TAURI_CONFIG-omgevingsvariabele; check:release-config drukt de exacte overlay af om te plakken wanneer SUPASTACK_UPDATER_ENDPOINT en SUPASTACK_UPDATER_PUBKEY zijn ingesteld.
Stel beide in of geen van beide: een overlay met alleen endpoints laat de pubkey leeg, waardoor controles lijken te werken terwijl elke installatie faalt op handtekeningverificatie. De endpoint-URL bevat de placeholders {{target}}, {{arch}} en {{current_version}} — het versieslot is verplicht — plus een optioneel {{channel}}-padsegment dat releasekanalen inschakelt.
# check:release-config prints this overlay for tauri build --config:
# {"plugins":{"updater":{"endpoints":["https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}"],"pubkey":"<base64 public key>"}}}
# SUPASTACK_UPDATER_ENDPOINT=
# SUPASTACK_UPDATER_PUBKEY=Publiceer de latest.json-feed
Elk endpoint beantwoordt een latest.json-manifest — version, notes, pub_date en een platforms-map over darwin-aarch64, darwin-x86_64, windows-x86_64, windows-aarch64, linux-x86_64 en linux-aarch64 — waarin elke entry de URL van het installatieprogramma aan zijn handtekening koppelt.
Bouw het met het release:manifest-script: dat scant een bundelmap op .app.tar.gz-, -setup.exe- (voorkeur boven .msi) en .AppImage-artefacten — elk moet zijn .sig-buurman hebben — en schrijft of merget het manifest. Flags dekken --version, --base-url, --bundle-dir met --platform, --merge om platforms over runs heen op te stapelen, --notes, --pub-date en --out.
corepack pnpm --filter @supastack/desktop release:manifest -- \
--version 1.2.0 \
--base-url https://releases.example.com/stable \
--bundle-dir src-tauri/target/release/bundle \
--platform windows-x86_64 \
--merge latest.jsonStable- en beta-kanalen
Wanneer een endpoint de {{channel}}-placeholder bevat, schakelt het app-menu een Beta Updates-checkbox in die de feed tussen stable en beta wisselt. De keuze wordt bewaard in een update-channel-bestand naast de appconfiguratie; SUPASTACK_UPDATE_CHANNEL overschrijft het per run — alles wat niet wordt herkend wordt met een waarschuwing genegeerd — en stable is de standaard. Zonder de placeholder blijft de schakelaar uitgeschakeld en wordt alleen de stable-feed gecontroleerd.
Wanneer updates worden gecontroleerd
Bij het opstarten draait één stille achtergrondcontrole die alleen een dialoog toont wanneer er een update bestaat; het menu-item Check for Updates… meldt elke uitkomst. Controles worden geserialiseerd — een tweede gelijktijdige request wordt gedropt. Een beschikbare update biedt Install and Restart, die de app downloadt, installeert en herstart; ongeconfigureerde builds antwoorden dat updates niet zijn geconfigureerd, en fouten verschijnen als dialogen in plaats van opnieuw te proberen.
De meegeleverde releaseworkflow
.github/workflows/desktop-release.yml bouwt de matrix — macOS op beide architecturen, Windows en Ubuntu — op desktop-v*-tags of een handmatige dispatch met een versie en kanaal. Het stempelt de manifestversie uit de tag (een release die dit overslaat biedt zichzelf voor altijd als update aan), merget de manifests per platform en maakt een GitHub-conceptrelease met latest.json plus elk installatieprogramma en elke handtekening — gemarkeerd als prerelease voor beta-kanalen.
Het heeft SUPASTACK_APP_URL en SUPASTACK_UPDATER_ENDPOINT nodig als repositoryvariabelen en SUPASTACK_UPDATER_PUBKEY plus de privésleutel voor ondertekening met het bijbehorende wachtwoord als secrets; Apple-ondertekeningsgegevens zijn optionele toevoegingen. Het volledige stappenplan staat in docs/desktop-updates.md in de repository.
Verificatie en probleemoplossing
Installeer een build, publiceer een nieuwer manifest naar een testfeed en bevestig dat het updatedialoog bij de volgende controle arriveert en de app herstart in de nieuwe versie. Schakel daarna naar beta en bevestig dat het antwoord van de kanaalfeed verandert.