Skip to content

restsync

This project can be used to synchronize a folder between multiple hosts using a restic repo over SFTP as intermediate storage.

⚠ Caution: this project is highly experimental. Not suitable for production use.

⚠ Warning: this project does NOT implement any "local locking" system. Therefore, if you want to be sure that no applications are accessing your local data directory while synchronizing it (pulling or pushing), you should rely on some sort of external locking mechanism, such as mounting/unmounting your data directory with rclone mount, or serving it via rclone serve and stopping the server while synchronizing.

Usage

Important: this has been tested with restic v0.18.0 and Python 3.12.4 on Windows 10.

For instructions on how to use the main.py script, you can refer to its help message:

Bash
python3 main.py --help

In addition to that, there is an example plus.sh script, which is an experiment that extends (wraps) Restsync and adds additional features, such as using a directory for the metadata, support for running in Git Bash, and a very simple GPG integration. You can read it to get inspiration and develop your own customized solution.