atom / teletype

Share your workspace with team members and collaborate on code in real time in Atom
https://teletype.atom.io
MIT License
2.41k stars 322 forks source link

Formally support on-prem hosting setup (requires pusher alternatives) #540

Open eyakimov-bbg opened 4 years ago

eyakimov-bbg commented 4 years ago

Summary

Formally support on-prem hosting by allowing organisations to host their own teletype-server and pub-sub solution (to replace pusher).

Motivation

Currently, although I can run my own teletype-server, I am unable to run Teletype at my organisation because the pusher dependency suffers from connectivity issues via proxies and violates some regulations that my organisation is bound to in terms of restricting access to some code. It would be great to formally support an on-prem option including finding an alternative pub-sub.

Describe alternatives you've considered

Although teletype allows customising the server, the pusher dependency can not be customised.

I have also tried manually installing a branch of these modules from the PRs referenced below that inspired this issue, and although it is possible to do this, all participants of Teletype would have to go through this setup which doesn't scale very well given that for many Atom is not their primary IDE.

Additional context

I have reviewed the existing PRs which attempt to do this, which took some setup before I managed to get them to work properly across multiple devices: https://github.com/atom/teletype/pull/393 https://github.com/atom/teletype-client/pull/67 https://github.com/atom/teletype-server/pull/50

Since the PRs above actually go beyond just Pusher, including custom ICE and IdentityProviders, I suggest that for now this feature only focus on the PubSub, with socketcluster seeming like quite a good alternative.

I suggest the following changes:

teletype

teletype-server

teletype-client

I'll be happy to elaborate in more detail in an RFC if required