I am using syncthing on my smartphone, laptop and home server to sync/backup with the following setup:
Sync (between all devices):
Notes from smartphone/laptop
Backup (to home server):
Pictures from my smartphone
Pictures/music/documents from my laptop
To make this as efficient as possible I disabled relying and global discovery on my smartphone + laptop. That means they will both only connect via local network.
The effect I am trying to achieve is to prevent any huge backups to my home server while I am mobile and on battery.
How ever, my smartphone and laptop will often share the same local network and there for be able to sync notes/keepass which isn’t a huge amount of data and hopefully won’t cause much battery drain.
Additionally I have disabled “watch for changes” on my smartphones camera folder since I do not want to make pictures and instantly have them synced. Especially since I might just go back into my picture folder and delete the pictures that didn’t turn out to be good. Instead I have set a period scan of 4 hours.
Generally I wonder how much drain “watch for changes” causes on Android + Linux and if I should disable that for e.g. pictures, music, documents which aren’t going to change a lot and instead go for periodic scans?
Also I might have another issue that I couldn’t solve yet:
I might run in a situation where my phone+laptop+home server haven’t been on a local network at the same time for e.g. 2 days (for example when I am on a business trip). But I might edit notes + password on my phone and laptop. This means I will have a different content of notes on my smartphone than I have on my laptop.
I really wished I could run two instances of syncthing. One that e.g. only works via local network and one that works via any network. That way I could split the work load and have a much more efficient setup for mobile devices like smartphone and laptops. Or a way to pause specific folders depending on the network / situation.
I would say that actually watching for changes combined with a long rescan interval is the best in terms of battery life. This is because rescans are both CPU and I/O intensive while watching for changes only makes Syncthing rescan the files that have been modified. Of course, this also depends how large the folder in question is. In general, the larger the folder, the more time and power is required to rescan it.
When it comes to Android specifically, I personally would suggest to firstly keep Syncthing running all the time (i.e. disable the whole “run conditions” configuration in the app). The reason is that each time the app is stopped and restarted, all folders get rescanned, which especially on Android takes a lot of time, preventing the device from sleep. Secondly, I would also suggest to enable watching for changes for all folders while also setting their rescan interval to something like once per day or even less frequent.
These two suggestions apply to the laptop as well.
You can run multiple instances! It’s very easy on the desktop, and on Android, you can run both the official app and the fork. You only need to configure different ports for the Web GUI in the app settings for Syncthing to start. There are also a few other places in the config that need to be modified though. Please search the forum for “multiple instances” and you should be able to find them easily.
Having “watch for changes” enabled all the time will constantly trigger sync actions. E.g. when taking 3-4 pictures with your phones camera or basically anytime I receive a media filter in whatsapp/telegram. I would rather want to sync (or in my case backup) those folders once I am charging and on my home network.
But by letting me know that multiple instances on android + laptop are possibly, I could probably easily fix this! I couldn’t find anything on how to run the official syncthing app from the play store with two instances. But running 1x google play store version and 1x the fork should work. Additionally the fork seems to have support for different run conditions per folder. So after all it might not even be needed to have two instances since the fork alone might be able to do it all!
It will trigger sync, yes, but only if you are on your home network (as that’s how you said you’d configured Syncthing)! When not connected to the network, it will only trigger scan but sync itself will wait until you connect to the network .