A little server that enables public access to a Slack server. Like Freenode, but on Slack.
It provides
- A landing page you can point users to fill in their
emails and receive an invite (
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)
Read more about the motivations and history behind Slackin.
Or install it and launch it on your sever:
$ npm install -g slackin
$ slackin "your-slack-subdomain" "your-slack-token"You can find your API token at api.slack.com/web.
The available options are:
Usage: slackin [options] <slack-subdomain> <api-token>
Options:
-h, --help output usage information
-V, --version output the version number
-p, --port <port> Port to listen on [$PORT or 3000]
-c, --channel <chan> Single channel guest invite [$SLACK_CHANNEL]
-i, --interval <int> How frequently (ms) to poll Slack [$SLACK_INTERVAL or 1000]
-s, --silent Do not print out warns or errors
<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><img src="http://slackin.yourhost.com/badge.svg">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.
Requiring slackin as a module will return
a Function that creates a HTTP.Server instance
that you can manipulate.
require('slackin')({
token: 'yourtoken', // required
interval: 1000,
org: 'your-slack-subdomain', // required
channel: 'channel' // for single channel mode,
silent: false // suppresses warnings
}).listen(3000);This will show response times from Slack and how many online users you have on the console.
By default logging is enabled.
- The SVG badge generation was taken from the excellent shields project.
- The button CSS is based on github-buttons.
MIT