#Requires -Version 5.1 param( [switch]$Purge ) $script:ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path Set-Location $script:ScriptDir . "$script:ScriptDir\lib\common.ps1" $ErrorActionPreference = "Stop" try { Test-Dependencies if ($Purge) { Write-Warn "Данные будут удалены. Gitea будет установлена заново." Confirm-OrExit "Продолжить?" docker compose down -v 2>$null if ($LASTEXITCODE -ne 0) { docker compose down } foreach ($vol in Get-VolumeNames) { docker volume rm $vol 2>$null } } else { Write-Warn "Контейнеры будут пересозданы. Данные сохранятся." Confirm-OrExit "Продолжить?" docker compose down } Import-EnvFile Write-Info "Загрузка образов..." docker compose pull Write-Info "Запуск Gitea..." docker compose up -d --force-recreate Start-Sleep -Seconds 5 docker compose ps $domain = if ($env:GITEA_DOMAIN) { $env:GITEA_DOMAIN } else { "localhost" } $httpPort = if ($env:GITEA_HTTP_PORT) { $env:GITEA_HTTP_PORT } else { "3000" } $sshPort = if ($env:GITEA_SSH_PORT) { $env:GITEA_SSH_PORT } else { "2222" } Write-Info "Переустановка завершена." Write-Info " Web: http://${domain}:${httpPort}" Write-Info " SSH: ssh://git@${domain}:${sshPort}" } catch { Write-Err $_.Exception.Message exit 1 }