Add comprehensive backup system for Gitea database
This commit is contained in:
73
BACKUP-README.md
Normal file
73
BACKUP-README.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# Gitea Backup Strategy
|
||||
|
||||
This document outlines the backup strategy for your Gitea installation, focusing on ensuring your database is always backed up in at least one place.
|
||||
|
||||
## Backup Methods
|
||||
|
||||
This setup provides two complementary backup methods:
|
||||
|
||||
### 1. PostgreSQL Database Dumps
|
||||
|
||||
Database dumps are SQL files containing all your database data. These are the most reliable way to back up a PostgreSQL database.
|
||||
|
||||
- **Script**: `backup-gitea-db.ps1`
|
||||
- **Output**: SQL dumps in the `backups` directory, compressed as ZIP files
|
||||
- **Retention**: Keeps the last 10 backups by default
|
||||
|
||||
### 2. Docker Volume Backups
|
||||
|
||||
This method backs up the entire PostgreSQL data volume, which includes all database files.
|
||||
|
||||
- **Script**: `backup-volume.ps1`
|
||||
- **Output**: TAR archives in the `backups` directory, compressed as ZIP files
|
||||
- **Retention**: Keeps the last 5 volume backups by default
|
||||
|
||||
## Automated Backups
|
||||
|
||||
You can set up automated daily backups using the included script:
|
||||
|
||||
```powershell
|
||||
.\schedule-backup.ps1
|
||||
```
|
||||
|
||||
This creates a Windows Scheduled Task that runs the database backup script daily at 3 AM.
|
||||
|
||||
## Restoring from Backups
|
||||
|
||||
### Restoring from a Database Dump
|
||||
|
||||
```powershell
|
||||
.\restore-gitea-db.ps1 -BackupFile "backups\gitea-db-backup-2025-03-01_10-30-00.sql.zip"
|
||||
```
|
||||
|
||||
### Restoring from a Volume Backup
|
||||
|
||||
```powershell
|
||||
.\restore-volume.ps1 -BackupFile "backups\postgres-volume-backup-2025-03-01_10-30-00.tar.zip"
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Regular Backups**: Run backups at least daily
|
||||
2. **Multiple Backup Methods**: Use both database dumps and volume backups
|
||||
3. **Off-site Storage**: Copy your backups to an external drive or cloud storage
|
||||
4. **Test Restores**: Periodically test restoring from your backups
|
||||
5. **Version Control**: Keep your Gitea configuration files in version control
|
||||
|
||||
## Important Notes
|
||||
|
||||
- **Never** run `docker-compose down -v` unless you have a recent backup
|
||||
- When upgrading Gitea, always create a backup first
|
||||
- The database volume (`postgres-data`) persists even when containers are stopped or removed, but can be lost if explicitly deleted
|
||||
|
||||
## Manual Backup Commands
|
||||
|
||||
If you need to create a backup manually:
|
||||
|
||||
```powershell
|
||||
# Database dump
|
||||
.\backup-gitea-db.ps1
|
||||
|
||||
# Volume backup
|
||||
.\backup-volume.ps1
|
||||
```
|
||||
Reference in New Issue
Block a user