Home / GitHub Page

Best sync option

With Dropbox limiting devices to three I have to find a new syncing option. I already have a google account but it appears direct GDrive support is not on the table at the moment.

I really don’t want to pay for yet another cloud account for syncing my account. I have tried placing the Joplin directory in the GDrive directory with very mixed results. Missing notebooks and notes, differing notebook layouts, etc.

I’m currently trying to sync two PC’s and three android devices. What cloud method would be suggested? Nextcloud looks interesting but it doesn’t look like GDrive would be an option with them either. If I set up my own server and my pc goes down them I’m hosed, right?

OneDrive is an option but I don’t know why I should trust MS over Google.

Joplin is a great app and I wouldn’t ever go back to Evernote.

Has anyone been successful syncing more than 3 devices using GDrive and, if so, would you mind sharing a tutorial?

Thanks.

Hosed? Not really. You won’t be able to sync notes, but all the notes and metadata are on all devices so you still have access to everything and you won’t lose anything. When the server comes back, synchronisation resumes.

I’m running Joplin on (Linux) PCs and Android devices, and happily synching with my Nextcloud server.

Honestly self hosted Nextcloud, or WebDAV in general, is the best solution to sync Joplin. You fully control your data and you don’t have all the restrictions of OneDrive, Dropbox and so on.

For example, Dropbox may block a file if it triggers their copyright violation filter ; it seems that both OneDrive and Dropbox throttle connections, etc. To be fair the usage we make of their service is not in their interest, especially with E2EE, since they can’t do anything with that data.

Nextcloud on the other hand is as fast as your server allows, and has no restrictions.

1 Like

I found the solution with Syncthing. Peer-to-peer is what I wanted all along.

Thanks for your help.

1 Like

How are you syncing Joplin with Syncthing? Cross device sync?

I’m using file syncing and a peer-to-peer syncthing shared folder. Each device must have the device IDs of the other devices and share a folder ID. If any of the devices is unavailable the others will still sync. When an offline device comes back online it will sync with the others. Syncthing is very easy to install and use. There is no single point of failure as in hosted servers. Syncthing has installers do most of the common os.

I know how Syncthing works. I am just curious how you sync with it on an android. On PC you can point Syncthing to the Joplin folder, just dubious about android’s capability to do the same.

On android it works exactly the same! you just give it the filesystem path that you set up in Syncthing and it works perfectly.

I setup my Joplin usage with Syncthing and have had no issues. I also use it to sync ebooks from a Calibre folder.

So my setup is I have a folder on android /storage/emulated/0/joplin-notes which Syncthing maintains synced with my Joplin folder on both my Surface and my desktop (3-way sync). I don’t use Joplin on different devices at the same time as a general rule because I don’t want to chance having file conflicts, but I have done it on occasion and so far haven’t had any issues with getting everything to sync up nicely.

I have started to look at using Nextcloud through one of the hosted options just because right now I don’t have a server setup at home for myself. I want to get familiar with it because my old desktop is getting long-in-the-teeth and will likely get replaced with something much smaller, and I’m thinking of filling the old beast up with hard drives and turning in into a NAS running an instance of Nextcloud.

Thank you @SteveHolle, @CalebJohn & @youngheart80. Will give it a try. Backup first, I know.

Won’t that lead to clashes when the database is synched while Joplin is using it?

It’s possible, but unless you have extremely long written notes that you frequently edit, it’s highly unlikely.

No it won’t be a problem even if the files are changed while Joplin is syncing and using them. Read and write operations are atomic so for example if Joplin reads a file then starts processing it, and in the meantime the file is changed by syncthing, it just means that this file will be processed again on the next sync operation. Same if it’s deleted.

Joplin just gets the sync target state at a particular point in time and if things are changed after or even while syncing, it just means it will be synced again later.

1 Like

I’m having trouble figuring out how to enter the sync path in Joplin. I created a sync directory and have three different absolute paths to it depending on what I use to look for it:

/sdcard/data/sync
/storage/9016-4EF8/sync
/storage/emulated/0/data/sync

I have synchronized the directory I created using the /sdcard/data/sync directory which winds up being /storage/emulated/0/data/sync.

Android file managers seem to play fast and loose with the absolute file path. It would be extremely helpful if there was a browse in Joplin instead of trying to type in the absolute path. It seems that if I type in the wrong path and then enter another path it uses the old path I typed instead of the new one.

I’m sure I could find the correct path if I could browse to it in Joplin android as in the desktop app.

Syncthing (to be more precise: Sync-Trayzor and Syncthing-Fork) works perfect with android, windows and linuxmint. You can also put joplin on an usb-device and sync it with the same folder as an existing windows-installation of joplin.

1 Like

Additional info:

When uninstall and reinstall Joplin on the android and set up the file sync it’s like it’s still looking for old files that don’t exist any longer: 4a753…1758.md which doesn’t exist on my device. Where does it get this file name from? What do I need to delete to get it to look at the sync directory only?

Hmm, this should not be the case. If you delete the app, everything should be removed with it. I’ve tested this on the emulator a while back and everything was gone.

I know the topic has mostly gone in the direction of Syncthing, but something to consider on Nextcloud: the concept of it, of course, is to be self-hosted, which is what I’m doing. But there are also several providers who provide free Nextcloud accounts with 2-5 GB of storage; see https://nextcloud.com/signup/ for more information and to sign up if you’re interested. AFAIK there wouldn’t be any device limits on such accounts.

That is how it starts out. I started out with Evernote and had to drop that because of changes in their free account. That is how it started out with Dropbox until they made changes in their free account… How do I know how long those providers are going to provide free storage?

Syncthing is peer-to-peer. I understand that if the Nextcloud host, self hosted or one of the free accounts, goes offline, dies, get’s stolen, that I still have the copy of my data at that moment but until I get a host back up, everything starts drifting again. Syncthing just keeps chugging along.

I finally got my phone syncing and it wasn’t a syncthing problem. It turns out that android “absolute paths” are anything but absolute.

Thank you for the suggestion and if I run into any other problems I may take a shot at self hosting.;

That’s a fair point, and I don’t have a solid answer to it (though there might be other information on the Nextcloud site that would clarify things further). I expect there’s a condition to their being promoted as recommended hosts requiring them to offer some level of account for free, but that’s ultimately at least a potential issue with any third-party hosting. Though FWIW, I don’t see any way in Nextcloud to limit the number of devices logged in to a given account.

If you want to try self-hosting and you have a FreeNAS server, I’ve put together a script to automate the large majority of the setup. On a Linux server, I think snap is the preferred method for an easy installation. There’s also NextcloudPi to set it up on a Pi or similar single-board computer. Just some possibilities to consider.