Code Monkey home page Code Monkey logo

slackin's Introduction

Features

  • A landing page you can point users to fill in their emails and receive an invite (https://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)
  • Abuse prevention via Google reCAPTCHA

Usage

Badges

Realtime (demo)

<script async defer src="https://slack.yourdomain.com/slackin.js"></script>
<!-- append "?large" to the URL for the large version -->

SVG (demo)

<img src="https://slack.yourdomain.com/badge.svg">

API

Loading slackin will return a Function that creates a HTTP.Server instance:

const slackin = require('slackin')

slackin.default({
  token: 'yourtoken',                             // required
  interval: 1000,
  org: 'your-slack-subdomain',                    // required
  path: '/some/path/you/host/slackin/under/',     // defaults to '/'
  channels: '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. The returned http.Server has an app property that is the express application that you can define or override routes on.

All the metadata for your organization can be fetched via a JSON HTTP request to /data.

Caught a Bug?

  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Uninstall slackin if it's already installed: npm uninstall -g slack
  3. Link it to the global module directory: npm link
  4. Transpile the source code and watch for changes: npm start

Yey! Now can use the slack command everywhere.

slackin's People

Contributors

afeld avatar alansouzati avatar andrewsardone avatar arunthampi avatar balupton avatar bnjmnt4n avatar brianloveswords avatar chadwhitacre avatar crobinson42 avatar darron avatar davidalves1 avatar davsket avatar elliottsj avatar evilrabbit avatar hardeep avatar heyjohnford avatar hickeyma avatar imbstack avatar jomo avatar jpoon avatar jszwedko avatar jtatum avatar laughinghan avatar leo avatar limulus avatar lvnilesh avatar maxwofford avatar mcmahoniel avatar rauchg avatar ssandler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slackin's Issues

Slacking on other free clouds?

Has anyone installed Slackin on other cloud platforms? (App Engine maybe?)
The free heroku has the whole 16 hours per day limit...

Assign to subdomain

Hello,

its not clear how I can assign a subdomain to the running nodejs process so I have the landing page on the subdomain.

Heroku fails to build app

When I try to deploy with Heroku, I get:

Build App
There was an issue building your app. This can mean your app.json's project is not a valid Heroku application. Please ensure your app is deployable to Heroku and try again.

Flat badge

Hi. Great project.

Is a flat version of badge already implemented?

Something similar (or equal) to the shields.io badges.

Crashes on Heroku

Here's the error:

2015-02-02T20:27:28.201168+00:00 heroku[web.1]: Starting process with command `bin/slackin --port 45132 domain token-goes-here`
2015-02-02T20:27:32.109096+00:00 app[web.1]:
2015-02-02T20:27:32.111335+00:00 app[web.1]: import express from 'express';
2015-02-02T20:27:32.122321+00:00 app[web.1]:     at Module._compile (module.js:439:25)
2015-02-02T20:27:32.122317+00:00 app[web.1]: SyntaxError: Unexpected reserved word
2015-02-02T20:27:32.122323+00:00 app[web.1]:     at Object.Module._extensions..js (module.js:474:10)
2015-02-02T20:27:32.122325+00:00 app[web.1]:     at Object.loader (/app/node_modules/6to5/lib/6to5/register.js:48:16)
2015-02-02T20:27:32.122329+00:00 app[web.1]:     at Function.Module._load (module.js:312:12)
2015-02-02T20:27:32.122326+00:00 app[web.1]:     at Module.load (module.js:356:32)
2015-02-02T20:27:32.122330+00:00 app[web.1]:     at Module.require (module.js:364:17)
2015-02-02T20:27:32.122332+00:00 app[web.1]:     at require (module.js:380:17)
2015-02-02T20:27:32.122333+00:00 app[web.1]:     at Object.<anonymous> (/app/bin/slackin:19:15)
2015-02-02T20:27:32.122335+00:00 app[web.1]:     at Module._compile (module.js:456:26)
2015-02-02T20:27:32.122336+00:00 app[web.1]:     at Object.Module._extensions..js (module.js:474:10)
2015-02-02T20:27:32.111057+00:00 app[web.1]: /app/lib/index.js:6
2015-02-02T20:27:32.114056+00:00 app[web.1]: ^^^^^^
2015-02-02T20:27:32.947903+00:00 heroku[web.1]: Process exited with status 1
2015-02-02T20:27:33.558357+00:00 heroku[web.1]: State changed from starting to crashed

I've been trying this on Heroku and inside of Docker since it was released - this looks like the closest I've gotten so far.

Bind on localhost only

It would be useful to have an option not only for the port number, but also to specify on which IP to bind the service on, so that it can be run only on 127.0.0.1.

Logo and GET MY INVITE button not working when proxied through Nginx

I'm running slackin in a screen session (I'm a nodejs noob, but I would love to be able to run it with pm2, is it possible?), and i setup a proxy_pass on nginx to serve the page at a specific URI of a website i run.
The page is served, but it isn't functioning properly. Firstly it doesn't manage to pull the logos, and secondly, filling the form and clicking the button doesn't actually do anything.

Not Fully Mobile Friendly

Great App!
You are missing a viewport meta tag setting in the index.js file.

I'll be submitting a PR to fix the mobile friendliness of the app.

Admin user is now required, can't use owner account

Today, myself (and several other slackin users that have contacted me personally) have all hit the error Missing admin scope: The token you provided is for an account that is not an admin when a user enters their email. I resolved this by creating a user with admin permissions and using that user's token, rather than using my (the owner's) token.

Application locks up on fetching data

Every once in a while the app locks up on fetching data, and seem to refuse to time out:

2015-08-14T14:44:12.49-0400 [App/0]      OUT Fri Aug 14 2015 18:44:12 GMT+0000 (UTC) – fetching
2015-08-14T14:44:14.99-0400 [App/0]      OUT Fri Aug 14 2015 18:44:14 GMT+0000 (UTC) – online 23, total 111 (+1857ms)
2015-08-14T14:44:28.26-0400 [App/0]      OUT Fri Aug 14 2015 18:44:27 GMT+0000 (UTC) – fetching

It hangs there, no new fetching is performed, and it won't answer any requests.

I've tried increasing the interval to 10s instead of 1s, same result.

Not getting invites

I set up and successfully deployed to Heroku using the link via the README. I even accounted for the issue #11. However when I test the landing page with an email, none is sent.

Is there something else others have done to get a response?

Heroku logs:

2015-02-11T10:24:19.975754+00:00 app[web.1]: Wed Feb 11 2015 10:24:19 GMT+0000 (UTC)  fetching
2015-02-11T10:24:20.145465+00:00 app[web.1]: Wed Feb 11 2015 10:24:20 GMT+0000 (UTC)  online 5, total 52 (+170ms)
2015-02-11T10:24:21.146938+00:00 app[web.1]: Wed Feb 11 2015 10:24:21 GMT+0000 (UTC)  fetching
2015-02-11T10:24:21.303834+00:00 app[web.1]: Wed Feb 11 2015 10:24:21 GMT+0000 (UTC)  online 5, total 52 (+157ms)
2015-02-11T10:24:22.305397+00:00 app[web.1]: Wed Feb 11 2015 10:24:22 GMT+0000 (UTC)  fetching
2015-02-11T10:24:22.485901+00:00 app[web.1]: Wed Feb 11 2015 10:24:22 GMT+0000 (UTC)  online 5, total 52 (+180ms)
2015-02-11T10:24:23.488368+00:00 app[web.1]: Wed Feb 11 2015 10:24:23 GMT+0000 (UTC)  fetching
2015-02-11T10:24:23.658190+00:00 app[web.1]: Wed Feb 11 2015 10:24:23 GMT+0000 (UTC)  online 5, total 52 (+169ms)
2015-02-11T10:24:24.659772+00:00 app[web.1]: Wed Feb 11 2015 10:24:24 GMT+0000 (UTC)  fetching
2015-02-11T10:24:24.928736+00:00 app[web.1]: Wed Feb 11 2015 10:24:24 GMT+0000 (UTC)  online 5, total 52 (+269ms)
2015-02-11T10:24:25.931078+00:00 app[web.1]: Wed Feb 11 2015 10:24:25 GMT+0000 (UTC)  fetching
2015-02-11T10:24:29.932759+00:00 app[web.1]: Wed Feb 11 2015 10:24:29 GMT+0000 (UTC)  online 5, total 52 (+4002ms)
2015-02-11T10:24:30.941297+00:00 app[web.1]: Wed Feb 11 2015 10:24:30 GMT+0000 (UTC)  fetching
2015-02-11T10:24:31.152618+00:00 app[web.1]: Wed Feb 11 2015 10:24:31 GMT+0000 (UTC)  online 5, total 52 (+211ms)
2015-02-11T10:24:32.162730+00:00 app[web.1]: Wed Feb 11 2015 10:24:32 GMT+0000 (UTC)  fetching
2015-02-11T10:24:32.330541+00:00 app[web.1]: Wed Feb 11 2015 10:24:32 GMT+0000 (UTC)  online 5, total 52 (+168ms)
2015-02-11T10:24:33.332090+00:00 app[web.1]: Wed Feb 11 2015 10:24:33 GMT+0000 (UTC)  fetching
2015-02-11T10:24:33.519315+00:00 app[web.1]: Wed Feb 11 2015 10:24:33 GMT+0000 (UTC)  online 5, total 52 (+188ms)
2015-02-11T10:24:34.520937+00:00 app[web.1]: Wed Feb 11 2015 10:24:34 GMT+0000 (UTC)  fetching
2015-02-11T10:24:34.682489+00:00 app[web.1]: Wed Feb 11 2015 10:24:34 GMT+0000 (UTC)  online 5, total 52 (+162ms)
2015-02-11T10:24:35.682969+00:00 app[web.1]: Wed Feb 11 2015 10:24:35 GMT+0000 (UTC)  fetching
2015-02-11T10:24:35.861516+00:00 app[web.1]: Wed Feb 11 2015 10:24:35 GMT+0000 (UTC)  online 5, total 52 (+179ms)
2015-02-11T10:24:36.862752+00:00 app[web.1]: Wed Feb 11 2015 10:24:36 GMT+0000 (UTC)  fetching
2015-02-11T10:24:37.127527+00:00 app[web.1]: Wed Feb 11 2015 10:24:37 GMT+0000 (UTC)  online 5, total 52 (+265ms)
2015-02-11T10:24:38.129095+00:00 app[web.1]: Wed Feb 11 2015 10:24:38 GMT+0000 (UTC)  fetching
2015-02-11T10:24:38.421819+00:00 app[web.1]: Wed Feb 11 2015 10:24:38 GMT+0000 (UTC)  online 5, total 52 (+293ms)
2015-02-11T10:24:39.424489+00:00 app[web.1]: Wed Feb 11 2015 10:24:39 GMT+0000 (UTC)  fetching
2015-02-11T10:24:39.593630+00:00 app[web.1]: Wed Feb 11 2015 10:24:39 GMT+0000 (UTC)  online 5, total 52 (+169ms)
2015-02-11T10:24:40.594730+00:00 app[web.1]: Wed Feb 11 2015 10:24:40 GMT+0000 (UTC)  fetching
2015-02-11T10:24:40.851706+00:00 app[web.1]: Wed Feb 11 2015 10:24:40 GMT+0000 (UTC)  online 5, total 52 (+257ms)
2015-02-11T10:24:41.853813+00:00 app[web.1]: Wed Feb 11 2015 10:24:41 GMT+0000 (UTC)  fetching
2015-02-11T10:24:42.141332+00:00 app[web.1]: Wed Feb 11 2015 10:24:42 GMT+0000 (UTC)  online 5, total 52 (+288ms)
2015-02-11T10:24:43.143348+00:00 app[web.1]: Wed Feb 11 2015 10:24:43 GMT+0000 (UTC)  fetching
2015-02-11T10:24:43.410473+00:00 app[web.1]: Wed Feb 11 2015 10:24:43 GMT+0000 (UTC)  online 5, total 52 (+267ms)
2015-02-11T10:24:44.411609+00:00 app[web.1]: Wed Feb 11 2015 10:24:44 GMT+0000 (UTC)  fetching
2015-02-11T10:24:44.665309+00:00 app[web.1]: Wed Feb 11 2015 10:24:44 GMT+0000 (UTC)  online 5, total 52 (+254ms)
2015-02-11T10:24:45.667205+00:00 app[web.1]: Wed Feb 11 2015 10:24:45 GMT+0000 (UTC)  fetching
2015-02-11T10:24:45.938724+00:00 app[web.1]: Wed Feb 11 2015 10:24:45 GMT+0000 (UTC)  online 5, total 52 (+271ms)
2015-02-11T10:24:46.939923+00:00 app[web.1]: Wed Feb 11 2015 10:24:46 GMT+0000 (UTC)  fetching
2015-02-11T10:24:47.103133+00:00 app[web.1]: Wed Feb 11 2015 10:24:47 GMT+0000 (UTC)  online 5, total 52 (+163ms)
2015-02-11T10:24:48.104902+00:00 app[web.1]: Wed Feb 11 2015 10:24:48 GMT+0000 (UTC)  fetching
2015-02-11T10:24:48.370181+00:00 app[web.1]: Wed Feb 11 2015 10:24:48 GMT+0000 (UTC)  online 5, total 52 (+266ms)
2015-02-11T10:24:49.372348+00:00 app[web.1]: Wed Feb 11 2015 10:24:49 GMT+0000 (UTC)  fetching
2015-02-11T10:24:49.626760+00:00 app[web.1]: Wed Feb 11 2015 10:24:49 GMT+0000 (UTC)  online 5, total 52 (+254ms)
2015-02-11T10:24:50.628973+00:00 app[web.1]: Wed Feb 11 2015 10:24:50 GMT+0000 (UTC)  fetching
2015-02-11T10:24:50.882872+00:00 app[web.1]: Wed Feb 11 2015 10:24:50 GMT+0000 (UTC)  online 5, total 52 (+254ms)
2015-02-11T10:24:51.884993+00:00 app[web.1]: Wed Feb 11 2015 10:24:51 GMT+0000 (UTC)  fetching
2015-02-11T10:24:52.141961+00:00 app[web.1]: Wed Feb 11 2015 10:24:52 GMT+0000 (UTC)  online 5, total 52 (+257ms)
2015-02-11T10:24:53.144203+00:00 app[web.1]: Wed Feb 11 2015 10:24:53 GMT+0000 (UTC)  fetching
2015-02-11T10:24:53.305251+00:00 app[web.1]: Wed Feb 11 2015 10:24:53 GMT+0000 (UTC)  online 5, total 52 (+161ms)
2015-02-11T10:24:54.307368+00:00 app[web.1]: Wed Feb 11 2015 10:24:54 GMT+0000 (UTC)  fetching
2015-02-11T10:24:54.492582+00:00 app[web.1]: Wed Feb 11 2015 10:24:54 GMT+0000 (UTC)  online 5, total 52 (+185ms)
2015-02-11T10:24:55.493674+00:00 app[web.1]: Wed Feb 11 2015 10:24:55 GMT+0000 (UTC)  fetching
2015-02-11T10:24:55.664586+00:00 app[web.1]: Wed Feb 11 2015 10:24:55 GMT+0000 (UTC)  online 5, total 52 (+171ms)
2015-02-11T10:24:56.665823+00:00 app[web.1]: Wed Feb 11 2015 10:24:56 GMT+0000 (UTC)  fetching
2015-02-11T10:24:56.926372+00:00 app[web.1]: Wed Feb 11 2015 10:24:56 GMT+0000 (UTC)  online 5, total 52 (+261ms)
2015-02-11T10:24:57.928192+00:00 app[web.1]: Wed Feb 11 2015 10:24:57 GMT+0000 (UTC)  fetching
2015-02-11T10:24:58.096278+00:00 app[web.1]: Wed Feb 11 2015 10:24:58 GMT+0000 (UTC)  online 5, total 52 (+168ms)
2015-02-11T10:24:59.097533+00:00 app[web.1]: Wed Feb 11 2015 10:24:59 GMT+0000 (UTC)  fetching
2015-02-11T10:24:59.365226+00:00 app[web.1]: Wed Feb 11 2015 10:24:59 GMT+0000 (UTC)  online 5, total 52 (+268ms)
2015-02-11T10:25:00.367286+00:00 app[web.1]: Wed Feb 11 2015 10:25:00 GMT+0000 (UTC)  fetching
2015-02-11T10:25:00.527206+00:00 app[web.1]: Wed Feb 11 2015 10:25:00 GMT+0000 (UTC)  online 5, total 52 (+160ms)

Issues installing from npm

Hey, this package looks awesome and I'd love to use it. I'm having some trouble installing it from npm though. Any idea what could be going on?

root@reactiflux:~# sudo npm install -g slackin

> [email protected] install /usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/engine.io/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory `/usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
  COPY Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
  COPY Release/validation.node
make: Leaving directory `/usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/engine.io/node_modules/ws/build'
npm WARN optional dep failed, continuing [email protected]

> [email protected] install /usr/local/lib/node_modules/slackin/node_modules/6to5/node_modules/kexec
> pangyp configure build

gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.34"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/slackin/node_modules/6to5/node_modules/kexec/.node-gyp"
make: Entering directory `/usr/local/lib/node_modules/slackin/node_modules/6to5/node_modules/kexec/build'
  CXX(target) Release/obj.target/kexec/src/kexec.o
  SOLINK_MODULE(target) Release/obj.target/kexec.node
  SOLINK_MODULE(target) Release/obj.target/kexec.node: Finished
  COPY Release/kexec.node
make: Leaving directory `/usr/local/lib/node_modules/slackin/node_modules/6to5/node_modules/kexec/build'

> [email protected] install /usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory `/usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build'
  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node
  SOLINK_MODULE(target) Release/obj.target/bufferutil.node: Finished
  COPY Release/bufferutil.node
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/obj.target/validation.node
  SOLINK_MODULE(target) Release/obj.target/validation.node: Finished
  COPY Release/validation.node
make: Leaving directory `/usr/local/lib/node_modules/slackin/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/build'
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/slackin/bin/skackin'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 3.13.0-37-generic
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "slackin"
npm ERR! cwd /root
npm ERR! node -v v0.10.34
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/slackin/bin/skackin
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! not ok code 0

Black ‘shield’ looks out-of-place

This looks pretty out-of-place:

screen shot 2015-05-06 at 6 24 40 pm

I'd also really like the option to customize the appearance of the badge, à la Shields:

<img alt='Slack chat-channel'
   src="https://slackin-paws.herokuapp.com/badge.svg?style=flat-square&label=chat">

Perhaps we could even get first-class treatment of Slackin' instances by @badges / http://shields.io?

No Landing Page

I'm using Webfaction for my hosting and I've setup the package and slackin 'productivitychat' 'token' is working and I get the following terminal message:

Thu Aug 06 2015 17:06:05 GMT+0000 (UTC) – fetching
Thu Aug 06 2015 17:06:05 GMT+0000 (UTC) – listening on *:3000
Thu Aug 06 2015 17:06:06 GMT+0000 (UTC) – ready
Thu Aug 06 2015 17:06:06 GMT+0000 (UTC) – online 4, total 46
and it continues...

Here's my problem, when I go to slack.productivitychat.com the page says "Hello World" and I don't see any slackin files.

Can you help me out? Why can't I access the landing page?

Herokuapp - No emails

I just did a herokuapp install and everything looks fine, however, users do not seem to receive an email.

Does anyone know what this could be from off hand,

Deploying to Heroku not working

I get only this message:

There was an issue building your app. This can mean your app.json's project is not a valid Heroku application. Please ensure your app is deployable to Heroku and try again.

Translations

It would be great if it was possible to chose a language, at least for the user facing website / frame.

Is there a standard way to attempt this? It would require some rewriting and parametrizing strings from what I can tell, I'm not sure how to handle and structure the translation files.

Never get email after simple Heroku deployment

image

Never get email after submitting... I did the plain vanilla Heroku deployment. Forgive me on this, but not sure what troubleshooting information to provide, so let me know where to look and what to provide.

Running on my own server + nginx proxying + hard-coded assets URL = fail

Hello.

I have installed Slackin on my own server, and set up nginx's proxy to hide awful port thingy.
This is what I get: https://midgardr.ardiefox.me/kr-bsd-slack/
As you can see, nothing appears correctly due to that hard-coded /assets/... resource URLs.

Following is my current configuration.
First, I installed Slackin locally on /root/node_modules/slackin and ran it inside tmux like this: slackin --port 12661 --interval 60000 "kr-bsd" "MY-TOKEN"
And, this is my nginx config:

# ...
# [redacted]
# ...
location /kr-bsd-slack/ {
        proxy_cache off;
        proxy_http_version 1.1;
        proxy_pass http://localhost:12661/;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-NginX-Proxy true;
}
# ...
# [redacted]
# ...

And finally, this is what I get on /var/log/nginx/error.log:

2015/04/02 02:21:35 [error] 89021#0: *132 open() "/usr/local/www/public_html/assets/slack.svg" failed (2: No such file or directory), client: 165.194.27.163, server: midgardr.ardiefox.me, request: "GET /assets/slack.svg HTTP/1.1", host: "midgardr.ardiefox.me", referrer: "https://midgardr.ardiefox.me/kr-bsd-slack/"
2015/04/02 02:21:35 [error] 89021#0: *132 open() "/usr/local/www/public_html/assets/superagent.js" failed (2: No such file or directory), client: 165.194.27.163, server: midgardr.ardiefox.me, request: "GET /assets/superagent.js HTTP/1.1", host: "midgardr.ardiefox.me", referrer: "https://midgardr.ardiefox.me/kr-bsd-slack/"
2015/04/02 02:21:35 [error] 89021#0: *132 open() "/usr/local/www/public_html/assets/client.js" failed (2: No such file or directory), client: 165.194.27.163, server: midgardr.ardiefox.me, request: "GET /assets/client.js HTTP/1.1", host: "midgardr.ardiefox.me", referrer: "https://midgardr.ardiefox.me/kr-bsd-slack/"

According to the log, every request that starts with /assets/ basically goes into the public_html root of the server.
I even tried editing the source code to remove that webroot-referring URL, but failed eventually.

What should I do to solve this problem?

Error: Not a permitted channel

screen shot 2015-06-08 at 15 05 37

I initially created an #fr channel & during the heroku deploy I specified this channel.
After that all try to get an invite return this error.

I tried to change back to #general on heroku, same error.

Any idea ?

Unhandle exception

My server down after hours online ... with the following exception:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: Invalid Slack response: 504
    at SlackData.onres (/var/www/slackin.vluzrmos.com.br/node_modules/slackin/node/slack.js:87:22)
    at /var/www/slackin.vluzrmos.com.br/node_modules/slackin/node/slack.js:42:17
    at Request.callback (/var/www/slackin.vluzrmos.com.br/node_modules/slackin/node_modules/superagent/lib/node/index.js:746:30)
    at Request.<anonymous> (/var/www/slackin.vluzrmos.com.br/node_modules/slackin/node_modules/superagent/lib/node/index.js:135:10)
    at Request.EventEmitter.emit (events.js:95:17)
    at ClientRequest.<anonymous> (/var/www/slackin.vluzrmos.com.br/node_modules/slackin/node_modules/superagent/lib/node/index.js:921:12)
    at ClientRequest.EventEmitter.emit (events.js:95:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1688:21)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
    at CleartextStream.socketOnData [as ondata] (http.js:1583:20)

Readme badge is too large

As you can see on your own github readme, the badge has a large white space around the image and therefore breaks the layout.

Invite Emails not sending

When users are putting in their email and hitting the request invite button, they get the "Woot!, Check your Email" Message, but no email is being sent. Not in spam or anything.

I have this installed in Heroku

Bug when trying to use Slackin badge and Twitter follow badge on same page

I believe the bug is on this line: https://github.com/rauchg/slackin/blob/master/lib/assets/badge.js#L76

Twitter uses the same technique as Slacking to embed a badge, however, they send an object in e.data instead of a string, so while the badges will end up both working on the page you end up with a javascript error in your console because you can't substr and object.

I believe the fix would be to rewrite:

if (wp == e.data.substr(0, wp.length))

as:

if (typeof e.data === "string" && wp === e.data.substr(0, wp.length))

Thoughts?

v0.5.0 crashes if can't get the channel list from Slack

Started yesterday when Slack reported connectivity issues, we experienced one more crash after that. IMO Slackin should handle this case (when it can't get the channel list or other non crucial information from Slack API) instead of crashing.

Here are the logs:

Tue May 12 2015 14:42:54 GMT+0000 (UTC) – online 1, total 5 (+481ms)
Tue May 12 2015 14:42:55 GMT+0000 (UTC) – fetching
Tue May 12 2015 14:42:55 GMT+0000 (UTC) – online 1, total 5 (+426ms)
Tue May 12 2015 14:42:56 GMT+0000 (UTC) – fetching

/usr/local/lib/node_modules/slackin/node/slack.js:70
        res.body.channels.forEach(function (channel) {
                          ^
TypeError: Cannot call method 'forEach' of undefined
    at SlackData.onres (/usr/local/lib/node_modules/slackin/node/slack.js:70:27)
    at /usr/local/lib/node_modules/slackin/node/slack.js:41:17
    at Request.callback (/usr/local/lib/node_modules/slackin/node_modules/superagent/lib/node/index.js:746:30)
    at Request.<anonymous> (/usr/local/lib/node_modules/slackin/node_modules/superagent/lib/node/index.js:135:10)
    at Request.emit (events.js:95:17)
    at ClientRequest.<anonymous> (/usr/local/lib/node_modules/slackin/node_modules/superagent/lib/node/index.js:921:12)
    at ClientRequest.emit (events.js:95:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1689:21)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:122:23)
    at CleartextStream.socketOnData [as ondata] (http.js:1584:20)

Maintenance

@rauchg we are using slackin for the bevry community - https://bevry.me - I've noticed that a few pull requests, as well as many issues have not been addressed. If you'd like, we (the bevry community) can take over maintenance of this project. I have experience maintaining about 200 npm packages already.

The easiest way would be it to be transferred to the bevry github org - https://github.com/bevry - that way we can manage github permissions easily with our community.

Let me know your thoughts.

Show badge but not signup modal?

I LOVE this. I've already implemented it for my course.

My question is it possible to show the badge with the active/total but not have it clickable? Since my slack is private (and an upsell in my course), I want to show folks that it's busy and active to encourage them to pay for access.

So can the badge and #s beside it be shown without the ability to click it to join the channel?

Deploy to Heroku fails

Thanks for this awesome app. But when using the 'Deploy to Heroku' button on the page and filling in the details in heroku it says:

"There was an issue setting up your app environment - could not find the source blob"

Will try installing it locally now.

Pre-populate email / firstName & lastName

In our use case we already have the users email / firstName + lastName handy.

I've extended our fork to pre-populate these details which the invite method accepts (undocumented).

Let me know if you're interested in the feature.

Allow HTTPS to be enforced

This might typically be done at a reverse proxy layer like nginx, but if you're running slackin on Heroku or Cloud Foundry or another PaaS, that may not be possible.

We're currently using Slackin at https://chat.18f.gov (hosted on an internal PaaS), and we very much need to comply with new federal requirements around HTTPS, which includes redirecting HTTP -> HTTPS, and setting an HSTS header.

Ideally, this would take the form of another couple of environment variables that turn this on, and looks for a header that indicates the original protocol. The closest thing to a standard protocol I've seen for this, that Amazon ELBs pass on, Heroku passes on, and various nginx configurations pass on, isX-Forwarded-Proto.

Moderation approach?

Have you considered offering some flag to make the signup process go through a moderation workflow?

As a Slack admin, I'd like to moderate new signups to ensure the cohesion of my community.

Single-channel config resulting in "Not a permitted channel"

I'm running on Heroku and starting slackin like so where $SLACK_CHANNELS is "opensource".

make && bin/slackin --channels "$SLACK_CHANNELS" --port $PORT $SLACK_SUBDOMAIN $SLACK_API_TOKEN

After I start the webapp and attempt to put in any email address, the application errors out and says "Not a permitted channel." I have verified that the Slack API token I gave it comes from an admin. When visiting the index, the correct information is displayed in the browser: "Join My Org #opensource on Slack."

Relevant code appears to be from here:
https://github.com/rauchg/slackin/blob/master/lib/index.js#L33-L40
https://github.com/rauchg/slackin/blob/master/lib/index.js#L82-L98

I'm not certain why this is failing. If this isn't an obvious bug, can you provide some advice for debugging it on my end? Thanks!

Memory quota exceeded on Heroku

I've been running slackin successfully for a few days now but I noticed that it was down this morning. After checking the Heroku logs it was clear why, though not so clear on what caused it:

...
2015-03-31T07:58:39.101185+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/socket.io/?EIO=3&transport=polling&t=1427788687612-6" host=opendatacommunity.herokuapp.com request_id=62d01692-1d17-40cd-ac19-ab693d6f3c3d fwd="62.254.247.134" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0
2015-03-31T07:58:45.908990+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2015-03-31T07:58:45.908779+00:00 heroku[web.1]: Process running mem=548M(107.2%)
2015-03-31T07:58:48.804867+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/socket.io/?EIO=3&transport=polling&t=1427788680334-4902" host=opendatacommunity.herokuapp.com request_id=cc52c0c7-d344-4522-84d5-3c7566a95b2f fwd="108.212.76.164" dyno=web.1 connect=0ms service=30002ms status=503 bytes=0
...

That repeats over and over and I'm not able to find out exactly when it started but it was at least for 10 minutes or so (possibly longer as I can't see the rest of the logs). I had to restart the dyno to get things back up again.

Let me know what I can do to help diagnose.

Running on my server

Hi

I try install it on Heroku but it not woking, because I use free Heroku, then I try running on my server but not woking

Here error:

Wed Apr 01 2015 14:04:12 GMT+0700 (ICT) – retrying
Wed Apr 01 2015 14:04:14 GMT+0700 (ICT) – fetching
Wed Apr 01 2015 14:04:15 GMT+0700 (ICT) – Error: Hostname/IP doesn't match certificate's altnames
    at SecurePair.<anonymous> (tls.js:1390:23)
    at SecurePair.emit (events.js:92:17)
    at SecurePair.maybeInitFinished (tls.js:980:10)
    at CleartextStream.read [as _read] (tls.js:472:13)
    at CleartextStream.Readable.read (_stream_readable.js:341:10)
    at EncryptedStream.write [as _write] (tls.js:369:25)
    at doWrite (_stream_writable.js:226:10)
    at writeOrBuffer (_stream_writable.js:216:5)
    at EncryptedStream.Writable.write (_stream_writable.js:183:11)
    at write (_stream_readable.js:602:24)
    at flow (_stream_readable.js:611:7)
    at Socket.pipeOnReadable (_stream_readable.js:643:5)
Wed Apr 01 2015 14:04:15 GMT+0700 (ICT) – retrying
Wed Apr 01 2015 14:04:17 GMT+0700 (ICT) – fetching
Wed Apr 01 2015 14:04:18 GMT+0700 (ICT) – Error: Hostname/IP doesn't match certificate's altnames

Anyone help me suggestion a solutions?

What langauge is the splash.js CSS written in?

I have been searching for the past few hours and cannot find a single documentation on the CSS. I can't even find what language the CSS is written in on the splash page. Links or just the name even of the CSS being used would be helpful. Or just knowing it was written specifically for slackin would be able to help me out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.