-
-
Notifications
You must be signed in to change notification settings - Fork 4
Restoring Files
The BBS restore interface allows you to browse backup archives, search for files, and restore data to client machines or download files directly to your browser.
To access the restore interface:
- Navigate to the client detail page
- Click the Restore tab
The restore interface displays all available recovery points (backup archives) for the client's repositories.
Screenshot: Restore tab showing list of backup archives
The restore interface lists all backup archives across all repositories for the selected client. Each archive entry displays:
-
Archive name: Typically formatted as
{hostname}-{timestamp} - Repository: Which repository contains this archive
- Date/Time: When the backup was created
- File count: Total number of files in the archive
- Size: Total size of the backup (original, before deduplication)
- Duration: How long the backup took to complete
Archives are sorted by date, with the most recent backups at the top.
To browse the files in an archive:
- Click on the archive name or Browse Files button
- The file catalog browser opens
Screenshot: File browser showing directory tree with lazy-loading folders
The file browser provides:
- Tree view: Hierarchical display of directories and files
- Lazy loading: Directories load their contents on-demand when expanded (improves performance for large archives)
- File metadata: Size, modification time, permissions for each file
- Breadcrumb navigation: Quick navigation back to parent directories
- Checkbox selection: Select individual files or entire directories
- Click a folder to expand/collapse it
- Click breadcrumbs at the top to jump to parent directories
- Use checkboxes to select files and folders for restore
- Shift+Click to select a range of files (if supported)
For each file, the browser displays:
- Name: Filename
- Size: File size in human-readable format (KB, MB, GB)
- Modified: Last modification timestamp from the original backup
-
Mode: Unix permissions (e.g.,
-rw-r--r--,drwxr-xr-x) - Owner: User and group ownership (if preserved in backup)
To find specific files within a single archive:
- Open the archive in the file browser
- Use the Search box at the top
- Enter a filename or pattern (e.g.,
nginx.conf,*.log,database.sql) - Press Enter
The search filters the tree view to show only matching files and their parent directories.
Search tips:
- Search is case-insensitive by default
- Use wildcards:
*matches any characters,?matches single character - Search looks at the full path, not just filename
- Leave search empty and press Enter to reset the view
To search for a file across ALL archives in ALL repositories:
- Click the Global Search button on the Restore tab
- Enter a filename or pattern
- Click Search
The global search returns a list of matches showing:
- Filename and path
- Archive name containing the file
- Repository
- Backup date
- File size and modification time
This is useful when you:
- Don't know which backup contains the file you need
- Want to find when a file was last backed up
- Need to compare versions of a file across multiple backups
Click on any result to open that archive directly to the file's location.
BBS provides three restore methods:
Restores files to their original paths on the client machine.
How it works:
- Select files/directories in the file browser
- Click Restore to Original Location
- Confirm the operation
- BBS queues a restore job
- Agent executes
borg extractto restore files to their original paths
Important notes:
- Overwrites existing files without prompting
- Preserves permissions, ownership, and timestamps from the backup
- Requires root/sudo permissions on the client if restoring system files
- Best for disaster recovery scenarios
Use cases:
- Recovering accidentally deleted files
- Restoring after system failure
- Rolling back configuration changes
Restores files to a different path on the client machine.
How it works:
- Select files/directories in the file browser
- Click Restore to Alternate Directory
- Enter the target path (e.g.,
/tmp/restore,/home/user/recovered-files) - Click Confirm
- BBS queues a restore job with the alternate path
- Agent extracts files to the specified directory
Important notes:
- Original directory structure is preserved under the alternate path
- Example: restoring
/etc/nginx/nginx.confto/tmp/restorecreates/tmp/restore/etc/nginx/nginx.conf - Does NOT overwrite files at original locations
- Target directory is created if it doesn't exist
Use cases:
- Reviewing files before restoring to original location
- Extracting specific files for inspection
- Recovering data for comparison with current versions
Downloads selected files directly to your browser as a compressed tar archive.
How it works:
- Select files/directories in the file browser
- Click Download as tar.gz
- BBS creates a temporary restore job
- Agent extracts the selected files and creates a tar.gz archive
- Archive is uploaded to the BBS server
- Your browser downloads the archive
- Temporary archive is deleted after download
Important notes:
- Files are NOT restored to the client machine
- Download happens through your browser (may be slow for large selections)
- Preserves directory structure within the archive
- Useful for restoring to a different machine or inspecting files offline
Use cases:
- Restoring files to a different computer
- Downloading backups for analysis on your workstation
- Creating a local copy without modifying the client machine
Size limits:
- Practical limit depends on available disk space on BBS server and browser download capabilities
- For very large restores (>10GB), use "Restore to Alternate Directory" instead
When you initiate a restore (options 1 or 2), the following occurs:
- BBS creates a restore job in the
backup_jobstable with typerestore - Job includes the archive name, repository, file selections, and target path (if alternate)
- Job status is set to
queued - Job appears in the client's job queue
- On the next poll cycle (typically within 30 seconds), the agent receives the restore job
- Agent sets job status to
running
- Agent executes
borg extractwith the specified archive and file patterns - Files are extracted to the target location (original or alternate path)
- Permissions, ownership, and timestamps are restored
- Agent marks the job as
completed(orfailedif errors occurred) - Job duration and restored file count are recorded
- User is notified (if email notifications are enabled)
Typical Duration:
Restore duration depends on:
- Number of files being restored
- Total size of data
- Network speed (if repository is remote)
- Disk I/O speed on the client machine
Small restores (few files): Seconds Large restores (thousands of files or GB of data): Minutes to hours
To check the status of a restore job:
- Navigate to Dashboard → Recent Activity
- Or, navigate to the client detail page → Jobs tab (if available)
Restore jobs show:
- Status: Queued, Running, Completed, or Failed
- Progress: Percentage complete and files restored (updated during execution)
- Duration: Elapsed time
- Errors: Error messages if the job failed
- Cause: Agent is offline or not polling
- Solution: Check agent connectivity (see Agent-Setup#troubleshooting-agent-connectivity)
Common causes and solutions:
"Repository not found" or "Archive not found"
- Archive may have been deleted by retention policy
- Check that the repository still exists
- Verify the archive name is correct
"Permission denied" during extract
- Target directory is not writable
- Use alternate directory restore to a path the agent user has access to
- Or, ensure agent is running as root for system file restores
"Disk full" error
- Insufficient space on client machine
- Free up disk space or choose a different target directory
- Use "Download as tar.gz" to restore to a different machine
"Passphrase incorrect" error
- Repository passphrase in BBS doesn't match the actual repository
- Update the passphrase in the repository settings
- If passphrase is lost, recovery is not possible (borg encryption is unbreakable)
- Cause: Selection is too large for browser download
- Solution: Use "Restore to Alternate Directory" and then manually copy files from the client
- Issue: "Restore to Original Location" puts files at original paths, not where you might expect
- Solution: Use "Restore to Alternate Directory" if you want files in a specific location
- Verify the archive: Check the archive date to ensure it's the correct recovery point
- Review file selection: Double-check you've selected the right files/directories
- Test first: For critical restores, use "Restore to Alternate Directory" first to verify data integrity
- Monitor progress: Watch the job status for errors
- Don't interrupt: Avoid stopping the agent or client during restore
- Check logs: Review agent logs if issues occur
- Verify data: Check that restored files are complete and correct
- Test applications: If restoring config files or databases, test that applications work correctly
- Set permissions: If restoring as non-root, you may need to manually fix ownership
- Test restores regularly: Don't wait for a disaster to test your backups
- Practice recovery procedures: Ensure your team knows how to restore data
- Document custom restore processes: If you have complex restore requirements, document them
Previous: Backup-Plans | Repositories
📖 User Manual
Getting Started
Using BBS
- Dashboard
- Managing Clients
- Linux Agent Setup
- macOS Agent Setup
- Windows Agent Setup
- Repositories
- Storage Setup
- Backup Plans
- Restoring Files
- Database Backups
- Plugins
- Remote Storage
- S3 Offsite Sync
Monitoring
Administration
Reference