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
.mdand.mdxdocumentation files - Category folders and structure
- Images and assets referenced in docs
index.mdfiles 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
.mdfiles 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 filesrobots.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
Optional But Recommended
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
.gitdirectories (if present)
What NOT to Backup
1. Generated Files
node_modules/- Reinstall withnpm installbuild/- Regenerate withnpm 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:
- ✅
/docs/- All documentation - ✅
/blog/- All blog posts - ✅
docusaurus.config.js- Site configuration - ✅
sidebars.js- Navigation structure - ✅
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.jssidebars.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
| Component | Approximate 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
.mdand.mdxfiles backed up -
docusaurus.config.jspresent -
sidebars.jspresent -
package.jsonpresent -
/static/img/directory backed up - Custom components in
/src/backed up - Blog posts and
authors.ymlbacked 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
- Backup Everything - Storage is cheap, data loss is expensive
- Test Restores - Verify you can actually restore what you backed up
- Multiple Methods - Use both Rclone and Restic for redundancy
- Version Control - Consider using Git for
/docsand/blog - Document Custom Changes - Note any custom modifications
- Regular Audits - Periodically verify backup contents