This is why we need a mac app installer.


(john Little) #1

Syncthing is good in so many ways, but not for non-techncal mac users. Our company has around 100 staff, all of whom are required to use a mac. Syncthing has been our company way to sync files for over a year. However, of the list of 300 devices+ in my list, only 1 actually is syncing. None uses it. Instead they email files to each other, or use non-official tools like dropbox.

Firstly, the majority of users do not know what a terminal is, and don’t know how to use the command line. Nor should they. They don’t have, nor ever will have brew, and most are remote so we cant set it up for them. They are marketing people, sales people, admin staff, finance, designers etc. Most are relatively new to macs also.

I have been tasked with getting everyone using it again. I find that most people had had it installed by an IT staff member, but soon after never run it again. The main reasons are:

  1. they had it installed for them, but they forgot know how to start it, and its not possible for them to get it to autostart. They cant find it in launchpad.
  2. they got a new machine, and don’t know how to install it.
  3. They hated it because they are used to the “install and forget” simplicity of dropbox, onedrive etc.

What we need is:

  1. A simple installer dmg, either the standard mac package, or something you drag into applications. This means any of our staff can instal it themselves.
  2. an uninstall option which also deletes all the config files. (a complete uninstall) so that users can start again when it all goes wrong or when they are not longer part of the team.
  3. the installer must set up the process to auto-start, or at least have this an an option in the UI.
  4. re-launching the application should re-open a syncthing web UI tab, not just fail because its already running. The is a significant problem, users close the browser, and dont know how to get syncthing to run again (they dont realise and/or forget you need to enter a special URL with a nonstandard port - its not something they have ever had to do)

I see there is a github project to address this: https://xor-gate.github.io/syncthing-macosx/ . I applaud this, but we cant use it for the reasons:

  1. We dont know if the source has been tampered with. The official version at least has had many people looking at it and presumably pull requests are well scrutinised.
  2. The company owner has specified we can only use the official release.
  3. The unofficial version may not receive support in the future.

To sum up, I am hoping that the syncthing team strongly consider a proper mac installer, and hope that such an installer would not be too much work.


(Jakob Borg) #2

While I totally don’t disagree with the need for a real installer and GUI… I think IT failed in their initial setup. The “correct” way (IMHO) to do this on Macs is to set it up with launchd so that it starts automatically on login. Configure it to use a folder like the default ~/Sync. Have your users use that. Done.

Something like ansible, chef or puppet would probably be good for the initial setup…


(john Little) #3

Hi Jakob. You are probably right in a central organisation with offices and pc support staff. The issue is how to tell the many remote workers, agents, agencies, part time workers etc. how to do this. Its a distributed team. We have no access to their machines, so we have to give them instructions via email or chat, and support them via chat. There is almost no chance they would be able to configure launchd. Our IT team are all unix sys admins, we dont have any mac or pc experts unfortunately.

Even our technical guys hated the manual install, as they didn’t know to make it autostart, where to put it, how to find it when you forget where you put it etc.

We had to abandon our shared folders, as they each had so many sync errors, syncthing gives up. New users cant sync at all. This is partly as noone has it running, they only run it when they need a file, by which time everything is well out of date and there are conflicts which none knows how to solve. An easy /default autostart built into the app would help solve this.


(john Little) #4

Having trialed the https://github.com/xor-gate/syncthing-macosx, it solves all our issues, and makes syncthing usable for non-technical users. I think this is the only way forward - I just need to persuade the owner there is low risk.


(Simon) #6

I believe using something like xor-gate (or another of the wrappers listed on our contrib page) is hugely beneficial to a non-technical userbase. A simple status bar with menu can boost awareness of the tool a lot.

I think @jerryjacobs (xor-gate) is (occasionally?) active here. Maybe he can shed some light how the “main Syncthing” binary is integrated and how you can check its integrity. Of course you still need to trust the “wrapper code”, but as far as I interpret what you write (using dropbox) your use-case isn’t that sensitive. And the program is around and used for quite along time already.


