Nextcloud backup target
Pushes a zip of this tenant's App_Data/<tenant>/ tree to your configured Nextcloud folder over WebDAV, and pulls a chosen zip back for a staged restore. All calls require your superuser Bearer token; a normal admin cannot see or run this page.
App_Data/<tenant> is renamed aside (never overwritten in place) so a rollback is always one rename away, but you still want to know what you are doing.Configuration
Set these keys in App_Data/<tenant>/appsettings.json:
Backup:Enabled: "true" or "false"Backup:NextcloudUrl: e.g. https://nc.aloaha.com:8443/remote.php/dav/files/<user>/Backup:NextcloudUsername: the Nextcloud user (or app-user)Backup:NextcloudPassword: Nextcloud App Password recommendedBackup:NextcloudFolder: e.g. codeb-backups/<tenant>Backup:RetentionDays: optional integer; 0 = keep all
Backup now
Creates a fresh zip and uploads it to your Nextcloud backup folder. Excludes _backup-staging/, logs/, appsettingsbackup/, recordings/ (call audio media — the metadata JSONs are still included), and *.backup / *.tmp* scratch files.
Restore from backup
Two-step flow. Download stages the zip locally at App_Data/<tenant>/_backup-staging/ so you can inspect it. Apply extracts it over the live folder after renaming the current state aside to App_Data/<tenant>.pre-restore-<ts>. Nothing is overwritten in place.