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 | |
|---|---|
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.