Any chance that the selective sync feature could be implemented in the dekstop versions? The way you implemented the feature is really nice and I feel it would be great as an alternate GUI for dekstop to manage caching files
There is a macOS desktop version of Synctrain with selective sync support. I have no plans to port this to other platforms - but someone experienced with windows/linux UI development could perhaps reuse some of my work.
I would actually like to include the on-demand downloading feature into Syncthing Tray so it can be used under Windows/Linux as well. Actually, it would be great to upstream the additional REST-API route you implemented for that into Syncthing so everybody can use it.
I have also added a browser for the global file tree with a so far clunky UI to change ignore patterns based on it. Maybe Iâll improve this in the future so Syncthing Tray will be able to cover more use cases Synctrain is currently better at.
Synctrain embeds Syncthing as a Go package, so it uses the Internals interface (that is now actually upstream) instead of the REST API. It may contain some re-usable bits for your app though. All of it is MPL2 so you may reuse or even try to upstream it as needed.
The on demand download actually simply re-used an existing function in Syncthing core, it should be quite easy to expose it in the REST API. Synctrain in this case actually also implements a small REST API for itself so that on-demand downloads can be plugged in to video players on iOS. It translates ranged HTTP downloads to individual block requests, so streaming works very well. See here:
If this is part of the browser UI itâs a substantial component of the implementation of selective syncing which could be rolled into the main syncthing and apply to all platformsâŠ
Synctrain in this case actually also implements a small REST API for itself so that on-demand downloads can be plugged in to video players on iOS.
I saw it before, that was the REST-API I meant that would be nice to have in Syncthing itself.
If this is part of the browser UI itâs a substantial component of the implementation of selective syncing which could be rolled into the main syncthing and apply to all platformsâŠ
So far I only implemented it on UI wrapper level using the REST-APIs to browse the global tree and read/write ignore patterns. I had to implement parsing and manipulating ignore patterns and lookup of local files on UI wrapper level as Syncthing has no REST-API for this. So I suppose Syncthing needed APIs for that first before such a feature could be implemented in the browser UI.
(Not sure whether a really user friendly âselective syncâ approach should be ignore patterns based. As a power user I like it, though.)
One thing to keep in mind here, regarding the selective sync feature: This wrapper by definition runs on the same device where the data is stored, thus it has independent access to the file system. The Web GUI however is built to be accessed remotely, so direct access to the actual files (by the browser) cannot be assumed. Thatâs an important consideration for the upstream GUI integration, but also for Syncthing Tray, which also supports connecting to Syncthing instances on other hosts.
Thatâs very true. Hence the lookup of local files I had to implement in Synching Tray is only used when connected to a local Syncthing instance. There are already a couple of other features where I have to make that distinction.
Thanks for this great app and the work you put into it. I am now testing it to get my pictures and videoâs copied from my phone to my server at home. It would be nice if there is a function to delete the pictures directly after they are synced with my server folder. But i have seen your comment about this (i have a phone which is low on storage). For now i have made a cron job to move the files from the Synchting folder to a another folder every hour.
If someone want to do this on Linux then you need to exclude the .stfolder I had some issues with that. example:
rclone move /mnt/SSD1/Syncthing/iPhone-Me/Pictures /mnt/SSD1/PicturesPhone/iPhone-Me --log-file=/mnt/nvme-pool/rclone/logs/PicturesMe.log -v --delete-empty-src-dirs --exclude â.stfolder/**â
It would be nice to have a function to only sync when on a Wifi connection. But i understand new functions takes time to implement. Unfortunately i canât program by myself.
I linked the new folder to Immich (Self-hosted photo and video management solution) so i can see my pictures in a library there.
I think depending on how the logic is done I wonder how important this actually is. I think if the logic is exclude the deselected items instead of include the selected items then syncthing scans new folders as normal and then they become part of the global state. And you have a browser for the global state. So perhaps thatâs all you need.
Would be a blessing if it was implemented in Synthing Tray If you need anyone to help testing the integration give me a shout
Thanks for all your reponses
Hi, whatâs the status regarding encryption paperwork and availability in France?
As far as Iâve seen, Syncthing/Synctrain only uses ed25519, which is part of the algorithms Apple ship with their devices (see Apple CryptoKit | Apple Developer Documentation) and for which they have already made all the required declarations to be able to sell their devices in France.
So as long as Syncthing/Synctrain is not using any other funky encryption (which I hope itâs not), my understanding is that the app has no reason not to be eligible for an exemption.
I was keen on trying out Syncthing for iOS but unfortunately the app is not available on the Australian App Store
Is there a reason for this? Bit disappointing.
You should use the TestFlight link !
Iâm not @pixelspark and I donât speak for him, but if it were me I would not go to the effort to try to figure out the French paperwork required, especially as a non-French-speaker and with little actual control of the used underlying crypto algorithms. (Which are several, but all âindustry standardâ according to some definition.)
You are not me but I fully agree
My point is actually that thereâs no paperwork needed here if only ed25519 is used.
If the issue is that nobody knows which encryptions are used by Syncthing/Synctrain then thatâs where the concerns should be.
Oh, we know. We use the full set of Go TLS ciphersuites, additionally scrypt
, AES-SIV
and XChaCha20-Poly1305
for untrusted device encryption, all of which are third-party as far as the Apple ecosystem is concerned.
If anyone in France would be willing to âimportâ the app to France, fill out the paperwork, and publish it, I would be fine with that (it would be nice to coordinate so that itâs clear what the app is and who is behind it, and that I donât get support requests for that version et cetera). This is fully open source after all. You can also do this yourself, just get an Apple Developer account and build the app (I know there are some limitations on the validity of self-made apps).
From my perspective right now there is just nothing to gain and potentially a lot to lose (I donât know exactly what and donât want to spend time or money figuring out the legal stuff) with publishing in France.
As a French native, I could maybe try to help in this regard. I plan to have a developper account for other projects anyway. But wouldnât it be easier / cleaner if the app remained under your account, and I would only help for the paperwork ? @pixelspark ?