/notable-git-sync-setup

Automatically synchronise your Notable folder to Git every few minutes 🔄

Primary LanguageShell

Notable Git Sync

Configures a User LaunchAgent for macOS and Service Manager for Linux that synchronises the ~/.notable folder to a Git repository.

You'll get a nice notification if you have a recent version of Node.js installed.

Example Notification

Requirements

macOS

  • A Git repository on GitHub, GitLab, or some Git server.
  • Git installed on macOS (Installation options).
  • Git SSH keys configured (GitHub Docs for SSH) using default id_rsa naming scheme.
  • [Optional] Node.js v12+ is required for macOS notification integration.

Linux

OS Support

Currently only macOS and Linux is supported. Pull Requests that add support for other platforms are welcome!

Setup

NOTE: This script assumes you are using the ~/.notable directory for storing notes. After running the script use the Change Data Directory option in Notable to set your data directory to ~/.notable.

Clone the repository, run the setup.sh, and follow the prompts:

macOS

git clone https://github.com/evanshortiss/notable-git-sync-setup notable-sync

cd notable-sync
./setup.sh

Linux

git clone https://github.com/evanshortiss/notable-git-sync-setup notable-sync

cd notable-sync
sudo chmod +x ./setup.sh
# -E preserve environment (for git commands)
sudo -E ./setup.sh

Default Configuration

The configuration for the service is defined in the plist.template.xml.

  • Assumes a default ~/.ssh/id_rsa SSH configuration for Git.
  • Logs are written to /tmp/notable-sync.stdout and /tmp/notable-sync.stderr in macOS.
  • sudo journalctl -u notable-sync to see logs in Linux.
  • By default, notes are synchronised to the Git repository every 10 minutes.
  • Fails on Git merge conflicts. Are your notes are not syncing? This might be why.