zscripts-token-savers/zstop.ps1
KellyMichels 3546a12564 Evomedia.net Token Savers - initial public release
Config-driven PowerShell scripts to run infrastructure tasks (deploy, restart, backup, diagnostics) yourself instead of having an AI agent orchestrate them, to save agent tokens. Environment specifics live in zconfig.json (gitignored).
2026-07-15 21:33:22 -05:00

51 lines
1.6 KiB
PowerShell

# Evomedia.net Token Savers — https://github.com/kellymichels/zscripts-token-savers
# Created by Kelly Michels · dev@evomedia.net
# Licensed under the MIT License. See LICENSE.
# zstop.ps1 — stop docker compose stacks on the server without removing data or files.
#
# Usage:
# zstop <project> [<project> ...]
#
# Examples:
# zstop pyapp
# zstop viteapp nextapp edge
#
# Data volumes are preserved. Run zdeploy <project> to bring a stack back up.
#
param(
[Parameter(Position = 0, ValueFromRemainingArguments = $true)]
[string[]]$Projects = @()
)
$ErrorActionPreference = "Stop"
. (Join-Path $PSScriptRoot "ZHelpers.ps1")
Start-ZTracking
$cfg = Get-ZConfig
if ($Projects.Count -eq 0) {
$keys = (Get-ZProjectKeys) -join ', '
Write-Host ""
Write-Host "Usage: zstop <project> [<project> ...]" -ForegroundColor Yellow
Write-Host " Projects in zconfig.json: $keys" -ForegroundColor Gray
Stop-ZTracking; exit 1
}
foreach ($key in $Projects) {
$proj = Get-ZProject -Key $key
$composeDir = Get-RemoteComposeDir -Key $key
Write-Host "`n--- Stopping $($proj.label) ---" -ForegroundColor Cyan
$cmd = "cd $composeDir && sudo docker compose down 2>&1 || true"
ssh -o StrictHostKeyChecking=no -i $cfg.ec2.pemKey (Get-Ec2Target) $cmd
if ($LASTEXITCODE -ne 0) {
Write-Host " WARNING: docker compose down returned exit $LASTEXITCODE for $($proj.label)" -ForegroundColor Yellow
} else {
Write-Host " $($proj.label) stopped." -ForegroundColor Green
}
}
Write-Host "`nDone. Data volumes are intact. Run zdeploy <project> to restart." -ForegroundColor DarkGray
Stop-ZTracking