Move the admin and site menu entries into a shared 'Backups' sidebar category
(created idempotently by each sibling plugin) with a distinct icon per engine,
instead of a top-level link. Each plugin tags its category+link lines with an
apiscp-borg marker so its uninstaller removes only its own, leaving the shared
category for any other backup plugin still installed.
- Engine: same targeted-run fix as apiscp-kopia (env BACKUP_SITES/SYSTEM/PATHS/
DATABASES now override the sourced config, so `run --site` scopes correctly
instead of backing up every site).
- docs/REFERENCE.md: exhaustive reference (every command, verb, config key,
installer, automation, both GUIs, security model, recovery), plus a README
Documentation section.
- borg-apiscp-repo: status/init/check-access/gen-passphrase/key-status/
backup-key/key-bundle/config-get/set/sites/run/running/prune/maintenance
(borg compact)/verify (borg check [--data])/set-schedule/notify-test/
list-databases. Config whitelist + single-quote escaping + newline guard,
mirroring apiscp-kopia's security boundary.
- borg-apiscp-restore: list/list-json/site (+ --subpath)/account/system/
restore-db/import-db and site-owner variants (owner-files/-account/
-restore-db/-import-db) that land under /.borg-restore chowned to the owner.
All restores are `borg extract` with computed --strip-components to rebase
archived paths under a staging target; ACLs/xattrs come back natively.
apiscp-borg is a sibling of apiscp-kopia built on BorgBackup. This first
milestone lands the project scaffold and the Layer 1 engine:
- borg-apiscp-backup: per-site named archives (siteN-shadow/info/db), fresh
per-site DB dumps via ApisCP site-context export, system + custom archives,
borg prune retention per prefix, Prometheus metrics, email notifications.
- apiscp-borg-common.sh: logging, mail, site/owner helpers.
- config example, systemd service+timer, install.sh, README, DESIGN.
Borg preserves POSIX ACLs and xattrs natively, so (unlike the kopia engine) no
metadata sidecar is required; DESIGN.md records how Borg reshapes the design.
Repository/restore tools, Layer 2 panel integration, hooks, uninstall, and the
full reference are the next milestones.