Title. looking for some tasks/reminders app that can sync across android and mac/windows. Android is a must have though. I am not doing selfhosted just yet but recommendations are still appreciated, Thanks!

  • johntash@eviltoast.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Have you had any issues with the self-hosted livesync plugin? I currently use the “remotely save” plugin and sync to a nextcloud instance, but I thought about trying the livesync plugin instead. I just wasn’t sure if it was worth spinning up a couchdb instance just for that.

    • Norah - She/They
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      I’ve been using it for about a year, and it’s definitely gotten a lot better in that time. It can be a little finicky to get everything configured for the first time for a vault. You only have to do it on the first device though, then you can copy a setup URI to each subsequent device. One caveat is that if you want it to work on mobile, then you’ve got to have it configured with https and not with a locally-signed cert. I have it proxied through Cloudflare with a domain I use for homelab stuff.
      The biggest difference is that remotely save doesn’t have any kind of conflict resolution. It just overwrites the remote file as long as the local one was modified more recently. Livesync keeps separate versions of a file almost like a git repo, tracking the changes. It almost always automatically merges conflicts, but if it can’t it’ll pop up asking you to choose which version to keep. I have a few vaults that I share with others and multiple people can work on the same file simultaneously with no issues at all. There’s end-to-end encryption built in so if you’re using it externally you don’t have to worry about your privacy. I write up my task list for the day on my computer in the morning, and being able to pull my phone up and check things off and have it reliably sync back to my desktop without overwrite issues works flawlessly. There’s iOS, Android and Windows devices all playing nicely.

      Here’s a link to the docs for setting up your own server.
      I’m gonna stick the docker compose and config files I used to spin mine up if you wanna use them (make sure to put them in the same directory):


      docker-compose.yml

      name: obsidian
      version: '2'
      services:
       database:
        image: couchdb
        restart: unless-stopped
        ports:
         - "5984:5984"
        volumes:
         - ./local.ini:/opt/couchdb/etc/local.ini
        environment:
         - COUCHDB_USER=username
         - COUCHDB_PASSWORD=password
      

      local.ini

      [couchdb]
      single_node=true
      max_document_size = 50000000
      
      [chttpd]
      require_valid_user = true
      max_http_request_size = 4294967296
      
      [chttpd_auth]
      require_valid_user = true
      authentication_redirect = /_utils/session.html
      
      [httpd]
      WWW-Authenticate = Basic realm="couchdb"
      enable_cors = true
      
      [cors]
      origins = app://obsidian.md,capacitor://localhost,http://localhost
      credentials = true
      headers = accept, authorization, content-type, origin, referer
      methods = GET, PUT, POST, HEAD, DELETE
      max_age = 3600
      

      Edit: Sorry for the huuuge reply, hope it’s not too much haha

      • johntash@eviltoast.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Thanks so much for the detailed response! I didn’t realize livesync handled conflicts better, that’s almost enough by itself to make the switch.

        I think originally I was mostly hesitant to try it because I didn’t want to expose a public couchdb, but it’s actually not that big of a deal now that I think about it, especially if it’s using end to end encryption.

        I have a few vaults that I share with others and multiple people can work on the same file simultaneously with no issues at all.

        Do you just share the entire vault? I’m assuming each person you share with would just end up using the same credentials? I tried sharing a vault with my partner before using remotely-save+nextcloud and it was kind of clunky, we ended up just using a shared folder and let nextcloud desktop app sync it instead. It doesn’t help for mobile though.

        Thanks for sharing your config too, I’ll probably try setting it up with a test vault this week and see if I run into any issues with it

        • Norah - She/They
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          So there’s the one set of couchdb login details, but that’s not used for encryption. There’s a separate encryption passphrase per vault, so you can store as many vaults as you like without worrying about other people using the database reading your files. My partner and I have a vault that we share (with shared passphrase), as well as each having our own vaults. This works best for us, but there’s also another tool by the creator to sync folders between vaults: https://github.com/vrtmrz/livesync-classroom