slackin
A little server that enables public access
to a Slack server. Like Freenode, but on Slack.
It prompts users to join by emailing them an
invite to your organization (all of it or just
one guest channel) through the Slack API.
You get:
- A landing page you can point users to
(
http://slack.yourdomain.com
) - An
<iframe>
badge to embed on any website
that shows connected users in realtime with socket.io. - A SVG badge that works well from static mediums
(like GitHub README pages)
How to use
Server
deploy to heroku button here
To launch it:
$ npm install -g slackin
$ slackin --token "token" --org socketio
The available options are:
--port [port]
– What port to bind to (defaults to 3000
)--token [token]
(required) – API token for your org. Get it
here.--org [org]
(required) – Organization subdomain (//this.slack.com)--channel [chan]
– If you want users to join just one guest channel
within your organization, provide it.--silent
- If provided, no errors or warnings are printed out.
Realtime Badge
<script async defer src="http://slackin.yourhost.com/slackin.js"></script>
or for the large version, append ?large
:
<script async defer src="http://slackin.yourhost.com/slackin.js?large"></script>
SVG
<img src="http://slackin.yourhost.com/badge.svg">
Landing page
Point to http://slackin.yourhost.com
.
Note: the image for the logo of the landing page
is retrieved from the Slack API. If your organization
doesn't have one configured, it won't be shown.
API
Requiring slackin
as a module will return
a Function
that creates a HTTP.Server
instance
that you can manipulate.
require('slackin')({
token: 'yourtoken',
interval: 1000,
org: 'your-slack-subdomain',
channel: 'channel'
silent: false
}).listen(3000);
This will show response times from Slack and how many
online users you have on the console.
By default logging is enabled.
Credits
- The SVG badge generation was taken from the
excellent shields project.
- The button CSS is based on
github-buttons.
License
MIT