Local Backup

approved

by GC Chen

Automatically creates a local backup of the vault.

153 stars57,506 downloadsUpdated 6d agoMIT
View on GitHub

Local Backup

中文说明

GitHub Github all releases GitLab latest release CodeQL

Automatically creates a local backup of the vault.

Features

  • Backup on startup
  • Backup on quit
  • Setup backups' lifecycle
  • Customize output path
  • Interval backups
  • Backup by calling archiver (7-Zip, WinRAR, Bandizip)
  • Retry after failures
  • Create specific file
  • Ignore folders and files using wildcards
  • Back up only selected folders and files using wildcards

How to use

Setup the plugin

General Settings

general-settings-1 general-settings-2

Hints
  1. Setup the output path depends on your computer platform.
  2. Setup the Windows and Unix output path while you using these two platforms.
  3. Included directories and Excluded directories both accept comma-separated values and support the same wildcard matching rules.
  4. If Included directories is empty, the whole vault is backed up before exclusions are applied.
  5. If Included directories is set, only matching folders and files are backed up, then Excluded directories can be used to remove matches from that result.

If you turn on interval backups, it is recommended to set a reasonable bakcup frequency, e.g. >=10min, this plugin costs CPU resources and Disk I/O resources, backup frequently might cause lagging.

Include and exclude examples
  • Back up only the Obsidian config folder: set Included directories to .obsidian
  • Back up only selected content: set Included directories to .obsidian, Templates, *.canvas
  • Back up the whole vault except some paths: leave Included directories empty and set Excluded directories to .git, .trash, node_modules, *.mp4
  • Combine both filters: set Included directories to .obsidian, Templates and Excluded directories to workspace.json

File Archiver Settings (Optional)

file-archiver-settings

Hints
  1. (Experimental) If you have a large size vault and Obsidian stucks on backing up, please try the experimental feature in setting page.

For user who owns a vault with large size, it is recommended to turn on External file archiver backup in setting page, the experimental feature of the latest version, then setup the rest of settings of archiver.

Run a local backup command

Command panel

Enter the command panel using Ctrl + P.

run-command

Create a specific backup

As you can see in the command panel screenshot above, you are available to create a specific backup file if you want to keep the file. The file created by this command would not delete by the plugin. But you have to name it different from the File name setting. (eg. File name: dev-Backup-%Y_%m_%d-%H_%M_%S, and your specific file name should not be the same format as File name).

Sidebar icon

Click the sidebar icon.

sidebar-icon

Installation

Install from plugin store

  • Search Local Backup at Obsidian Community Plugins and install it.
  • Enable Local Backup.
  • Setup Local Backup.
  • Apply settings or restart Obsidian.
  • Enjoy! 🎉

Manually installing the plugin

  • Copy over main.js, styles.css, manifest.json to your vault VaultFolder/.obsidian/plugins/your-plugin-id/.
  • Open Obsidian and enable Local Backup.
  • Follow the guiding above.

Contributing

Build

Code contributing is welcome! Just make a PR to master branch directly:)

  • Clone this repo.
  • Make sure your NodeJS is at least v16 (node --version).
  • npm i or yarn to install dependencies.
  • npm run dev to start compilation in watch mode.
  • npm run build to build the main.js in ./build.

Reference

Sponsor this project

You could consider buy me a coffee if the plugin saves your time!

https://paypal.me/gris0297

License

Obsidian Local Backup is licensed under the MIT license. Refer to LICENSE for more information.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.