mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 08:50:12 -08:00
147 lines
3.8 KiB
Markdown
147 lines
3.8 KiB
Markdown
# .env Backup Integration Guide
|
|
|
|
## Quick Setup Summary
|
|
|
|
Your .env backup system is now fully operational! Here's what was set up:
|
|
|
|
### ✅ What's Working
|
|
|
|
- **31 .env files** discovered across your Docker containers
|
|
- **30 files backed up** successfully to `/home/acedanger/.env-backup`
|
|
- **Private Gitea repository** configured and pushed successfully
|
|
- **Version control** with automatic commit messages and timestamps
|
|
- **Reference files** included (docker-compose.yml for context)
|
|
|
|
### 🔧 Integration Options
|
|
|
|
#### 1. Manual Backup (Current)
|
|
|
|
```bash
|
|
cd /home/acedanger/shell
|
|
./backup-env-files.sh # Regular backup
|
|
./backup-env-files.sh --dry-run # Preview changes
|
|
./backup-env-files.sh --list # Show all .env files
|
|
```
|
|
|
|
#### 2. Automated Daily Backup (Recommended)
|
|
|
|
Add to your crontab for daily backups at 2 AM:
|
|
|
|
```bash
|
|
# Daily .env backup at 2 AM
|
|
0 2 * * * /home/acedanger/shell/backup-env-files.sh >/dev/null 2>&1
|
|
```
|
|
|
|
#### 3. Integration with Existing Backup Scripts
|
|
|
|
The backup integrates with your existing backup system through:
|
|
|
|
- **Logs**: Written to `/home/acedanger/shell/logs/env-backup.log`
|
|
- **Completion**: Tab completion available via `env-backup-completion.bash`
|
|
- **Validation**: Use `validate-env-backups.sh` for integrity checks
|
|
|
|
### 🔐 Security Features
|
|
|
|
1. **Private Repository**: Only you have access
|
|
2. **Gitignore**: Excludes temporary files and logs
|
|
3. **SSH Authentication**: Uses your existing SSH key
|
|
4. **Local + Remote**: Dual backup (local git + remote Gitea)
|
|
|
|
### 📊 Backup Structure
|
|
|
|
```
|
|
~/.env-backup/
|
|
├── docker-containers/
|
|
│ ├── authentik/
|
|
│ │ └── .env.example
|
|
│ ├── caddy/
|
|
│ │ ├── .env
|
|
│ │ ├── .env.example
|
|
│ │ └── docker-compose.yml.ref
|
|
│ ├── database/
|
|
│ │ ├── .env
|
|
│ │ ├── .env.example
|
|
│ │ └── docker-compose.yml.ref
|
|
│ └── ... (all your containers)
|
|
├── README.md
|
|
└── .env-backup-config
|
|
```
|
|
|
|
### 🔄 Common Operations
|
|
|
|
#### Restore Files (if needed)
|
|
|
|
```bash
|
|
./backup-env-files.sh --restore
|
|
```
|
|
|
|
#### Force Backup (ignore unchanged files)
|
|
|
|
```bash
|
|
./backup-env-files.sh --force
|
|
```
|
|
|
|
#### Check What Would Change
|
|
|
|
```bash
|
|
./backup-env-files.sh --dry-run
|
|
```
|
|
|
|
### 🚨 Emergency Recovery
|
|
|
|
If you lose your filesystem:
|
|
|
|
1. **Clone the backup**: `git clone https://git.ptrwd.com/peterwood/docker-env-backup.git`
|
|
2. **Restore files**: `./backup-env-files.sh --restore`
|
|
3. **Recreate containers**: Your docker-compose.yml reference files are included
|
|
|
|
### 📈 Monitoring
|
|
|
|
- **Logs**: Check `/home/acedanger/shell/logs/env-backup.log`
|
|
- **Git History**: View changes with `git log` in backup directory
|
|
- **Validation**: Run `validate-env-backups.sh` for integrity checks
|
|
|
|
### 🔧 Maintenance
|
|
|
|
#### Weekly Validation (Recommended)
|
|
|
|
```bash
|
|
# Add to crontab for weekly validation
|
|
0 3 * * 0 /home/acedanger/shell/validate-env-backups.sh >/dev/null 2>&1
|
|
```
|
|
|
|
#### Cleanup Old Logs (Monthly)
|
|
|
|
The system automatically manages logs, but you can clean them manually if needed.
|
|
|
|
### 🆘 Troubleshooting
|
|
|
|
#### Push Fails
|
|
|
|
- Check SSH key: `ssh -T git@git.ptrwd.com`
|
|
- Verify repository exists and is private
|
|
- Check network connectivity
|
|
|
|
#### Files Not Found
|
|
|
|
- Verify Docker directory structure: `ls -la ~/docker/*/`
|
|
- Check file permissions
|
|
- Run with `--list` to see what's detected
|
|
|
|
#### Restore Issues
|
|
|
|
- Ensure target directories exist
|
|
- Check file permissions
|
|
- Use `--dry-run` first to preview
|
|
|
|
## Integration Complete! 🎉
|
|
|
|
Your .env files are now safely backed up and version controlled. The system will:
|
|
|
|
1. Track all changes to your .env files
|
|
2. Maintain a secure backup in your private Gitea
|
|
3. Provide easy restore capabilities
|
|
4. Integrate with your existing shell toolkit
|
|
|
|
Run `./backup-env-files.sh` regularly or set up the cron job for automatic backups!
|