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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
This commit is contained in:
ZeasyAlexandClaude Opus 5 committed 2026-09-09 18:06:39 +02:00
1 parent 92f14eaa62
commit 56af15cf3f
1 file changed
+58 -11
+58 -11
View File
@@ -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 ''