38 lines
1.6 KiB
PowerShell
38 lines
1.6 KiB
PowerShell
param(
|
|
[string]$BackupSource = "/mnt/user/backups/borg",
|
|
[string]$RestoreRoot = "/mnt/user/backups/restore-lab/vaultwarden",
|
|
[string]$ReportRoot = "/mnt/user/backups/restore-reports",
|
|
[string]$BorgPassphraseFile = "/mnt/user/appdata/secrets/borg_repo_passphrase.txt",
|
|
[switch]$WhatIf
|
|
)
|
|
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
Write-Output "Vaultwarden restore test scaffold"
|
|
Write-Output "BackupSource: $BackupSource"
|
|
Write-Output "RestoreRoot: $RestoreRoot"
|
|
Write-Output "ReportRoot: $ReportRoot"
|
|
Write-Output "BorgPassphraseFile: $BorgPassphraseFile"
|
|
Write-Output "Expected Borg source path inside archive: local/appdata/vaultwarden"
|
|
|
|
if ($WhatIf) {
|
|
Write-Output "Mode: WhatIf"
|
|
} else {
|
|
Write-Output "Mode: Scaffold only"
|
|
}
|
|
|
|
Write-Output ""
|
|
Write-Output "Planned steps:"
|
|
Write-Output "1. Prepare restore-lab target under /mnt/user/backups/restore-lab/vaultwarden"
|
|
Write-Output "2. Restore Vaultwarden data into an isolated test path"
|
|
Write-Output ' Template: borg extract "$BORG_REPO" "::ARCHIVE_NAME" local/appdata/vaultwarden'
|
|
Write-Output ' Passphrase source: $(cat /mnt/user/appdata/secrets/borg_repo_passphrase.txt)'
|
|
Write-Output "3. Start container restoretest-vaultwarden against test data only"
|
|
Write-Output "4. Run smoke checks against the test instance"
|
|
Write-Output "5. Write markdown report under /mnt/user/backups/restore-reports"
|
|
Write-Output "6. Send optional ntfy result"
|
|
Write-Output ""
|
|
Write-Output "This script is intentionally a scaffold only."
|
|
Write-Output "No restore, no container start, no file write is executed yet."
|