Backup Plugin

Ok, I have now published my backup plugin with which I create my Joplin backups under Windows (But I hope it also runs under other operating systems).
The backups can be created manually or automatically by time interval.

If only one backup version is keeped, everything is stored in the backup folder.
If multiple versions are keeped, a date folder is created in which the backup is then stored.

What is backuped

  • Notebooks as JEX export (empty notbooks are not backed up)
  • The keymap-desktop.json
  • The userchrome.css
  • The userstyle.css

16 Likes

Just installed (Windows). Very cool!

When specifying backup path, the ability to browse for the path using Windows Explorer would be nice, but certainly not critical, and I guess that might be difficult to implement cross-platform?

For anyone wondering, the manual backup @JackGruber refers to is a menu option: Tools > Create Backup.

This would have to be provided by the API, as only the fields are displayed in the settings tab.

1 Like

Thanks (again) ! Another useful plugin !

Just tried it in my test version of Joplin (portable) and I have this error at the end of the process

Backup error
Error: ENOENT: no such file or directory, copyfile 'J:/Joplin/JoplinProfile/keymap-desktop.json' -> 'U:\JoplinBackupAuto/202101161656/keymap-desktop.json'

Most likely because I didn't remap any keyboard shortcuts, so the file doesn't exist.
Other than that, it works perfectly.

I did remap keyboard shortcuts, so I have this file and can confirm this plugin is backing it up.

Fixed in the nexed version.

Bugfix version v0.2.2 is released

  • Fix: Check if keymap-desktop.json exists
1 Like

@JackGruber

Just tried this out and it is really useful. Thanks for the skill and time taken to create it!

Suggestions to possibly consider for any later versions:

Have an option to have an "Export All" single jex archive rather than just by notebook?

Reasoning: In the case of a full restore for users with many notebooks, importing each notebook one by one could be quite a task.

As the keymap file is backed up also backup userstyle.css and userchrome.css, if present, from .config\joplin-desktop as well?

Reasoning: These files could be heavily customised and may have been created over a long time and / or cut & paste from many sources. Recreating from scratch could be difficult / time-consuming.

4 Likes

userstyle.css and userchrome.css are added in version v0.3.0 of the plugin

I have added this option, but it should be considered, then only everything can be re-imported and not a single notbook in which you may have deleted a note.

v0.3.0 (2021-01-17)

  • Fix: Backup not only the last 50 notebooks
  • Add: Backup userchrome.css and userstyle.css
  • Add: Option to create single file JEX for all notebooks
2 Likes

What happens when you restore single JEX archive into your active use profile? Do all the notebooks in JEX get recreated? What happens if existing notebooks in your profile share the same names as notebooks in JEX?

Every notebook is reimported an when it already exist a (1) is appended.

1 Like

@JackGruber

Thanks for the very fast update! I was not expecting that.

The single jex export may not be suitable for some but my backups are essentially insurance against total loss or for when I scrub everything down (including the sync target) and start again in order to clear out too many "orphaned" files. Being able to dump everything back in in one go is a great benefit compared to doing it notebook by notebook.

Also having the css files included means that all the main customisation files can now be protected.

I can't thank you enough for doing this. It's a feature I have always wanted Joplin to have.

I am now having a look at your Note Overview plugin which seems to be an clever way of maintaining automatically updated saved searches.

2 Likes

M2 and the AutoKey / AutoIt solution was ...

Oh yes, previously I did this via python and the API. But as a plugin this is 100 times better.
I keep track of projects and todos :slight_smile:

I have published a new version.

v0.4.0 (2021-01-21)

  • Add templates to backup
  • Optimize: Delete old backups at the end of the backup job

v0.3.1 (2021-01-21)

  • Fix #1: Unsupported characters in filename
3 Likes

Where do I set the backup path, etc.? I don't see any "setting" under Options/Plugins, or anywhere for that matter.

When I click "Create backup", I get "Backup Finished" then later a popup stating that there is no path set.

This is the first plugin I've tried, so I'm probably missing something basic in my understanding.

Tools > Options > Backup

The plugins that have user settings, such as Backup, are listed separately under Options. That is where you adjust settings, not in Options > Plugins.

1 Like

:+1: Thanks.

On my PC I currently use my AutoIt script to do a single JEX every time my portable Joplin exits.

So might you consider enhancing your plugin to:

  • Allow path to omit drive letter - use the one portable Joplin is on

  • If Single JEX is selected timestamp that and don’t create folders as there is no need

  • Have a checkbox to do an auto backup on exit (would be nice if this checked for changes and didn’t do it if no changes had been done?)

I'll take a look at what's there possibly.

There also other files like templates, css, keymap in this folder. This is why folders with timestamp are created.

For the plugins there is currently no possibility to get a close event. If this were possible, it could delay the termination extremely (For me, a backup takes about 9 minutes).
The option to create backup only when a newer change is done => Added to the list and I check it

Thanks for the quick reply.