Files
shell/docs/env-backup-integration-guide.md
Peter Wood 20737f7872 Add .env backup system to crontab and create integration guide
- Added daily .env backup at 02:00 with proper logging
- Added weekly .env validation at 08:30 on Sundays
- Created comprehensive integration guide
- Integrated with existing crontab management system
- Follows established logging pattern with syslog tags
2025-05-29 07:08:55 -04:00

3.8 KiB

.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)

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

Add to your crontab for daily backups at 2 AM:

# 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)

./backup-env-files.sh --restore

Force Backup (ignore unchanged files)

./backup-env-files.sh --force

Check What Would Change

./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

# 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!