cross-posted from: https://lemmy.ml/post/44815211

Two-way file sync, no remote agent needed

Today Synchi is finally public! It’s designed for syncing files between two locations (local or over SSH). It detects conflicts, and lets you decide what to do.

Why not rsync/Unison/Syncthing?

  • rsync has no memory between runs and is one-way
  • Unison needs to be installed on both sides
  • Syncthing requires always-on daemons

Synchi runs on demand, works over SSH, and only transfers what actually changed.

I use it daily for syncing a shared folder between my machines and an android phone. Works great in combination with Tailscale/WireGuard so that you can sync files remotely.

  • redparadise@lemmygrad.ml
    link
    fedilink
    arrow-up
    1
    ·
    6 hours ago

    Doesn’t rclone also do the same thing but with many more features like e2ee etc?

    Setup SFTP remote along with bisync?

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      5 hours ago

      rclone bisync can do two-way sync, yes, great tool, especially for cloud backends and more automated syncs. Synchi is a lot simpler and more focused: works over SSH, nothing needed on the remote side. The key difference is that Synchi shows you exactly what it’s about to do (copy A→B, copy B→A, delete in A, delete in B) and asks before changing anything. Conflicts get an interactive UI. No surprises.

      • redparadise@lemmygrad.ml
        link
        fedilink
        arrow-up
        1
        ·
        16 minutes ago

        rclone also works over SSH, and isn’t needed on the remote side, rclone also shows you exactly what it’s gonna do with colored text and formatting along with conflict management, but yes it is a bit complicated and a step above nextcloud etc, although GUIs exist I haven’t tested them. Loking forwards to how a new tool focused on personal use specifically can manage to be more user friendly and adapt exclusive focused features for such, looks more approachable and simple.

  • ray@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    15 hours ago

    I love the concept for this. Syncthing is pretty good but it is annoying to have it running all the time on Android.

    I’d love to use something like this to sync my Obsidian md files between computer and phone just when needed. I suspect this could be baked into to an Obsidian plugin to make it pretty seemless for folks.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      4
      ·
      15 hours ago

      This is exactly how I use Synchi! Same idea but I use Logseq instead of Obsidian (very similar open-source alternative, worth checking out). Works great for syncing markdown notes between computers and my phone on demand. Of course I need to remember to sync before switching devices, but I prefer this then constant running in the background.

      Haven’t thought about an Obsidian/Logseq plugin but honestly that sounds like a great idea… For now it’s CLI only, but I can definitely see the value.

  • SayCyberOnceMore@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    15 hours ago

    Genuine question: How’s this different to rsync?

    I have rsync installed locally, but not remotely and I’m able to sync changes, so how does this differ?

    Edit: ok, I read the article a bit further and found the rsync comparison

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      5
      ·
      15 hours ago

      Great question! Let me sum it up here for others:

      rsync is one-way only and has no memory between runs, every execution starts from scratch. Synchi is two-way, stateful (knows what changed since last sync), and content-aware (uses hashes, so no false positives from timestamp changes). It also handles conflicts explicitly instead of silently overwriting.

      That said, rsync is still the better tool for backups and one-way mirroring. Synchi is for when you need true bidirectional sync.

      Here is also a comparison with unison and syncthing: https://jakobkreft.github.io/synchi/why.html

  • Eggyhead@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    16 hours ago

    This might be good on Steam Deck for multiple games that have carry-over data. Just mirror the save data folder of one proton directory into that of the follow-up game’s directory. I assume you can go back to the first game to unlock more stuff to carry over, and not have to manually copy-paste the save folder each time. Just run a sync.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      15 hours ago

      I’m not too familiar with Steam Deck, but that sounds like it would work! As long as you can point Synchi at both save directories, it would keep them in sync and save you the manual copy-paste.

    • jak0b@lemmy.mlOP
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      21 hours ago

      Yes! On android with Termux terminal.

      (note: If you sync between computer and phone you don’t need to install it on your phone. One side only is enough.)

        • jak0b@lemmy.mlOP
          link
          fedilink
          arrow-up
          1
          ·
          15 hours ago

          iOS is tricky since there’s no easy way to set up SSH access to the filesystem like you can on Android with Termux. So unfortunately not really supported at the moment. If you have a jailbroken device it might be possible, but that’s not something I’ve tested.

      • brokenwing@discuss.tchncs.de
        link
        fedilink
        arrow-up
        4
        ·
        21 hours ago

        Yes, I would like to use this as an alternative to syncthing. Arch Linux and Android. So how the phone should be connected? Do I need to open my phone’s SSH port?