Super-productivity: add sync provider through local files

Created on 24 Nov 2020  Â·  8Comments  Â·  Source: johannesjo/super-productivity

Problem Statement

Moving in different countries including some where internet is quite restricted, I tend to use the cloud as few as possible and solution that are simple and robust.
I'm very happy with 2 combos : keepassXC+syncthing and Jopling+Syncthing, my notes and my passwords are in sync in all my devices with just the combinaison of those softwares and it's very usefull.
I've read that some people achive that with seafiles.

:grey_question: Possible Solution

Joplin has a file syncing : it uses a sperate folder and drops files in it (https://joplinapp.org/spec/sync_lock/)
KeepassXC does that with database and merges the cached database with the db written on files (it's more reliable)

:arrow_heading_up: Describe alternatives you've considered

For now I use Jopin that has task lists but it's not focussed on tasks as super productivity

enhancement good first issue help wanted

Most helpful comment

Hard to tell if this can be confusing : the first time I saw that feature in Joplin and I immediately though that syncthing could do the sync job in the background and I just pointed both of them to the same directory and that was it.

Here's what it looks like in Joplin's desktop app

image

and in Joplin's android app

image

I hope someone will have the time and skills to taccle this one, I have to admit that being able to sync your datas from different devices/OS/networks without any cloud is quite amazing to me :-)

All 8 comments

Hey there! Thank you very much for taking the time to open this up. Makes a lot of sense to me and should be straightforward to implement for the desktop version (we could use Dropbox as a template and simply replace the API stuff with a simple flat file storage). The only real problem I see is that it might be confusing for some people that this will likely only work with the desktop version of the app and NOT the mobile or web variants. There might be a path for those too, but I have my doubts that it will work as intended.

If anybody wants to tackle this, please let me know!

Hard to tell if this can be confusing : the first time I saw that feature in Joplin and I immediately though that syncthing could do the sync job in the background and I just pointed both of them to the same directory and that was it.

Here's what it looks like in Joplin's desktop app

image

and in Joplin's android app

image

I hope someone will have the time and skills to taccle this one, I have to admit that being able to sync your datas from different devices/OS/networks without any cloud is quite amazing to me :-)

I switched from Hamster to superproductivity because the syncing of the former is bad. So far I love SP and its many features. It is exactly what I need.
However, I must +1 this thread asking for local file system syncing! If I were inclined to trust an online provider like Google or Dropbox with my (unencrypted) data, then I could use pretty web apps like Toggl or Clockify. I don't trust them and thus use an encrypted file share that encrypts my data locally before syncing it to my other devices (e.g. laptop, work, home).
I would love it, if you could mirror the Google sync and simply provide a file-on-disc that I can then sync using any other tool. Ideally it would update the file on event/change of the tasks. I don't need it to sync the minutes while I am working – once I change a task or close the programme would be enough for me.
Unfortunately my expertise is insufficient to code the desired feature myself. I can only plead for someone to do so, please!

Proposal: a (quick ?) and dirty solution

  • Add an option that sets a timer on the "automatic backups", as the folder with the backups can be synced. User can choose the time interval to be e.g. 1 minute.
  • On program start, check if the current state of internal data is newer or older than the last automatic backup. If it is older, then ask the user if he wishes to "import" the last backup.

    • [optional] create a backup of the state-at-startup before overwriting it with the last automatic backup, just in case something goes wrong.

I haven't really explored that myself, but have you tried specifying the --user-data-dir flag as described in this discussion?

Hello and thank you for your attention, Mr. Maintainer.

I haven't really explored that myself, but have you tried specifying the --user-data-dir flag as described in this discussion?

Yes, I have tried that. It allows me to put the entire working directory into my synced directory. However, the database file quickly has a syncing conflict, as the conflict resolution on blobs and (sql) DB files is bad. That is not a working solution for me.

Instead, I replaced the backup directory on the standard path with a soft-link to a directory in my encrypted sync directory (I am running linux on all my main devices). In this way I am only "messing" with the backup files and not the normal data of the program. I am currently trying to import the automatic backup whenever I switch devices but it is not the most elegant solution. I will try this for a while and report back on how well it works.

Alright! Thanks for the explanation!

@johannesjo Any updates on this? I want to use it with Synching.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

theCalcaholic picture theCalcaholic  Â·  3Comments

mbostanara picture mbostanara  Â·  3Comments

calvadosxo picture calvadosxo  Â·  4Comments

theCalcaholic picture theCalcaholic  Â·  4Comments

Mindstormer619 picture Mindstormer619  Â·  4Comments