Skip to main content

Rclone File-Based Backup Guide

Overview

The Rclone backup system provides simple, file-based backups using tar archives for full backups and rclone sync for incremental backups.

Backup Types

Full Backup (TAR Archive)

  • Schedule: Daily at 2:00 AM
  • Method: Creates compressed .tar.gz archive
  • Location: onedrive-donnyaw:16.Docker-Backup/Docusaurus/Full-Backup-Rclone/
  • Script: /home/rezriz/github/01-production/vps-management/backup-scripts/docusaurus-rclone/docusaurus-full-backup.sh

Incremental Backup (File Sync)

  • Schedule: Daily at 3:00 AM
  • Method: Syncs files to Current folder, archives changes
  • Location: onedrive-donnyaw:16.Docker-Backup/Docusaurus/Incremental-Rclone/
  • Script: /home/rezriz/github/01-production/vps-management/backup-scripts/docusaurus-rclone/docusaurus-incremental-backup.sh

Configuration

Source Directory

SOURCE_DIR="/opt/docker-data/apps/docusaurus/site"

Backed Up Content

The full backup includes:

  • blog/ - Blog posts
  • docs/ - Documentation files
  • src/ - Source code and components
  • static/ - Static assets (images, videos)
  • package.json - Dependencies
  • package-lock.json - Locked dependencies
  • docusaurus.config.js - Main configuration
  • sidebars.js - Sidebar configuration

Manual Backup

Run Full Backup

/home/rezriz/github/01-production/vps-management/backup-scripts/docusaurus-rclone/docusaurus-full-backup.sh

Run Incremental Backup

/home/rezriz/github/01-production/vps-management/backup-scripts/docusaurus-rclone/docusaurus-incremental-backup.sh

Restore from Full Backup

1. List Available Backups

rclone ls onedrive-donnyaw:16.Docker-Backup/Docusaurus/Full-Backup-Rclone/

2. Download Backup Archive

# Download latest backup
rclone copy onedrive-donnyaw:16.Docker-Backup/Docusaurus/Full-Backup-Rclone/docusaurus_full_YYYY-MM-DD_HH-MM-SS.tar.gz /tmp/

3. Extract Archive

# Create temporary extraction directory
mkdir -p /tmp/docusaurus-restore

# Extract the archive
cd /tmp/docusaurus-restore
tar -xzf /tmp/docusaurus_full_YYYY-MM-DD_HH-MM-SS.tar.gz

4. Restore to Live Server

# Stop the Docusaurus container (if running)
cd /opt/docker-data/apps/docusaurus
docker-compose down

# Backup current site (safety measure)
mv site site.backup.$(date +%Y%m%d_%H%M%S)

# Create new site directory
mkdir -p site

# Copy restored files
cp -r /tmp/docusaurus-restore/* /opt/docker-data/apps/docusaurus/site/

# Set correct permissions
chown -R rezriz:rezriz /opt/docker-data/apps/docusaurus/site

# Restart container
docker-compose up -d

# Verify site is working
docker-compose logs -f

Restore from Incremental Backup

1. List Current Backup

rclone lsd onedrive-donnyaw:16.Docker-Backup/Docusaurus/Incremental-Rclone/Current/

2. Download Current State

# Download entire current state
rclone sync onedrive-donnyaw:16.Docker-Backup/Docusaurus/Incremental-Rclone/Current/ /tmp/docusaurus-restore/ --progress

3. Restore to Live Server

# Stop container
cd /opt/docker-data/apps/docusaurus
docker-compose down

# Backup current site
mv site site.backup.$(date +%Y%m%d_%H%M%S)

# Restore from backup
mkdir -p site
cp -r /tmp/docusaurus-restore/* site/

# Set permissions
chown -R rezriz:rezriz site/

# Restart
docker-compose up -d

Restore Specific Files from Archive

Browse Archive History

# List archived versions
rclone lsd onedrive-donnyaw:16.Docker-Backup/Docusaurus/Incremental-Rclone/Archive/

Download Specific Version

# Download specific date's archive
rclone sync onedrive-donnyaw:16.Docker-Backup/Docusaurus/Incremental-Rclone/Archive/YYYY-MM-DD_HH-MM-SS/ /tmp/restore-archive/

Logs

View backup logs:

# Full backup log
tail -f /tmp/docusaurus-full.log

# Incremental backup log
tail -f /tmp/docusaurus-incremental.log

Troubleshooting

Backup Failed

  1. Check rclone configuration: rclone listremotes
  2. Verify OneDrive connection: rclone lsd onedrive-donnyaw:
  3. Check disk space: df -h
  4. Review logs in /tmp/docusaurus-*.log

Restore Failed

  1. Verify archive integrity: tar -tzf backup.tar.gz
  2. Check permissions: ls -la /opt/docker-data/apps/docusaurus/
  3. Ensure Docker is stopped before restore
  4. Check available disk space

Best Practices

  1. Test Restores Regularly - Verify backups can be restored
  2. Monitor Logs - Check cron logs for failures
  3. Verify OneDrive Space - Ensure sufficient cloud storage
  4. Keep Multiple Versions - Don't delete old backups immediately
  5. Document Changes - Note when making configuration changes