param( [string]$Server = "ginnoir@valhalla", [string]$RemotePath = "/config/caddy/site/romhacks-wiki" ) $ErrorActionPreference = "Stop" $RepoRoot = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path) $Dist = Join-Path $RepoRoot "dist" if (-not (Test-Path $Dist)) { throw "dist/ does not exist. Run npm run build first." } if ([string]::IsNullOrWhiteSpace($RemotePath) -or -not $RemotePath.StartsWith("/config/caddy/site/")) { throw "RemotePath must be under /config/caddy/site/." } Write-Host "Preparing remote site directory $RemotePath ..." ssh $Server "rm -rf '$RemotePath' && mkdir -p '$RemotePath'" Write-Host "Syncing built site to ${Server}:$RemotePath ..." tar -C $Dist -cf - . | ssh $Server "tar -C '$RemotePath' -xf -" Write-Host "Reloading Caddy ..." ssh $Server "docker exec caddy caddy reload --config /etc/caddy/Caddyfile" Write-Host "Deployed ROM Hack Archive to https://romhacks.ginnoir.com"