super-productivity icon indicating copy to clipboard operation
super-productivity copied to clipboard

add sync provider through local files

Open da-sti opened this issue 3 years ago • 26 comments

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

da-sti avatar Nov 24 '20 10:11 da-sti

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!

johannesjo avatar Nov 24 '20 21:11 johannesjo

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 :-)

da-sti avatar Nov 26 '20 07:11 da-sti

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!

asbiot avatar Dec 02 '20 11:12 asbiot

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.

asbiot avatar Dec 02 '20 11:12 asbiot

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

johannesjo avatar Dec 02 '20 17:12 johannesjo

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.

asbiot avatar Dec 02 '20 18:12 asbiot

Alright! Thanks for the explanation!

johannesjo avatar Dec 03 '20 18:12 johannesjo

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

nm17 avatar Dec 07 '20 09:12 nm17

I would like as well to see this feature implemented with higher priority than fixing the WebDAV support over NextCloud and WsgiDAV. I have installed syncthing and the process was super easy compared to NextCloud. If both the desktop app and the mobile app will have support for filesystem sync, a la Joplin, as requested above, I'll be happy to pick it as sync option.

toolonely avatar Jan 24 '21 04:01 toolonely

+1 on this one, would love to see a directory syncing option and same for android, I use a solution that syncs my folders between my devices to be able to access it both from mobile but also from multiple machines without using any cloud services

Btw, high five, you have done a great job with super productivity!

lerra avatar Feb 11 '21 16:02 lerra

I want to +1 this too! I just came across as SP as a longtime todo.txt user (Joplin). But I do not trust granting full permissions to the app to use Google Sync, and would rather me chose my sync platform in the background, and specify the file location in SP. Just like others have said, is the way Joplin works.

Thanks for the great app! Once sync is resolved, I am hoping to make SP my one and only task management app! :)

REMjn832 avatar Feb 23 '21 17:02 REMjn832

If you like to see this happening, please upvote the original issue! :)

johannesjo avatar Feb 24 '21 09:02 johannesjo

+1 This would really be a wonderful feature.

aaylnx avatar Mar 08 '21 19:03 aaylnx

This issue has not received any updates in 90 days. Please comment, if this still relevant!

github-actions[bot] avatar Jul 07 '21 01:07 github-actions[bot]

Still relevant to this day

nm17 avatar Jul 15 '21 16:07 nm17

I am happy to announce that the feature should be available with the next (pre-) release. Let me know if you have any feedback.

johannesjo avatar Jul 22 '21 13:07 johannesjo

I am happy to announce that the feature should be available with the next (pre-) release. Let me know if you have any feedback.

Wonderful! Thanks!

aaylnx avatar Jul 22 '21 15:07 aaylnx

I am happy to announce that the feature should be available with the next (pre-) release. Let me know if you have any feedback.

Will this work on Android too? :wink:

tukusejssirs avatar Jul 24 '21 19:07 tukusejssirs

Will this work on Android too? 😉

No :) just desktop for now. Pull requests are welcome though!

johannesjo avatar Jul 25 '21 23:07 johannesjo

Would love to see this implemented in the Android app too.

It is a simple feature (not badly intended: not speaking on the complexity and time consumption) that would hugely complete the experience for some of us using services to locally sync files, such as Syncthing.

Mustang-ssc avatar Aug 10 '21 19:08 Mustang-ssc

The Android app for Obsidian puts all of it's files, including configs, in the Documents folder. If there were an option simply to store things there, then Syncthing could just sync the folders. This is what I use for Obsidian.

BTW, where are the files for SP stored on Android? I have a path to /storage/emulated/0/Android/data/com.superproductivity.superproductivity, but there's nothing there. Perhaps if I could find the right location, I could just sync it myself using Syncthing.

aaylnx avatar Aug 11 '21 15:08 aaylnx

This issue has not received any updates in 90 days. Please comment, if this still relevant!

github-actions[bot] avatar Dec 20 '21 01:12 github-actions[bot]

still relevant

Cerdtruir avatar Dec 20 '21 06:12 Cerdtruir

Android version of a local file sync is sorely missing.

virtos avatar Jan 24 '22 07:01 virtos

+1 Very important feature

Toffanelly avatar Feb 23 '22 12:02 Toffanelly

Any news about local file sync or import .json feature ?

bepolymathe avatar Jun 23 '22 11:06 bepolymathe