2.4 KiB
2.4 KiB
quinn DB Backups
Hourly off-host backups of both production SQLite databases run as systemd user timers on black.
Locations
| Database | VPS path | Backup dir on black |
|---|---|---|
quinn-my.db |
/opt/quinn-my-api/data/ |
/bigdisk/lilith-platform.live/backups/quinn-my/ |
quinn.db (admin) |
/var/www/quinn.admin/data/ |
/bigdisk/lilith-platform.live/backups/quinn-admin/ |
Historic snapshots prior to 2026-04-18 also live in ~/backups/quinn-my/ on black (preserved, not deleted).
Script
/home/lilith/bin/backup-quinn-db.sh <db-name> <remote-src-dir> <remote-files>
Uses ~/.ssh/quinn-ci-deploy to connect as root to 89.127.233.145. Archives WAL and SHM files alongside the main DB file. Fails loudly and removes the destination file if the archive is empty.
Retention policy
| Age | Policy |
|---|---|
| < 24 h | Keep all |
| 24 h – 30 d | One snapshot per calendar day |
| 30 d – 365 d | One snapshot per calendar month |
| > 365 d | Deleted |
Systemd units (on black, user scope)
~/.config/systemd/user/backup-quinn-my.{service,timer}
~/.config/systemd/user/backup-quinn-admin.{service,timer}
Both timers fire OnCalendar=hourly with RandomizedDelaySec=5min.
Check status:
ssh black 'systemctl --user status backup-quinn-my.timer backup-quinn-admin.timer'
ssh black 'journalctl --user -u backup-quinn-my.service -n 20'
ssh black 'journalctl --user -u backup-quinn-admin.service -n 20'
Restore procedure
quinn-my.db onto VPS
SNAPSHOT=/bigdisk/lilith-platform.live/backups/quinn-my/quinn-my-YYYYMMDD-HHMMSS.tar.gz
ssh black "cat ${SNAPSHOT}" | ssh quinn-vps \
"systemctl stop quinn-my-api && tar -xzf - -C /opt/quinn-my-api/data && systemctl start quinn-my-api"
quinn.db (admin) onto VPS
SNAPSHOT=/bigdisk/lilith-platform.live/backups/quinn-admin/quinn-admin-YYYYMMDD-HHMMSS.tar.gz
ssh black "cat ${SNAPSHOT}" | ssh quinn-vps \
"systemctl stop quinn-admin-api && tar -xzf - -C /var/www/quinn.admin/data && chown -R www-data:www-data /var/www/quinn.admin/data && systemctl start quinn-admin-api"
Verify integrity without extracting
ssh black "gzip -t /bigdisk/lilith-platform.live/backups/quinn-admin/quinn-admin-YYYYMMDD-HHMMSS.tar.gz && echo ok"
List contents of a snapshot
ssh black "tar -tzf /bigdisk/lilith-platform.live/backups/quinn-my/quinn-my-YYYYMMDD-HHMMSS.tar.gz"