I made a small tool called osync, a setup that uses Git and rsync to sync and back up directories between devices. It started as a personal experiment to sync my Obsidian notes between my PC and phone without relying on cloud storage or overcomplicated tools. I thought it would be simple, just SSH and rsync, but it turned into a great learning experience.
Now the script can, once SSH, systemd, and the works are set up, automatically sync between two computers reliably while also backing up to a Git repository.
GitHub: https://github.com/Kena-Njonge/osync
I also wrote a blog post https://open.substack.com/pub/kenakiruri/p/how-i-backup-and-... that goes over the motivation and acts as a tutorial if you want to use the tool to sync your Obsidian vaults. It also covers some of the differences between this setup and other alternatives.
Would love to hear your thoughts, especially on how I could improve it from a software engineering perspective.
Thanks!