(a) Docs: reserve tools/ scripts/ resources/ as LibrePortal folder names (apps must not bind-mount to them); document resources/ as the home for nest-able data AND for .sh payloads that execute on load (vs scripts/ for sourced functions); document the backup model (what's captured vs reproducible). (b) System-config backup so a bare-metal restore is self-sufficient — this is why the system root is its own tree. New scripts/backup/system/backup_system.sh: - backupSystemConfig snapshots <system>/configs (global settings, WebUI creds, and the BACKUP-LOCATION creds — otherwise the keys to reach your own backups live only on the box) to every enabled location. Lightweight static-dir snapshot — it does NOT go through backupAppStart (no containers to quiesce / DBs to dump). - restic adapter resticBackupSystemToLocation (tag system=config) + dispatcher engineBackupSystem; restore via resticRestoreSystemLatest / engineRestoreSystemLatest + backupRestoreSystemConfig (restores to a STAGING dir — never auto-overwrites live config). - backupAllApps runs it after the app loop. WebUI exclusion: backupAllApps skips the 'libreportal' app — its frontend + generated JSON regenerate, and its only state (the login) is in the system config now captured above. Nothing in its data dir warrants a snapshot. Verified with stubs: app loop skips libreportal + invokes the system backup; the system backup dispatches to both locations; backup/restore function names pair with the dispatcher. NOTE: restic-only (the sole live engine adapter); end-to-end repo round-trip still needs a live box before being relied on. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: librelad <librelad@digitalangels.vip>
55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This file is auto-generated by generate_arrays.sh
|
|
# Do not edit manually - run './scripts/source/files/generate_arrays.sh run' to regenerate
|
|
|
|
backup_scripts=(
|
|
"backup/app/backup_app_all.sh"
|
|
"backup/app/backup_app_delete.sh"
|
|
"backup/app/backup_app_hooks.sh"
|
|
"backup/app/backup_app_schedule.sh"
|
|
"backup/app/backup_app_start.sh"
|
|
"backup/app/backup_schedule_all.sh"
|
|
"backup/db/backup_db.sh"
|
|
"backup/engine/backup_ssh.sh"
|
|
"backup/engine/borg_backup.sh"
|
|
"backup/engine/borg_check.sh"
|
|
"backup/engine/borg_env.sh"
|
|
"backup/engine/borg_forget.sh"
|
|
"backup/engine/borg_init.sh"
|
|
"backup/engine/borg_install.sh"
|
|
"backup/engine/borg_restore.sh"
|
|
"backup/engine/borg_snapshots.sh"
|
|
"backup/engine/engine_dispatch.sh"
|
|
"backup/engine/kopia_backup.sh"
|
|
"backup/engine/kopia_check.sh"
|
|
"backup/engine/kopia_env.sh"
|
|
"backup/engine/kopia_forget.sh"
|
|
"backup/engine/kopia_init.sh"
|
|
"backup/engine/kopia_install.sh"
|
|
"backup/engine/kopia_restore.sh"
|
|
"backup/engine/kopia_snapshots.sh"
|
|
"backup/engine/restic_backup.sh"
|
|
"backup/engine/restic_check.sh"
|
|
"backup/engine/restic_dump.sh"
|
|
"backup/engine/restic_env.sh"
|
|
"backup/engine/restic_forget.sh"
|
|
"backup/engine/restic_init.sh"
|
|
"backup/engine/restic_install.sh"
|
|
"backup/engine/restic_restore.sh"
|
|
"backup/engine/restic_snapshots.sh"
|
|
"backup/files/backup_files.sh"
|
|
"backup/locations/location_add.sh"
|
|
"backup/locations/location_loader.sh"
|
|
"backup/locations/location_migrate.sh"
|
|
"backup/locations/location_paths.sh"
|
|
"backup/locations/location_remove.sh"
|
|
"backup/locations/location_ssh.sh"
|
|
"backup/manifest/manifest_collect.sh"
|
|
"backup/manifest/manifest_read.sh"
|
|
"backup/manifest/manifest_write.sh"
|
|
"backup/system/backup_system.sh"
|
|
"backup/verify/backup_verify.sh"
|
|
|
|
)
|