44 lines
1.6 KiB
PowerShell
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/"
|