Beta test my new iOS app for Syncthing

Thanks for the update, the photo sync is a godsend!

One quick question, does it just copy the photos to sync in the syncthing folder and leaves them there? Or does it delete the copies locally on the phone? I’m worried it might duplicate the space taken by my photos if it maintains a copy of every single synced photo in another folder.

Currently it just exports a copy from the photo album. It should be relatively easy to add an option to also delete the source photo after succesful export - for this version I wanted to be sure the save function works well first.

(Another less risky option would be for the app to put all exported files in a separate album in the Photos app, from which you can delete them all at once if you need the space.).

Sure, better be safe than sorry! I will be eagerly waiting for that automatic deleting option after succesful transfers - my iPhone has limited storage :slight_smile:

1 Like

Does that mean if I have 30GB of images I will require another 30GB of storage for the Synctrain copies? Because that won’t work for me.

If the images are synced directly from the camera roll with minimal additional storage then this could be useful.

Currently that is how it works (and how it works for me: I copy photos, then delete the originals myself when I need disk space).

However as mentioned, there will be options for deleting photos automatically or marking them as synced (by putting them in a specific album).

Note that MobiusSync is also adding photo sync, using a different approach that does not require copying (but, from a technical POV, seems a bit more fragile to me - it may involve keeping a cache somewhere of exported files, I don’t know what they do exactly. They are using a read-only pluggable Syncthing fsType and support send-only folders only). You may want to try that.

ok i tried the latest version of this app but i wonder if u plan to add sync external folders like möbius does. is it in the roadmap? it is essential feature for me because Obsidian.md wouldnt work without it

In general I find comments phrased like this very unproductive. There are always scenarios the app is not going to support and saying it is ‘crucial’ or ‘essential’ just for you is just not going to make this higher priority for me, sorry. I have a ton of things that are essential for myself that I will definitely spend my own free time on before getting to yours. If it is actually crucial to you, you are probably also willing to pay for development, and I am happy to send you a quote.

Also in this case: just use Mobius if it does what you want.

Tecnhnically speaking the feature you want is almost there (the macOS build can do it). On iOS there is some more permission stuff to deal with, and I want this to be reliable before I offer it as a feature in the app.

5 Likes

Thanks dude! I will give it a stress test with “Tomachi Fanclub Server” account. Would you like an invite?

Good news: v1.3 has been accepted by app review and is now live. In addition to upgrading Syncthing (v1.27.13) and making core features more robust, it brings an improved UI on iPad, a photo sync function, symlink support, along with other goodies.

Editing addresses and purging photos after saving them to a folder are ready for the next version - keep an eye on TestFlight if you want to try those features.

2 Likes

I just discovered Synctrain and it sounds amazing. I’m super stoked to see an open-source syncthing client for iOS. Thanks for all the hard work!

I’m wondering if it will actually solve the problem I have. Basically, I need two iOS apps to access the same content – a syncing app (Synctrain/etc) and my notes app (Obsidian).

I use SyncThing to sync my Obsidian vaults between multiple Macs, Linux Server, and Android devices. But I now am adding an iPad and haven’t found a way to sync it via SyncThing.

The simplest solution would be to use ObsidianSync, but I’ve been using syncthing for years and everything works great. I’d really rather not switch to a different syncing solution.

My understanding is that Obsidian doesn’t work with MobiusSync because both apps sandbox their file storage space. Would Synctrain have the same problem?

I also read that the Working Copy app (which syncs via git) works with Obsidian because Working Copy is a file provider in iOS, meaning it acts like a folder in the Files app. But I haven’t tested this yet. Here’s an overview of how it works:

Is Synctrain an iOS file provider? Is there a chance it might work? I’ve got it syncing my folder, but I’m not having luck exposing the folder to Obsidian like Working Copy seems to be able to do. I am able to View a file, then share it to Obsidian, but that appears to import a new copy into Obsidian.

I don’t know Obsidian, but iirc Mobius allows synchronizing (files in) other app’s containers, so that should work. Similar functionality is coming in the macOS build of Synctrain and I am investigating the possibilities on iOS.

