Hey there! I’ve recently been appointed a trustee of the Build Brighton makerspace, and would like to go about improving our ways of communicating with and between our members.
Currently we pretty much exclusively use Slack (on their free tier) – which works, and mostly gets the job done, but isn’t ideal for various reasons.
Ideally I’d quite like to get our own Discourse forum set up, and then some open source IM solution (possibly Matrix, but would settle for Rocket Chat or one of those similar options). This in itself won’t be that hard to do, but I’m worried about a few things:
It’s yet another login for our members (we already have Slack logins, and our separate management system BBMS)
Until a good number of users start using it, it will be very quiet and hence won’t be inviting to new users
It’s another thing that someone has to run and take care of
All this lead me to think: “what do other makerspaces do? Could we share?” In a similar vein to this comment about a shared Slack account managed by the Hackspace Foundation, I was wondering if any consideration had been given previously to some kind of pooled set of resources for UK hacker/maker spaces?
I’d assume that we all have at least some kind of IM solution, and/or maybe a forum as well. For both services there’s obviously going to be communications and discussions specific to a certain space, but there’s also likely to be quite a lot of overlap and potential for sharing (like I know our Slack channels are often busy with general project discussions or help requests). I think it would be really cool if instead of just discussing general topics within our own space, if we could also discuss with other makers! It would also help ease the burden on each individual space, since we can share the hosting costs and maintenance effort.
Anyway, tl;dr I guess my dream goal would be some kind of shared services that cover:
Shared Discourse forum, with subsections for each space (visible only to those members) as well as common shared subsections (visible publicly)
Shared IM/chat, with some sort of integration that automatically adds all members of each space into their own specific private channel just for that space (i.e. so Build Brighton can have a broadcast chat that includes only BB members)
Single sign-on (for shared forum, shared chat, per-space management systems)
Has anyone tried something like this before? What do people think, would it work?
Just to bring you up to speed on my comment you linked, Cheltenham Hackspace ended up going with discord as a slack alternative and it’s worked quite well (As in we’ve now got 1/3rd of our membership on it instead of our grand total of 6 users on slack). Has nice bot integration too (The python client is pretty straight forward), plus single sign on for all servers your apart of! (Take that slack!).
We have a github repo (We use the repo issues as posts) for anything important and lasting, but discord is nice for posting projects, videos, code and has the bonus of voice chat and screen share if you want to share something you’re working on with a group of people.
Yeah a few members (and trustees too) had floated the idea of Discord rather than Slack. I’ve not really used it myself, but I think it could also work slightly better than Slack does on the free tier. We do actually have a very high uptake of Slack by our member base, I’m not sure exactly but I think it’d be at least 80% – so I’m also conscious of making any changes, it really has to work the first time or we risk people dropping off and not coming back.
Personally I’d prefer to use as much open source as possible, but I realise that comes with a trade-off of needing to invest more effort into it (or pay someone to do the hosting).
At Hitchin Hackspace, we are still using the free Slack, but one of our members is testing an installation of Mattermost on a Raspberry Pi server, so we can host it ourselves (or even perhaps on a Mythic Beasts hosted Pi)
That’s a cool idea, I’d thought about whether we could host it ourselves in our space on some Pis, but unfortunately we only have a Virgin Media HFC connection which sucks because there’s no static IPs, there’s no IPv6, and the upload speeds are absolutely horrible – but Mythic Beasts might be a goer.
How many members do you have? Would joining with Build Brighton (and hopefully others) be of interest to Hitchin Hackspace? We’ve got about 100 members on our Slack group, although only about 30 of those have actually logged in recently. I’d imagine we’d get by just fine on a Pi 4 with something like Mattermost. Ideally though I’d love to run Matrix, but this I think will need a machine with a bit more grunt.
I really dislike slack because unless you pay for it, and its costs are ridiculous, you’re hindered a lot.
I’m not in a position to build any such appropriate system that would replace it. However people often overlook irc.
You can run irc on Raspberry Pi as a server, you can have a number of servers synchronised with one another, and people who love irc may even chime in here with “but why not just use freenode?” - well if you want control of it yourself, you’re going to run your own server.
Then on top of running an irc server, perhaps you could hook that into the login system for discourse, and then combine it with something like znc - so you have accounts for everyone, people get the ‘view history’ as they would with slack, and then they can use any irc client they like so long as you have the auth setup, and you can even have a web front-end for it.
Some development required. Short of working with APIs of existing systems that’s probably what you’re looking at doing.
I agree, the pricing is unbelievably expensive for what is essentially glorified IRC. If it was like £1 a month per user we might possibly consider it just for the sheer convenience – but £5.25 a month is crazy talk.
Yeah exactly, I’m thinking that no matter what we use it’d end up needing some amount of work (that is, of course, why things like Slack charge so much – they do all the hard bits). That’s why I’m hoping we can at least pool resources, since once we’ve got something set up it’d be relatively easy to just add more users, at least up to a point where it begins to be too much load and then complicated things like load balancing are needed. But I’m sure we can cross that bridge if it ever becomes an issue.
I’ll have a look into running IRC, I admit I had overlooked it. I do like the appeal of Matrix and end-to-end encryption and all the other nifty things it does, but at the end of the day having a text-based simple chat is kind of all we need.
At Teesside Hackspace we currently use free Slack, but I’ve been working on setting up a Matrix server to replace it.
Matrix works pretty well. Bridging to things like Slack and Discord should help to ease the migration path, and could allow for some cool integratons (I’ve found self hosting a Slack bridge to be a little clunky but doable). Federation looks like it could be a cool feature if other spaces got on board with Matrix, we could join each others rooms, private chat with members of other spaces etc.
I’ve been experimenting with using Keycloak for single-sign-on to various apps, so that users have a single login that works in our membereship portal, Matrix, VPN server, MQTT, etc etc. Paired with an authorizing proxy we can also use this to control access to things like Octoprint, by making users login and checking if they have permission to use the printers.
It works quite well, most software we want to use supports OAuth or SAML, and those that don’t can be put behind the authorizing proxy (I’m using Traefik with a slightly customised forward auth middleware). Since a logged in user can complete an OAuth redirect transparently, it means we can (theoretically, I’m still playing with this) do things like embed a Matrix room or a 3D printer video feed in a Wiki or web page.
Another promising feature is MQTT integration. Devices around the space can be represented by Clients in Keycloak, and each has their own set of credentials for authenticating with Mosquitto. Access to publish or read certain topics can be controlled using Roles in Keycloak, allowing users to build devices which can integrate with the space automation in a controlled way.
It’s very much a work in progress at the moment, but I’ll try to tidy it up a bit and get it on Github. Some of the principles I’ve been trying to stick to:
Everything is a container (currently orchestrated with a single docker-compose file)
That sounds pretty much exactly like what I’d like to have!
I’ve also been playing with Keycloak, and I’ve used it previously at work too (although that was only about 10 employees and only inside the local network, so not an Internet-accessible enterprise use-case) It works pretty well, can be daunting to try and use as an admin but it does a lot of stuff so that’s to be expected.
What are your thoughts, does it seem feasible to have some sort of multiple space shared instance at least of Keycloak? And perhaps also of Discourse. Each space would probably want to have its own Matrix server, to ease the load, but we can of course join ourselves with various shared rooms (as it the point of Matrix and federation). In Discourse, for example, I was anticipating various shared areas where we could all collaborate but then also specific areas per space for internal discussions and documentation which is only accessible to users in a specific group as set by Keycloak.