Files
llm/scripts/deploy_model_chat_ui.ps1
T

44 lines
1.6 KiB
PowerShell

param(
[string]$DockerHost = "ssh://docker-gpu.cin.su",
[string]$SshTarget = "docker-gpu",
[string]$ComposeFile = "core/deploy/docker-gpu/model-chat/compose.yaml",
[string]$EnvFile = "core/deploy/docker-gpu/model-chat/.env.windows-z.example",
[string]$RemoteArchive = "C:\ProgramData\LLM\model-chat-app.zip",
[string]$RemoteAppDir = "Z:\LLM\model-chat-app",
[switch]$ConfigOnly,
[switch]$ArchiveOnly,
[switch]$NoFirewall
)
$ErrorActionPreference = "Stop"
. (Join-Path $PSScriptRoot "app_archive.ps1")
if ($ConfigOnly) {
docker --host $DockerHost compose --env-file $EnvFile -f $ComposeFile config | Out-Host
exit 0
}
$archive = New-AppArchive
Test-AppArchive -Archive $archive
if ($ArchiveOnly) {
Write-Host "Archive only: $archive"
exit 0
}
docker --host $DockerHost compose --env-file $EnvFile -f $ComposeFile config | Out-Host
Sync-AppDirectory -SshTarget $SshTarget -RemoteArchive $RemoteArchive -RemoteAppDir $RemoteAppDir -Archive $archive
docker --host $DockerHost rm -f llm-model-chat-ui 2>$null | Out-Null
docker --host $DockerHost compose --env-file $EnvFile -f $ComposeFile up -d
if (-not $NoFirewall) {
$firewallScript = @"
if (-not (Get-NetFirewallRule -DisplayName 'LLM Model Chat UI 8765' -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -DisplayName 'LLM Model Chat UI 8765' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8765 -Profile Any | Out-Null
}
"@
Invoke-RemotePowerShell -SshTarget $SshTarget -Script $firewallScript
}
Write-Host "Model chat UI: http://192.168.220.91:8765/tools/model-chat/"