Skip to main content

What to Backup

Critical Files and Folders

This guide identifies which files and folders are essential to backup for complete Docusaurus site recovery.

Essential Directories

1. /docs Directory

Priority: 🔴 CRITICAL

Contains all documentation content.

/opt/docker-data/apps/docusaurus/site/docs/

Contents:

  • All .md and .mdx documentation files
  • Category folders and structure
  • Images and assets referenced in docs
  • index.md files for category pages

Why Critical: This is your primary content. Without it, your site has no documentation.

Backup Frequency: Every change (covered by incremental backups)


2. /blog Directory

Priority: 🟠 HIGH

Contains blog posts and author information.

/opt/docker-data/apps/docusaurus/site/blog/

Contents:

  • Blog post .md files
  • authors.yml - Author information
  • Blog images and assets

Why Important: Blog content and author profiles

Backup Frequency: Daily


3. /src Directory

Priority: 🟠 HIGH

Contains custom React components and pages.

/opt/docker-data/apps/docusaurus/site/src/

Contents:

  • /src/components/ - Custom React components
  • /src/pages/ - Custom pages
  • /src/css/ - Custom stylesheets
  • /src/theme/ - Theme customizations

Why Important: Custom functionality and styling

Backup Frequency: Daily


4. /static Directory

Priority: 🟡 MEDIUM

Contains static assets served directly.

/opt/docker-data/apps/docusaurus/site/static/

Contents:

  • /static/img/ - Images, logos, icons
  • /static/fonts/ - Custom fonts
  • /static/files/ - Downloadable files
  • robots.txt, CNAME, etc.

Why Important: Site assets and SEO files

Backup Frequency: Daily


Essential Configuration Files

1. docusaurus.config.js

Priority: 🔴 CRITICAL

Main Docusaurus configuration file.

/opt/docker-data/apps/docusaurus/site/docusaurus.config.js

Contains:

  • Site metadata (title, URL, favicon)
  • Theme configuration
  • Plugin configuration
  • Navbar and footer settings
  • SEO settings

Why Critical: Defines entire site structure and behavior


2. sidebars.js

Priority: 🔴 CRITICAL

Defines documentation sidebar structure.

/opt/docker-data/apps/docusaurus/site/sidebars.js

Contains:

  • Sidebar navigation structure
  • Category organization
  • Document ordering

Why Critical: Without it, navigation breaks


3. package.json

Priority: 🟠 HIGH

Defines project dependencies.

/opt/docker-data/apps/docusaurus/site/package.json

Contains:

  • Docusaurus version
  • Plugin dependencies
  • Custom scripts
  • Project metadata

Why Important: Needed to rebuild node_modules


4. package-lock.json

Priority: 🟡 MEDIUM

Locks exact dependency versions.

/opt/docker-data/apps/docusaurus/site/package-lock.json

Contains:

  • Exact dependency versions
  • Dependency tree

Why Important: Ensures consistent builds


1. .docusaurus Directory

Priority: 🟢 LOW (Generated)

Build cache and generated files.

/opt/docker-data/apps/docusaurus/site/.docusaurus/

Note: This is generated during build. Not critical to backup, but can speed up recovery.


2. node_modules Directory

Priority: 🟢 LOW (Generated)

Installed dependencies.

/opt/docker-data/apps/docusaurus/site/node_modules/

Note: Can be regenerated with npm install. Very large, not recommended to backup.


3. build Directory

Priority: 🟢 LOW (Generated)

Production build output.

/opt/docker-data/apps/docusaurus/site/build/

Note: Generated with npm run build. Not needed in backups.


Docker Configuration Files

1. docker-compose.yml

Priority: 🟠 HIGH

Docker container configuration.

/opt/docker-data/apps/docusaurus/docker-compose.yml

Contains:

  • Container settings
  • Port mappings
  • Volume mounts
  • Environment variables

Why Important: Needed to recreate container setup


Backup Coverage by Method

Rclone File-Based Backups

Full Backup Includes:

  • /blog
  • /docs
  • /src
  • /static
  • package.json
  • package-lock.json
  • docusaurus.config.js
  • docusaurus.config.js.backup*
  • sidebars.js

Excluded (Generated):

  • node_modules/
  • .docusaurus/
  • build/

Restic Deduplicated Backups

Includes Entire Site Directory:

/opt/docker-data/apps/docusaurus/site/

Automatically Excludes:

  • Cache files
  • Temporary files
  • .git directories (if present)

What NOT to Backup

1. Generated Files

  • node_modules/ - Reinstall with npm install
  • build/ - Regenerate with npm run build
  • .docusaurus/ - Regenerated on build

2. Temporary Files

  • .cache/
  • .tmp/
  • Log files

3. System Files

  • .DS_Store (macOS)
  • Thumbs.db (Windows)

Minimal Recovery Set

If storage is limited, these files are absolutely essential:

  1. /docs/ - All documentation
  2. /blog/ - All blog posts
  3. docusaurus.config.js - Site configuration
  4. sidebars.js - Navigation structure
  5. package.json - Dependencies

With just these, you can rebuild the site:

npm install
npm run build

Recovery Priority

Tier 1: Cannot Function Without

  • /docs/
  • docusaurus.config.js
  • sidebars.js

Tier 2: Site Works But Limited

  • /blog/
  • /src/
  • package.json

Tier 3: Nice to Have

  • /static/
  • package-lock.json
  • Custom configurations

Backup Size Estimates

Typical Docusaurus Site

ComponentApproximate Size
/docs/10-100 MB
/blog/1-10 MB
/src/1-5 MB
/static/50-500 MB
Config files< 1 MB
Total (without node_modules)60-600 MB
node_modules/200-800 MB

Your Current Site

# Check actual sizes
du -sh /opt/docker-data/apps/docusaurus/site/docs
du -sh /opt/docker-data/apps/docusaurus/site/blog
du -sh /opt/docker-data/apps/docusaurus/site/src
du -sh /opt/docker-data/apps/docusaurus/site/static
du -sh /opt/docker-data/apps/docusaurus/site --exclude=node_modules

Verification Checklist

Before considering a backup complete, verify:

  • All .md and .mdx files backed up
  • docusaurus.config.js present
  • sidebars.js present
  • package.json present
  • /static/img/ directory backed up
  • Custom components in /src/ backed up
  • Blog posts and authors.yml backed up

Quick Reference

Check What's Backed Up (Rclone)

# Full backup contents
rclone ls onedrive-donnyaw:16.Docker-Backup/Docusaurus/Full-Backup-Rclone/ | tail -1

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

Check What's Backed Up (Restic)

source /home/rezriz/github/01-production/vps-management/backup-scripts/docusaurus-restic-rclone/backup-config.sh
restic ls latest

Best Practices

  1. Backup Everything - Storage is cheap, data loss is expensive
  2. Test Restores - Verify you can actually restore what you backed up
  3. Multiple Methods - Use both Rclone and Restic for redundancy
  4. Version Control - Consider using Git for /docs and /blog
  5. Document Custom Changes - Note any custom modifications
  6. Regular Audits - Periodically verify backup contents