2625cf36d2
- Complete backup script for native Nextcloud (MySQL + files) - Systemd service and timer for daily automated backups at 2 AM - Backblaze B2 integration with secure credential storage - Incremental backup support with 30-day retention - zstd compression for 40-70% storage reduction - Comprehensive documentation and deployment guides - Successfully tested with first backup: 203MB DB + 1.3GB files - Cost-optimized: ~/bin/bash.01-0.02/month for 1.5GB data Deployment Details: - Installed B2 CLI via pipx - Created backup directories at /opt/nextcloud-backup/ - Configured systemd timer for daily execution at 2 AM - First backup verified in B2 bucket: jg-nextcloud - Automated scheduling enabled and tested Documentation includes: - Deployment report with complete setup details - Quick start guide for future deployments - Comprehensive technical reference - Troubleshooting procedures - File manifest and index
308 lines
9.0 KiB
Plaintext
308 lines
9.0 KiB
Plaintext
Nextcloud to Backblaze B2 Backup Solution - Complete File Manifest
|
|
===================================================================
|
|
|
|
TOTAL: 11 Files | ~65 KB of code + documentation | Ready to deploy
|
|
|
|
Documentation Files (Read These First!)
|
|
======================================
|
|
|
|
1. START_HERE.txt (New!)
|
|
- Quick orientation guide
|
|
- File overview
|
|
- Next steps
|
|
- Learning paths
|
|
- Q&A
|
|
Purpose: GET YOUR BEARINGS
|
|
|
|
2. INDEX.md
|
|
- File guide & organization
|
|
- Learning paths (beginner → advanced)
|
|
- Help matrix (which doc for which problem)
|
|
- File reference table
|
|
Purpose: NAVIGATE ALL FILES
|
|
|
|
3. README_NEXTCLOUD_BACKUPS.md
|
|
- Complete overview of solution
|
|
- Features at a glance
|
|
- System requirements
|
|
- How it works (visual)
|
|
- Cost estimates
|
|
- Installation summary
|
|
- Common commands
|
|
- Troubleshooting pointers
|
|
Purpose: UNDERSTAND EVERYTHING
|
|
|
|
4. BACKUP_QUICK_START.md
|
|
- TL;DR setup guide
|
|
- 5-minute installation
|
|
- Common commands
|
|
- File locations
|
|
- Restore shortcuts
|
|
- Troubleshooting quick reference
|
|
Purpose: GET RUNNING FAST
|
|
|
|
5. NEXTCLOUD_BACKBLAZE_SETUP.md
|
|
- Comprehensive reference manual
|
|
- Step-by-step installation
|
|
- Detailed backup strategy
|
|
- Usage patterns
|
|
- Complete restore procedures
|
|
- Extensive troubleshooting
|
|
- Advanced configuration
|
|
- Maintenance schedules
|
|
- Cost optimization
|
|
Purpose: DETAILED REFERENCE FOR EVERYTHING
|
|
|
|
6. DEPLOYMENT_CHECKLIST.md
|
|
- Pre-deployment checklist
|
|
- Installation verification
|
|
- Configuration steps
|
|
- Testing procedures
|
|
- Post-deployment checks
|
|
- Daily/weekly/monthly tasks
|
|
- Emergency contacts
|
|
Purpose: VALIDATE DEPLOYMENT
|
|
|
|
Script Files (Copy to System)
|
|
============================
|
|
|
|
7. install-nextcloud-backup.sh (EXECUTABLE)
|
|
- One-command automated installer
|
|
- Checks dependencies
|
|
- Creates directories
|
|
- Installs scripts & configs
|
|
- Provides step-by-step guidance
|
|
- Size: ~8 KB
|
|
Usage: sudo ./install-nextcloud-backup.sh
|
|
|
|
8. nextcloud-backup-to-backblaze.sh (EXECUTABLE)
|
|
- Main backup engine
|
|
- Database dump (MariaDB/PostgreSQL)
|
|
- Incremental/full backup logic
|
|
- File compression (zstd)
|
|
- B2 upload
|
|
- Retention management
|
|
- Complete logging
|
|
- Size: ~11 KB
|
|
Usage: /opt/nextcloud-backup/nextcloud-backup-to-backblaze.sh [incremental|full]
|
|
|
|
Configuration Files (Customize)
|
|
==============================
|
|
|
|
9. nextcloud-backup.env.template
|
|
- Configuration template
|
|
- Nextcloud paths
|
|
- Database settings
|
|
- Backup strategy
|
|
- Retention & compression
|
|
- Logging options
|
|
Size: ~2.8 KB
|
|
Location after install: /opt/nextcloud-backup/.env
|
|
|
|
systemd Integration Files (Deploy)
|
|
================================
|
|
|
|
10. nextcloud-backup.service
|
|
- systemd service definition
|
|
- Runs backup script
|
|
- Environment variables
|
|
- Resource limits
|
|
- Security hardening
|
|
- Error handling
|
|
Size: ~1 KB
|
|
Location: /etc/systemd/system/nextcloud-backup.service
|
|
|
|
11. nextcloud-backup.timer
|
|
- systemd timer definition
|
|
- Scheduling (default 2 AM daily)
|
|
- Persistent scheduling
|
|
- Randomized delays
|
|
Size: ~526 bytes
|
|
Location: /etc/systemd/system/nextcloud-backup.timer
|
|
|
|
Installation Locations
|
|
======================
|
|
|
|
After running installer (sudo ./install-nextcloud-backup.sh):
|
|
|
|
/opt/nextcloud-backup/
|
|
├── .env (your config)
|
|
├── nextcloud-backup-to-backblaze.sh (script)
|
|
├── .backups/
|
|
│ ├── logs/ (backup logs)
|
|
│ └── .backup-state.json (metadata)
|
|
└── [temp files deleted after backup]
|
|
|
|
/etc/nextcloud-backup/
|
|
└── b2-credentials.env (B2 API keys - SECRET!)
|
|
|
|
/etc/systemd/system/
|
|
├── nextcloud-backup.service
|
|
└── nextcloud-backup.timer
|
|
|
|
Quick Start Usage
|
|
=================
|
|
|
|
Read first: cat START_HERE.txt
|
|
Get running fast: cat BACKUP_QUICK_START.md
|
|
sudo ./install-nextcloud-backup.sh
|
|
Full reference: cat NEXTCLOUD_BACKBLAZE_SETUP.md
|
|
|
|
File Organization Chart
|
|
=======================
|
|
|
|
START_HERE.txt ← [orientation]
|
|
↓
|
|
├─→ README_NEXTCLOUD_BACKUPS.md [understanding]
|
|
│ ↓
|
|
│ └─→ BACKUP_QUICK_START.md [setup]
|
|
│ ↓
|
|
│ └─→ install-nextcloud-backup.sh [deploy]
|
|
│
|
|
├─→ NEXTCLOUD_BACKBLAZE_SETUP.md [reference]
|
|
│ ↓
|
|
│ └─→ [advanced config/troubleshooting]
|
|
│
|
|
└─→ DEPLOYMENT_CHECKLIST.md [validation]
|
|
↓
|
|
└─→ [confirm everything works]
|
|
|
|
Documentation Reading Times
|
|
============================
|
|
|
|
File Time Audience
|
|
─────────────────────────────────────────────────────────
|
|
START_HERE.txt 5 min Everyone
|
|
BACKUP_QUICK_START.md 5-10 Fast deployers
|
|
README_NEXTCLOUD_BACKUPS.md 10-15 Overview seekers
|
|
INDEX.md 10 Reference users
|
|
NEXTCLOUD_BACKBLAZE_SETUP.md 20-30 Deep divers
|
|
DEPLOYMENT_CHECKLIST.md 30 QA/validation
|
|
|
|
Recommended Reading Order
|
|
========================
|
|
|
|
Scenario 1 - Just Want It Running (15 min total):
|
|
1. START_HERE.txt (5 min)
|
|
2. BACKUP_QUICK_START.md (10 min)
|
|
3. Run installer
|
|
|
|
Scenario 2 - Want to Understand (45 min total):
|
|
1. START_HERE.txt (5 min)
|
|
2. README_NEXTCLOUD_BACKUPS.md (15 min)
|
|
3. BACKUP_QUICK_START.md (10 min)
|
|
4. Run installer
|
|
5. Test backup (15 min)
|
|
|
|
Scenario 3 - Production Deployment (1.5 hours):
|
|
1. All documentation
|
|
2. Run installer
|
|
3. Full configuration
|
|
4. Extensive testing
|
|
5. DEPLOYMENT_CHECKLIST.md
|
|
6. Validation & sign-off
|
|
|
|
Key Features Across Files
|
|
==========================
|
|
|
|
Feature Location
|
|
─────────────────────────────────────────────────────────
|
|
Automated backups All docs, script
|
|
Incremental backups Setup.md, script
|
|
Database backup All docs, script
|
|
Compression All docs, script
|
|
Retention Setup.md, script, template
|
|
systemd integration All docs, service, timer
|
|
Security Setup.md, script, service
|
|
Monitoring Setup.md, Quick.md
|
|
Restoration Setup.md, Quick.md
|
|
Troubleshooting Setup.md, Quick.md
|
|
Cost analysis README.md, Setup.md
|
|
Advanced config Setup.md
|
|
|
|
File Dependencies
|
|
=================
|
|
|
|
You MUST have:
|
|
✓ install-nextcloud-backup.sh (installer)
|
|
✓ nextcloud-backup-to-backblaze.sh (engine)
|
|
✓ nextcloud-backup.service (systemd)
|
|
✓ nextcloud-backup.timer (scheduler)
|
|
✓ nextcloud-backup.env.template (config)
|
|
|
|
You NEED documentation (pick one):
|
|
✓ BACKUP_QUICK_START.md (fast)
|
|
✓ README_NEXTCLOUD_BACKUPS.md (overview)
|
|
✓ NEXTCLOUD_BACKBLAZE_SETUP.md (complete)
|
|
|
|
Helpful to have:
|
|
✓ START_HERE.txt (navigation)
|
|
✓ INDEX.md (file guide)
|
|
✓ DEPLOYMENT_CHECKLIST.md (validation)
|
|
|
|
Security Files
|
|
==============
|
|
|
|
After installation, these files contain secrets:
|
|
- /etc/nextcloud-backup/b2-credentials.env
|
|
Permissions: 600 (root only)
|
|
Contents: B2 Account ID + Application Key
|
|
DO NOT: commit to git, share, or expose
|
|
|
|
Never stored in:
|
|
✓ Scripts (no hardcoded credentials)
|
|
✓ Logs (sanitized)
|
|
✓ Config templates (placeholders only)
|
|
✓ Git repository (should be gitignored)
|
|
|
|
Version Information
|
|
===================
|
|
|
|
Created: April 25, 2026
|
|
Tested with: Nextcloud 26+, Backblaze B2, Docker
|
|
Script size: ~600 lines of shell
|
|
Docs size: ~60 KB
|
|
Total size: ~65 KB (very lightweight!)
|
|
|
|
Compatibility
|
|
=============
|
|
|
|
Operating System: Linux (systemd required)
|
|
Nextcloud: Version 20+ (tested with 26+)
|
|
Database: MariaDB or PostgreSQL (auto-detected)
|
|
Docker: Required (running Nextcloud)
|
|
Shell: bash
|
|
CLI Tools: b2, docker-compose, jq, tar, zstd
|
|
|
|
Support & Help
|
|
==============
|
|
|
|
For questions, see:
|
|
- START_HERE.txt (quick answers)
|
|
- INDEX.md (find the right doc)
|
|
- Relevant .md file (detailed help)
|
|
- DEPLOYMENT_CHECKLIST.md (validation)
|
|
|
|
Common issues:
|
|
- Backup not running → see Quick.md troubleshooting
|
|
- B2 auth fails → see Setup.md B2 section
|
|
- Path issues → see Setup.md installation
|
|
- Restore needed → see Setup.md restore section
|
|
|
|
Ready to Deploy?
|
|
================
|
|
|
|
✅ All files present
|
|
✅ Scripts are executable
|
|
✅ Documentation is complete
|
|
✅ Configuration templates ready
|
|
✅ Installer works out of the box
|
|
|
|
Next step: Read START_HERE.txt or run installer!
|
|
|
|
───────────────────────────────────────────────────────
|
|
Generated: April 25, 2026
|
|
Manifest Version: 1.0
|
|
Status: Complete & Ready for Deployment
|
|
───────────────────────────────────────────────────────
|