56 lines
1.5 KiB
PowerShell
56 lines
1.5 KiB
PowerShell
#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
|
|
}
|