Last updated: 15 May 2026
Purpose: Central register of all backup systems, locations, schedules, and restore procedures.
| Detail |
Value |
| Primary backup |
Local File System storage module (Push mode) |
| Location |
/backups/wiki/ on host |
| Contents |
All pages as markdown files, synced in real-time |
| Schedule |
Real-time (every edit triggers a file write) |
| Daily archives |
_daily/ subfolder with tar.gz archives (auto-purged after 1 month) |
| Retention |
Live files: indefinite. Archives: 30 days |
| Restore |
Copy .md files back to Wiki.js via editor, or use import |
| Detail |
Value |
| Secondary backup |
PostgreSQL pg_dump |
| Location |
/root/backups/YYYY-MM-DD_HHMMSS/wikijs_db.sql.gz |
| Contents |
Full database (pages, users, settings, auth config, storage config) |
| Schedule |
Daily at 03:00 via /root/backup.sh |
| Retention |
30 days |
| Restore |
zcat backup.sql.gz \| docker exec -i 3ff9c011e629_gp_booking_postgres psql -U postgres -d wikijs |
| Detail |
Value |
| Backup type |
Docker volume tar archive |
| Location |
/root/backups/YYYY-MM-DD_HHMMSS/gp_booking_app_postgres_data.tar.gz |
| Contents |
Full PostgreSQL data directory |
| Schedule |
Daily at 03:00 via /root/backup.sh |
| Retention |
30 days |
| Restore |
Stop postgres container, replace volume content, restart |
| Detail |
Value |
| Backup type |
Directory tar archive |
| Location |
/root/backups/YYYY-MM-DD_HHMMSS/wikijs_data.tar.gz |
| Contents |
Uploaded files, cache, configuration |
| Schedule |
Daily at 03:00 via /root/backup.sh |
| Retention |
30 days |
| Detail |
Value |
| Backup type |
Directory tar archive |
| Location |
/root/backups/YYYY-MM-DD_HHMMSS/ |
| Contents |
nginx config, served static files |
| Schedule |
Daily at 03:00 via /root/backup.sh |
| Retention |
30 days |
| Detail |
Value |
| Status |
⚠️ No dedicated backup configured |
| Data |
PostgreSQL database + media files |
| Recommendation |
Add pg_dump + media backup to the daily schedule |
| Detail |
Value |
| Status |
⚠️ No dedicated backup configured |
| Data |
PostgreSQL database (gp_booking_postgres, database veripath) |
| Note |
Keycloak uses the shared PostgreSQL instance. Database-level backup covers it, but the Keycloak data directory (themes, providers) is not backed up separately. |
| Check |
What it does |
Schedule |
/usr/local/bin/check-backup-freshness.sh |
Checks all backup locations have recent content |
Daily at 07:00 via /etc/cron.d/wiki-backup-health |
defectdojo_nginx_internal healthcheck |
Container health via port 8080 |
Continuous (Docker healthcheck) |
Before making changes to any production system, run:
/usr/local/bin/preflight-backup.sh
This creates a timestamped Wiki.js database dump at /backups/wiki/pre_work/ and validates it.
After any Docker service restart, run:
/usr/local/bin/post-restart-verify.sh
This checks all containers, database connectivity, and service health.