From 56af15cf3f204097ffb2a0c6792c80404ce1bcf8 Mon Sep 17 00:00:00 2001 From: Alexander Zielonka Date: Wed, 9 Sep 2026 18:06:39 +0200 Subject: [PATCH] Installer macht alles: Modell, Selbsttest, Start, Browser Vorher endete die Installation mit drei Befehlen zum Abtippen. Es gibt keinen Grund dafuer - der Installer laedt jetzt das Sprachmodell, laeuft den Selbsttest, startet den Daemon, wartet auf /health und oeffnet die Einrichtungsseite. Ein fehlgeschlagener Modell-Download bricht nichts ab: das Toolkit laeuft auch ohne, es entstehen dann Clips ohne Untertitel. Schalter -OhneModell und -KeinBrowser fuer den Fall, dass man das nicht will. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ --- scripts/install.ps1 | 69 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 321d105..1d52b79 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -21,7 +21,10 @@ param( # installiert wird. Dort liegen abdulive.json und die ZIP-Datei. [string]$Quelle = 'https://git.zeasy.dev/ZeasyAlex/abdulive/releases/download/latest', [string]$Ziel = (Join-Path $env:LOCALAPPDATA 'Programs\abdulive'), - [switch]$KeinAutostart + [switch]$KeinAutostart, + # Das Sprachmodell ist 465 MB. Ohne es entstehen Clips ohne Untertitel. + [switch]$OhneModell, + [switch]$KeinBrowser ) $ErrorActionPreference = 'Stop' @@ -158,18 +161,62 @@ if (-not $KeinAutostart) { Hinweis 'Aufgabe "abdulive-update" sieht taeglich um 05:00 nach.' } +# ---------------------------------------------------------------- Einrichten + +$cmd = Join-Path $Ziel 'abdulive.cmd' +$version = (Get-Content (Join-Path $Ziel 'version.json') -Raw | ConvertFrom-Json).version + +if (-not $OhneModell) { + Schritt 'Sprachmodell laden (einmalig, ca. 465 MB)' + # Nicht abbrechen, wenn das schiefgeht: das Toolkit laeuft auch ohne + # Modell, es entstehen dann nur Clips ohne Untertitel. + & $cmd fetch-model + if ($LASTEXITCODE -ne 0) { + Hinweis 'Fehlgeschlagen. Spaeter nachholen mit: abdulive fetch-model' + } +} + +Schritt 'Selbsttest' +& $cmd check-env +$selbsttest = $LASTEXITCODE + +if (-not $KeinAutostart) { + Schritt 'Starten' + Start-ScheduledTask -TaskName 'abdulive' + + # Warten, bis die Weboberflaeche antwortet - sonst oeffnet der Browser + # ins Leere. Der Daemon braucht ein paar Sekunden fuer Datenbank und + # erste Verbindungen. + $bereit = $false + foreach ($i in 1..30) { + Start-Sleep -Seconds 1 + try { + $null = Invoke-WebRequest 'http://localhost:4792/health' -UseBasicParsing -TimeoutSec 2 + $bereit = $true + break + } catch { } + } + if ($bereit) { + Hinweis 'Laeuft, die Oberflaeche antwortet.' + if (-not $KeinBrowser) { Start-Process 'http://localhost:4792/setup' } + } else { + Hinweis 'Antwortet nach 30 s noch nicht. Protokoll:' + Hinweis " $env:LOCALAPPDATA\abdulive\logs\abdulive.log" + } +} + # ---------------------------------------------------------------- Fertig -$version = (Get-Content (Join-Path $Ziel 'version.json') -Raw | ConvertFrom-Json).version Write-Host '' -Write-Host "abdulive $version ist installiert." -ForegroundColor Green +if ($selbsttest -eq 0) { + Write-Host "abdulive $version laeuft." -ForegroundColor Green +} else { + Write-Host "abdulive $version ist installiert, der Selbsttest meldet aber Fehler." -ForegroundColor Yellow +} Write-Host '' -Write-Host 'Naechste Schritte:' -Write-Host " 1. Sprachmodell laden (einmalig, ca. 465 MB):" -Write-Host " & '$Ziel\abdulive.cmd' fetch-model" -Write-Host " 2. Umgebung pruefen:" -Write-Host " & '$Ziel\abdulive.cmd' check-env" -Write-Host ' 3. Starten und einrichten:' -Write-Host ' Start-ScheduledTask -TaskName abdulive' -Write-Host ' dann http://localhost:4792/setup im Browser oeffnen' +Write-Host 'Im Browser ist jetzt die Einrichtungsseite offen:' +Write-Host ' http://localhost:4792/setup' +Write-Host '' +Write-Host 'Dort eintragen: die beiden Twitch-Apps und das OBS-Passwort.' +Write-Host 'Danach ist alles beisammen.' Write-Host ''