Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add sync provider through local files #690

Closed
da-sti opened this issue Nov 24, 2020 · 26 comments · Fixed by johannesjo/super-productivity-android#33
Closed

add sync provider through local files #690

da-sti opened this issue Nov 24, 2020 · 26 comments · Fixed by johannesjo/super-productivity-android#33

Comments

@da-sti
Copy link

da-sti commented Nov 24, 2020

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.

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

⤴️ Describe alternatives you've considered

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

@johannesjo
Copy link
Owner

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!

@da-sti
Copy link
Author

da-sti commented Nov 26, 2020

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

@asbiot
Copy link

asbiot commented Dec 2, 2020

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
Copy link

asbiot commented Dec 2, 2020

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.

@johannesjo
Copy link
Owner

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

@asbiot
Copy link

asbiot commented Dec 2, 2020

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.

@johannesjo
Copy link
Owner

Alright! Thanks for the explanation!

@nm17
Copy link

nm17 commented Dec 7, 2020

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

@toolonely
Copy link

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.

@lerra
Copy link

lerra commented Feb 11, 2021

+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!

@REMjn832
Copy link

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

@johannesjo
Copy link
Owner

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

@aaylnx
Copy link

aaylnx commented Mar 8, 2021

+1 This would really be a wonderful feature.

@github-actions
Copy link

github-actions bot commented Jul 7, 2021

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

@github-actions github-actions bot added the Stale label Jul 7, 2021
@johannesjo johannesjo removed the Stale label Jul 7, 2021
@nm17
Copy link

nm17 commented Jul 15, 2021

Still relevant to this day

@johannesjo
Copy link
Owner

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

@aaylnx
Copy link

aaylnx commented Jul 22, 2021

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!

@johannesjo johannesjo self-assigned this Jul 22, 2021
@tukusejssirs
Copy link

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? 😉

@johannesjo
Copy link
Owner

Will this work on Android too? 😉

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

@Mustang-ssc
Copy link

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.

@aaylnx
Copy link

aaylnx commented Aug 11, 2021

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.

@github-actions
Copy link

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

@github-actions github-actions bot added the Stale label Dec 20, 2021
@Cerdtruir
Copy link

still relevant

@virtos
Copy link

virtos commented Jan 24, 2022

Android version of a local file sync is sorely missing.

@Toffanelly
Copy link

+1 Very important feature

@bepolymathe
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.