Public Slack organizations made easy
JavaScript CSS Makefile
Pull request Compare This branch is even with Wiredcraft:master.
Latest commit 819d98d Feb 10, 2015 @xeodou xeodou Fix env bug.
Permalink
Failed to load latest commit information.
bin Fix makenai@99efe9f Feb 10, 2015
lib
test
.gitignore initial release Jan 26, 2015
.npmignore
History.md
Makefile initial release Jan 26, 2015
Procfile
Readme.md
app.json
package.json Release 0.2.8 Feb 4, 2015

Readme.md

slackin

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)

How to use

Server

Deploy

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

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', // 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.

Credits

  • The SVG badge generation was taken from the excellent shields project.
  • The button CSS is based on github-buttons.

License

MIT