Documentation: install/upgrade/uninstall guides + recipes incl. Zerto
Adds a docs/ folder under the repo root with full operator documentation aimed at sysadmins (not webhook developers). The Zerto pre/post script recipe is the canonical "why does this exist" walkthrough; the GitHub HMAC, AD password reset, and UI-on-desktop recipes round out common patterns. Pages: - README.md (index) - concepts.md (5-minute "what is a webhook" explainer) - installation.md (interactive + silent install) - upgrading.md (single-click upgrade flow + edge cases) - uninstalling.md (clean removal + wiping ProgramData) - runas-modes.md (Service / InteractiveUser / SpecificUser decision flow) - service-account-and-ad.md (gMSA setup, delegated rights) - network-and-security.md (bind addresses, allowlists, HTTPS, secret storage) - troubleshooting.md (symptom -> first check, common errors) - recipes/zerto-pre-post-scripts.md (canonical use case) - recipes/github-style-hmac.md (GitHub / Stripe-shaped webhooks) - recipes/ad-password-reset.md (gMSA-backed self-service reset) - recipes/ui-on-desktop.md (InteractiveUser pattern) Top-level README.md restructured to point at docs/ as the source of truth, dropping the duplicated installation snippets. Installer ships docs/ alongside the binaries so they're available offline at C:\Program Files\WebhookServer\docs\. GUI Help menu gains a "Documentation" item that opens the docs site in a browser. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# Uninstalling
|
||||
|
||||
## TL;DR
|
||||
|
||||
**Settings → Apps & features → Webhook Server → Uninstall.** Or right-click the **Uninstall Webhook Server** Start Menu shortcut.
|
||||
|
||||
Your endpoints, secrets, and logs in `C:\ProgramData\WebhookServer\` are preserved by default. To wipe those too, see [Below](#wiping-config-and-logs-too).
|
||||
|
||||
## What the uninstaller does
|
||||
|
||||
In order:
|
||||
|
||||
1. **Stops the service** (`net stop WebhookServer`).
|
||||
2. **Removes the service** registration via `uninstall-service.ps1` (which calls `sc.exe delete WebhookServer`).
|
||||
3. **Deletes** `C:\Program Files\WebhookServer\`.
|
||||
4. **Removes** the Start Menu and (if created) Desktop shortcuts.
|
||||
5. **Removes** the Programs and Features entry.
|
||||
|
||||
What it **does not** touch:
|
||||
|
||||
- `C:\ProgramData\WebhookServer\` (config, secrets, log files, auto-snapshots)
|
||||
- Any cert in your local cert store you bound HTTPS to
|
||||
- Domain accounts / gMSAs the service ran under
|
||||
- Endpoints' deployed scripts, if you stored them outside the install dir
|
||||
|
||||
## Wiping config and logs too
|
||||
|
||||
After running the uninstaller, also remove the data root:
|
||||
|
||||
```powershell
|
||||
# from elevated PowerShell
|
||||
Remove-Item -Recurse -Force "$env:ProgramData\WebhookServer"
|
||||
```
|
||||
|
||||
This deletes:
|
||||
|
||||
- `config.json` (with all your endpoints, encrypted secrets, settings)
|
||||
- `backups\` (all auto-snapshots — you can't restore from these once gone)
|
||||
- `logs\` (history of every webhook hit)
|
||||
|
||||
There's no recovery from this. If you might want to reinstall later with the same configuration, copy `config.json` to a safe location first. Note that **secrets in the saved config can only be decrypted on the same machine** (DPAPI LocalMachine scope) — you can move the file but the bearer/HMAC/RunAs passwords inside become unrecoverable on a different host.
|
||||
|
||||
## Silent uninstall
|
||||
|
||||
The Programs and Features uninstaller is `unins000.exe` in the install directory:
|
||||
|
||||
```powershell
|
||||
# from elevated PowerShell
|
||||
& "C:\Program Files\WebhookServer\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART
|
||||
```
|
||||
|
||||
Same set of preserved/removed paths as the interactive flow.
|
||||
|
||||
## Removing only the service, keeping the binaries
|
||||
|
||||
If you want to keep the GUI installed but stop running the service (rare, but useful if you're testing):
|
||||
|
||||
```powershell
|
||||
# from elevated PowerShell
|
||||
sc.exe stop WebhookServer
|
||||
sc.exe delete WebhookServer
|
||||
```
|
||||
|
||||
The GUI will show **Disconnected** since there's no service to talk to. Re-create the service later by running `install-service.ps1`:
|
||||
|
||||
```powershell
|
||||
& "C:\Program Files\WebhookServer\scripts\install-service.ps1" `
|
||||
-BinaryPath "C:\Program Files\WebhookServer\WebhookServer.Service.exe"
|
||||
```
|
||||
|
||||
## Edge cases
|
||||
|
||||
### "The service cannot be stopped because it has not been started."
|
||||
|
||||
Harmless. The uninstaller proceeds regardless.
|
||||
|
||||
### "Cannot delete: file in use"
|
||||
|
||||
A GUI window or other process is holding files in `C:\Program Files\WebhookServer\` open. Close everything and re-run the uninstaller. If that fails, reboot and re-run.
|
||||
|
||||
### Programs and Features entry remains after files are gone
|
||||
|
||||
If you deleted `C:\Program Files\WebhookServer\` manually before running the uninstaller, `unins000.exe` is gone too and Programs and Features can't run it. Remove the orphan entry by deleting its registry key:
|
||||
|
||||
```powershell
|
||||
# from elevated PowerShell - dry run to confirm the key exists
|
||||
Get-Item 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\{6E3B3C1A-9C20-4F50-B6A8-2B6D6D7E2F11}_is1' -ErrorAction SilentlyContinue
|
||||
# if it shows up, delete it:
|
||||
Remove-Item 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\{6E3B3C1A-9C20-4F50-B6A8-2B6D6D7E2F11}_is1' -Recurse
|
||||
```
|
||||
Reference in New Issue
Block a user