Backup and Recovery
This guide covers backup strategies for your Palpo server to ensure data safety and quick recovery.
What to Backup
Critical Data
- PostgreSQL Database - Contains all user data, room state, messages, and server configuration
- Media Files - User uploads stored in the
space_pathdirectory - Configuration File - Your
palpo.tomlor equivalent - Signing Keys - Server signing keys (if stored separately)
Backup Priority
Database Backup
PostgreSQL Backup Methods
pg_dump (Recommended for small to medium servers)
Full backup:
With compression:
pg_basebackup (For larger databases)
Automated Backup Script
Create /etc/cron.daily/palpo-backup:
Make executable:
Media Backup
rsync Method
Initial full backup:
Incremental backup:
Remote Backup
To remote server:
To S3-compatible storage:
Configuration Backup
Keep your configuration in version control:
Recovery Procedures
Full Server Recovery
-
Install Palpo on the new server
-
Restore PostgreSQL database:
-
Restore media files:
-
Restore configuration:
-
Verify permissions:
-
Start Palpo:
Database-Only Recovery
Point-in-Time Recovery (PITR)
For production servers requiring minimal data loss:
-
Enable WAL archiving in PostgreSQL:
-
Create base backup:
-
Recovery to specific time:
Backup Verification
Test Your Backups Regularly
Database backup verification:
Automated verification script:
Backup Storage Recommendations
Local Storage
- Fast recovery
- Risk of loss if server fails
- Good for initial backup destination
Remote/Offsite Storage
- Protection against site failure
- Slower recovery
- Essential for disaster recovery
Cloud Storage
- Highly durable
- Pay for storage used
- Good for long-term archival
Recommended Strategy: 3-2-1 Rule
- 3 copies of data
- 2 different storage media
- 1 offsite copy