Make project docs and integration test generic
This commit is contained in:
@@ -8,7 +8,7 @@ The application is intentionally small:
|
||||
- Vue 3 + TypeScript + Tailwind frontend, compiled once into `static/`
|
||||
- SQLite for all runtime configuration and state
|
||||
- `pvesh` for Proxmox API access
|
||||
- `rclone copyto`, `rclone lsjson`, and `rclone deletefile` for exact remote objects
|
||||
- `rclone copyto`, `rclone lsjson`, `rclone deletefile`, and `rclone rmdir` for exact remote objects and empty per-backup folders
|
||||
- systemd services, no Docker
|
||||
|
||||
## Layout
|
||||
@@ -103,7 +103,7 @@ Retention cleanup runs in two places:
|
||||
- immediately after a backup completes for that job;
|
||||
- periodically from the worker service, once per hour, so changed rules and day-based expiry are enforced even if no new backup runs.
|
||||
|
||||
Remote deletion uses exact-object `rclone deletefile` calls for backup records already known in SQLite.
|
||||
Remote deletion uses exact-object `rclone deletefile` calls for backup records already known in SQLite, then best-effort `rclone rmdir` cleanup for the empty per-backup folder.
|
||||
|
||||
## Testing
|
||||
|
||||
@@ -121,13 +121,39 @@ cd /opt/pve-cloud-backup/frontend
|
||||
npm run build
|
||||
```
|
||||
|
||||
Manual integration test for the provided Proxmox test target:
|
||||
Manual integration test against a real Proxmox guest:
|
||||
|
||||
```bash
|
||||
API_URL=http://127.0.0.1:8080 /opt/pve-cloud-backup/scripts/integration-test-adguard.sh
|
||||
INTEGRATION_VMID=<vmid> API_URL=http://127.0.0.1:8080 /opt/pve-cloud-backup/scripts/integration-test.sh
|
||||
```
|
||||
|
||||
This queues a backup for guest `adguard` / VMID `110` using storage `hitachi` and dump path `/mnt/pve/hitachi/dump`. Expected archive size is approximately 250 MB. The script is explicitly for manual integration testing and does not hardcode these values into normal app behavior.
|
||||
Optional environment variables:
|
||||
|
||||
- `INTEGRATION_GUEST_NAME` to assert the discovered guest name before queueing.
|
||||
- `INTEGRATION_STORAGE` to override the configured Proxmox backup storage.
|
||||
- `INTEGRATION_LOCAL_BACKUP_DIR` to assert the configured local dump directory.
|
||||
- `INTEGRATION_CRON` to choose the created job schedule. Default: `0 3 * * *`.
|
||||
- `INTEGRATION_RUN_NOW=0` to create the job without immediately queueing it.
|
||||
|
||||
The script creates a disabled backup job and, by default, queues it once. Only run it when you intentionally want a real Proxmox backup and rclone upload.
|
||||
|
||||
## Updates
|
||||
|
||||
After pulling new code, apply it with:
|
||||
|
||||
```bash
|
||||
cd /opt/pve-cloud-backup
|
||||
git pull --ff-only
|
||||
./scripts/apply-update.sh
|
||||
```
|
||||
|
||||
For a stricter update that runs backend tests before restarting services:
|
||||
|
||||
```bash
|
||||
RUN_TESTS=1 ./scripts/apply-update.sh
|
||||
```
|
||||
|
||||
The update script backs up `data/app.db`, rebuilds dependencies/assets, runs migrations, installs service units, restarts services, and checks API health.
|
||||
|
||||
## Uninstall
|
||||
|
||||
|
||||
Reference in New Issue
Block a user