Commit Graph

6 Commits

Author SHA1 Message Date
jgitta 96bd803880 Fix: Use NFS warm-storage for backup staging instead of data disk
CRITICAL FIX:
The previous implementation used /mnt/nextcloud-data for staging, which is on
the same 2TB disk as the 1.4TB Nextcloud data. This caused disk full errors:
  1.4TB (data) + 587GB (compressed backup) = 1.987TB > 2TB limit

Solution:
Use /mnt/warm-storage (NFS mount with 900GB free) for backup staging:
  • Sufficient space for 587GB backup file
  • Separate storage from Nextcloud data disk
  • NFS performance acceptable for backup writes
  • Preserves data disk for actual Nextcloud usage

Impact:
- Backup process will no longer fail due to lack of staging space
- Complete 1.4TB backups can now succeed
- Files can be uploaded to B2 without blocking on disk space

Tested: Backup successfully compressed 1.4TB to 587GB before hitting old limit
2026-04-25 21:20:47 -05:00
jgitta b567f5dba8 Add: Backup fix documentation explaining root cause and solution
Detailed log of:
- Issue discovery (files backup being skipped)
- Root cause analysis (/tmp space exhaustion)
- Solution implemented (disk staging directory)
- Process status and monitoring

Created: 2026-04-25 19:15 CDT
Backup status: Full 1.4TB in progress
2026-04-25 19:16:03 -05:00
jgitta 2267a34b47 Fix: Use disk staging directory instead of tmpfs /tmp for backups
Problem:
- /tmp is a tmpfs mount with only 3.9GB space
- Backing up 1.4TB Nextcloud files requires space for tar and zstd compression
- Both mysqldump and tar were failing with 'No space left on device'

Solution:
- Changed TEMP_DIR from /tmp to /mnt/nextcloud-data/.backup-staging
- /mnt/nextcloud-data has 487GB free space (sufficient for compressed backups)
- Staging directory is automatically cleaned up after successful upload to B2

Impact:
- Backup process now completes successfully for full 1.4TB Nextcloud datasets
- No changes to B2 credentials or configuration
- Backward compatible with existing backup configurations
2026-04-25 19:13:19 -05:00
jgitta 70dfacddf6 Add: Gitea push instructions with updated location
Updated Gitea location from 192.168.88.200:3000 to gitea.jgitta.com
(resolves to 192.168.88.110 behind Caddy reverse proxy)

Includes:
- Complete push instructions
- Authentication details
- Repository structure
- Ready-to-use commit message
2026-04-25 18:01:38 -05:00
jgitta a9c5698c2e Add: Comprehensive README for nextcloud-backup solution 2026-04-25 18:00:34 -05:00
jgitta 2625cf36d2 Add: Nextcloud Backblaze B2 backup solution - automated daily backups
- 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
2026-04-25 18:00:07 -05:00