73 lines
2.3 KiB
Markdown
73 lines
2.3 KiB
Markdown
# 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
|
|
``` |