usync

Sync any two paths with each other & cloud backup.
Uses unison to sync the paths, rclone to sync to a cloud provider.
Setup
git clone <repo> && cd usync
just install-deps
rclone config
# Edit justfile: set SOURCE, TARGET, and CLOUD_REMOTE variables
just setup
Use
just sync-paths # Between paths (SOURCE and TARGET in justfile)
just sync-cloud # To cloud
just status # Check
Commands
setup- Create directoriescheck- Verify pathssync-paths- Fast sync (unison)sync-cloud- Cloud backup (rclone)status- Show state
Windows (WSL) with usbipd-win
# 1. Install usbipd-win (Admin PowerShell)
# Download from https://github.com/dorssel/usbipd-win/releases/latest
# 2. List devices
usbipd list
# Note BUSID (e.g., 1-20)
# 3. Attach (Admin PowerShell)
usbipd bind --busid 1-20
usbipd attach --wsl --busid 1-20
wsl # Start admin WSL
# 4. In admin WSL
sudo mkdir /mnt/drive1
sudo mount /dev/sdb1 /mnt/drive1 # Replace sdb1
# 5. Configure & run
# Edit justfile: SOURCE="/mnt/drive1"
just sync-cloud
# Cleanup (optional)
sudo umount /mnt/drive1
# sudo umount /mnt/drive2 # If using second drive
# Detach & unbind (required before removing drive)
usbipd detach --busid 1-20
usbipd unbind --busid 1-20
Configure
Edit justfile: - SOURCE/TARGET - paths to sync (e.g. /mnt/drive1) - CLOUD_REMOTE - rclone remote name (e.g. cloud_remote:) - CLOUD_PATH - cloud folder (default: /usync) - CLOUD_MOUNT_PATH - local mount (e.g. /home/user/cloud-mount)