No, Synctrain just syncs files to folders to and from its own ‘public’ files container (meaning you can see these in the Files app and read/write the files from other apps if they use the default file picker). If apps insist on having files inside their own container (usually because they like full control over them), Synctrain would need access to these containers in order to sync them (which, again because MobiusSync appears to implement it, should be possible in iOS, but of course also depends on whether the app likes having its files managed externally - i.e. in case there are conflicts).

As far as I understand it a ‘file provider’ on iOS can only temporarily provide another app access to specific files and folders (and as such is actually less useful than direct access to files stored on the device in the Synctrain folder). A file provider would be useful to i.e. provide on-demand access to files from inside other apps, but this is a different scenario from what you are looking for.

Hi Tommy,

I tried looking for “Synctrain” in my local countries app store, but I am unable to find it.

Am I searching for the wrong name, or is the app not released to all countries? (Hong Kong in my case)

Currently the app is only available in certain EU countries, pending compliance tasks I still have to complete (for instance I have to make a declaration to the US government on the use of cryptography in the app, the French government wants their own declaration in French, etc).

The app should however be available in TestFlight regardless, and of course you could build and compile yourself.

2 Likes

New to synctrain. Thanks for the effort you are putting in here. EDIT: Looks like you deployed this feature and I need to figure it out. I am on version 1.3 so it should be there. Old comment: Can you confirm the photo sync feature is not live? I believe you are just using personal automation for transferring the files on your device before sync?

Photo transfer is basically the only thing I am using syncthing for right now. I just migrated from Android to iOS so it was new to me that photos aren’t directly accessible in the file tree.

Tommy, first of all many thanks for developing this. Very, very, awesome :grinning:

Can I make one small feature suggestion?

I’m looking to back up the photos (from now on) from my iPhone to a server. As I understand it, Synctrain first copies all (new) photos from the selected album to a folder that is then synced like any other folder. I don’t have enough storage space on my phone to keep all photos twice (in the regular Photos app and the duplicate in the local folder).

Would it be possible to add a “X most recent photos” option that limits the copy functionality to the X most recent photos added to the selected album?

I would then set the server to “receive only” and manually delete the photos (copies) from the local folder in the iPhone from time to time.

Thank you for considering this.

Cheers,

Stephan

Yeah, good idea, will think about how to best implement this.

One possibility is to add a setting somewhere to copy up to a specific maximum size (of the folder’s local size), or until there is no more than x% disk space available on the device. I am also considering an auto-deselect (remove local but keep remote) when the app notices a file has become available on at least X remote devices.

A short-term solution could be to use an automation that adds the desired photos for export to a specific album, and then let Synctrain sync that album. Once a photo has been saved, Synctrain will not remove the exported file from the folder nor export it again (unless you use the other export button in the app that is).

Also note that the most recent version has an option to remove photos from the source after a configured number of days. (If I remember correctly it will actually delete the photo entirely, so not just from the selected album - though it will remain in ‘recently deleted photos’ for a while. Test this before use!)

This feature is working just fine in 1.4. Now as soon as the app is opened, it connects to peers using static Ip addresses. Thanks for including it!

  • The 1.3 used to crash in background automatically a couple of times a day. I will ship crash reports if it happens in 1.4. So far no crash.

  • As someone said, choosing folders for other apps will be very useful. For example, a note taking app saves notes in a particular directory. Synctrain then syncs that directory to a computer. Right now, it seems that the directory needs to be manually copied pasted to the Synctrain directory, or iOS automation should be used to do this like a cron job. In other words, Synctrain syncs any directory, not just its own directory. It could implement iOS automation perhaps. Admittedly, most sync apps such as Synology or Resilio seem to have their own sandboxed folders.

  • The start page: The device ID is rarely used and long, and could go to the main setting. This page is otherwise empty. There is space to display some useful data here: name of online devices and connection types etc.

This is coming in the next version (should be in TestFlight even).

Hi Tommy, i’m really loving the synctrain app ! Haven’t had time to test the new photos functionality but looks really promising.

I just have two quick questions:

  • Could we have it so that when a photo is synced, only the copied photo (to synctrain folder) is deleted and not the original one, so we can sync them and still have them locally in the phone ? Maybe it is like this already.
  • Is metadata transferred when we sync these photos ? I would really love to preserve date taken, location etc for all my photos, because sorting them on the PC would be a mess otherwise.

BTW, do you plan to perform those compliance declarations do that the app will be available in App Store of all countries?

I am trying to plan based on that.