Zum Inhalt springen

Repository-Secrets

En Parlant~ verwendet GitHub Actions, um Release-Binärdateien für Windows, macOS und Linux zu erstellen. Die CI-Pipeline benötigt Anmeldedaten für Code-Signierung, Update-Signierung, Virenscans und die Multiplayer-Relay-URL. Diese werden als GitHub Repository Secrets gespeichert – verschlüsselte Werte, die GitHub in Workflow-Durchläufe injiziert, aber niemals anzeigt.

Wenn Sie En Parlant~ forken und eigene signierte Builds erstellen möchten, müssen Sie Ihre eigenen Secrets einrichten. Die Builds lassen sich auch ohne diese kompilieren, aber die Binärdateien werden nicht signiert, Updates können nicht verifiziert werden und der VirusTotal-Scan-Schritt wird übersprungen.

Windows-Benutzer erhalten eine SmartScreen-Warnung („Der Computer wurde durch Windows geschützt”), wenn sie eine unsignierte .exe ausführen. Code-Signierung beseitigt diese Warnung und teilt Windows mit, dass die Binärdatei von einem verifizierten Herausgeber stammt.

En Parlant~ verwendet Azure Trusted Signing dafür. Der Tauri-Build ruft trusted-signing-cli während des Windows-Build-Schritts auf, das mit Azure kommuniziert, um die ausführbare Datei zu signieren.

SecretZweck
AZURE_CLIENT_IDApp-ID des Dienstprinzipals
AZURE_CLIENT_SECRETAnmeldedaten des Dienstprinzipals
AZURE_TENANT_IDAzure AD-Mandant
AZURE_SUBSCRIPTION_IDAzure-Abonnement
AZURE_CODE_SIGNING_ACCOUNTName des Trusted Signing-Kontos
AZURE_CODE_SIGNING_ENDPOINTTrusted Signing-Endpunkt-URL
AZURE_CODE_SIGNING_PROFILEName des Zertifikatprofils

So richten Sie es selbst ein: Erstellen Sie ein Azure-Konto, richten Sie eine Trusted Signing-Ressource ein, erstellen Sie ein Zertifikatprofil und registrieren Sie einen Dienstprinzipal mit den entsprechenden Berechtigungen. Microsofts Trusted Signing-Schnellstart führt durch den Prozess.

Wenn Sie dies überspringen: Windows-Builds funktionieren weiterhin, aber Ihre Benutzer werden vom gefürchteten blauen SmartScreen-Todesdialog begrüßt – Sie kennen ihn. Wir haben alle schon auf „Trotzdem ausführen” geklickt und auf das Beste gehofft. macOS- und Linux-Builds sind davon nicht betroffen.

Der integrierte Updater von Tauri überprüft, ob Updates vom echten Herausgeber stammen und nicht aus einer manipulierten Quelle. Wenn die App nach einer neuen Version sucht, lädt sie das Update herunter und verifiziert dessen Signatur anhand eines öffentlichen Schlüssels, der in die App eingebettet ist. Der private Schlüssel, der diese Signaturen erstellt, befindet sich in der CI.

SecretZweck
TAURI_PRIVATE_KEYEd25519-Privatschlüssel zum Signieren von Updates
TAURI_KEY_PASSWORDPasswort zum Schutz des Privatschlüssels

So richten Sie es selbst ein: Generieren Sie ein Schlüsselpaar mit pnpm tauri signer generate. Hinterlegen Sie den privaten Schlüssel und das Passwort in Ihren Repository-Secrets und den öffentlichen Schlüssel in tauri.conf.json unter plugins.updater.pubkey.

Wenn Sie dies überspringen: Die App lässt sich problemlos erstellen, aber der automatische Updater funktioniert nicht. Benutzer müssten neue Versionen manuell herunterladen.

Nach dem Erstellen der Release-Artefakte lädt die CI-Pipeline jede Binärdatei (.exe, .dmg, .deb, .rpm, .AppImage) zu VirusTotal für automatisierte Malware-Scans hoch. Dies ist ein Vertrauenssignal – Benutzer können überprüfen, dass die offiziellen Builds sauber sind.

SecretZweck
VIRUSTOTAL_API_KEYAPI-Schlüssel für die VirusTotal v3 API

So richten Sie es selbst ein: Erstellen Sie ein kostenloses VirusTotal-Konto und kopieren Sie Ihren API-Schlüssel aus Ihrem Profil.

Wenn Sie dies überspringen: Der VirusTotal-Scan-Schritt schlägt stillschweigend fehl. Builds werden weiterhin erfolgreich erstellt und normal veröffentlicht – Sie haben lediglich keine automatisierten Scan-Ergebnisse.

Die URL des Multiplayer-Relay-Servers wird zur Build-Zeit injiziert, damit die App weiß, wohin sie sich für Online-Spiele verbinden soll.

SecretZweck
VITE_RELAY_URLWebSocket-URL für den Multiplayer-Relay (z. B. wss://your-relay.fly.dev)

So richten Sie es selbst ein: Deployen Sie Ihren eigenen Relay-Server (siehe die Anleitung zur Einrichtung des Multiplayer-Servers) und setzen Sie diesen Wert auf dessen öffentliche URL.

Wenn Sie dies überspringen: Multiplayer funktioniert weiterhin, wenn Sie die Relay-URL zur Laufzeit in den App-Einstellungen festlegen. Dieses Secret setzt lediglich den Standardwert, damit Benutzer es nicht manuell konfigurieren müssen.

Secret-GruppeErforderlich fürKann man es überspringen?
Azure (7 Secrets)Signierte Windows-BuildsJa – Builds funktionieren, Benutzer erhalten SmartScreen-Warnung
Tauri (2 Secrets)Automatischer UpdaterJa – Builds funktionieren, kein Auto-Update
VirusTotal (1 Secret)Malware-Scan-BerichteJa – Builds funktionieren, keine Scan-Ergebnisse
Relay-URL (1 Secret)Standard-Multiplayer-ServerJa – Benutzer können es in den App-Einstellungen festlegen

Keines dieser Secrets ist erforderlich, um die App lokal zu erstellen und auszuführen. Sie sind nur für CI/CD-Release-Builds relevant.