(xor-gate) #7

Hi guys,

I was not active following the forum for quite some time. If you believe there has been tampered with the xor-gate/syncthing-macosx you could review and build it yourself. Sign it and distribute it. You are free to do so as I have licensed my initial work under MIT license. In my opinion next to the approach which @calmh suggests with launchd I think my application feels the most native. Also I don’t like to get unused fancy features in the application so it is fairly easy to understand, with less sourcecode. It is just is drag-and-drop and it runs, you only need to pair the nodes together.


(xor-gate) #8

Also, in another thread I have suggested @calmh to think if it would be nice to have my OS X wrapper “official” for syncthing so it feels more trusted and easy to use for most users.


(Jakob Borg) #9

I think all you need is a pull request on the web page? :slight_smile:


(xor-gate) #10

I wasn’t aware the action was at my side, thanks I have created a PR here https://github.com/syncthing/website/pull/57


(xor-gate) #11

Hi @calmh as you have just give me the oppertunity to join the project. I would like to discus if you would like the xor-gate/syncthing-macosx moved into syncthing/syncthing-macosx ? I would like my co-maintainer @virusman to also be able to manage the repo a little. And for signing the .app we could use the same keys as currently is used for the syncthing executable?


(Jakob Borg) #12

You’re welcome! The project membership doesn’t do much except give you a logo on your profile, and a bunch of push rights, but it can be worth it just to show some affiliation. :slight_smile:

I am, nowadays, generally a bit wary of moving projects in underneath the Syncthing org umbrella. Doing so is a strong indicator of officialness, guaranteed compatibilityness, and willingness to maintain forever. It also removes some autonomy from you. I’m not saying we should never do it, but the implications should be seriously considered first.

The Syncthing (Mac) signing key is just my personal one, so no reason to change that I think.


(Audrius Butkevicius) #13

On the other hand, there is close to no way of finding all these cool things that the community produces. Well, there are, by reading docs and website, but who reads those anyway…

We should give some of these quality things preferential treatment.

Ditto for @canton7’s SyncTrayzor, that pretty much everyone on windows uses, yet still lives under a users account, looking less professional/quality than it really is.


(Jakob Borg) #14

OK, good enough for me. The org is configured so that it should be possible for members to transfer repos in, and push rights should be granted automatically. I can set up admin teams for the repos then. Any other collaborators today will need to be invited to the org as well, and maybe added to the relevant admin teams. I think only org owners can invite new members, so ping me or Audrius as required.

Github will forward from the old URL to the new, but if you then fork the org-owned repo to you own user (which you probably want for PRs etc) you’ll break that forward.


(Antony Male) #15

Note that GitHub API endpoints are not forwarded (or at least weren’t last time I checked), so if you’re using the GitHub API to do things like check for updates, this will break.


(xor-gate) #16

Hi guys, thanks for thinking forward. We will leave it to the autonomous point for now. Maybe I wil migrate it to the org next year, but maybe we should find a point in time where also synctrayzor could move to the org? As @calmh mentioned when it is in the main org it must indeed be “official, compatible and maintained forever”.


(xor-gate) #17

@jvlittle are you still kept back to use syncthing (and syncthing-macosx wrapper)? Feel free to contact me if you have questions or need support.


(john Little) #18

@xor-gate Personally, I am using macosx wrapper, and it is excellent. Without the wrapper I would not be using syncthing (on the mac). Most people are still using the official version, and only starting it when they need a file, thus compounding sync issues.


(xor-gate) #19

When I first found syncthing to fit my usecase and running a desktop on OS X, I was a little disappointed there was no nice native integration. So I started out with a very simple tray application in Go packaged in a nice DMG to make it shiny and drag-and-drop. After a while I got bored it still didn’t felt real-native because the screen was HiDPI so I throwed away the project, and started from scratch in 2016 writing first time in objective-c. After fiddling around a weekend I got what I liked and put it on github for other people to use. And promoting my project through some channels.

So that is my story how this beast got alive.