Go to file
2014-09-13 14:29:45 -07:00
client Normalize line endings 2014-09-13 14:29:45 -07:00
screenshots Update screenshot 2014-08-17 08:25:45 -07:00
src Normalize line endings 2014-09-13 14:29:45 -07:00
users/example Update example user.json 2014-09-10 09:00:00 -07:00
.gitignore Bump version 2014-08-14 09:43:36 -07:00
app.json Added app.json 2014-09-09 18:17:13 -04:00
build.sh Precompile Handlebars templates 2014-08-25 16:13:47 -07:00
config.js Refactoring 2014-09-13 10:10:32 -07:00
Gruntfile.js Normalize line endings 2014-09-13 14:29:45 -07:00
index.js Rename cli folder 2014-08-25 02:40:13 -07:00
package.json Bump version 2014-09-13 04:31:52 -07:00
README.md Add notes about private heroku setup 2014-09-13 23:24:59 +02:00

Shout

What is it?
Shout is a web IRC client that you host on your own server.

What features does it have?

  • Multiple user support
  • Stays connected even when you close the browser
  • Connect from multiple devices at once
  • Responsive layout — works well on your smartphone
  • .. and more!

Ok, you caught my attention. I want to try it!
Here's a Shout server running in public mode, which allows for anonymous connections:

Try the Demo

Install

sudo npm install -g shout

Experimental Heroku Deployment

In order to run your own Shout instance, just hit the following button: Deploy

Please note, that this will result in a public Shout instance. In order to make it private and to register users, you need to do these steps:

git clone git@heroku.com:<your-app>.git
cd your-app
npm install
vim config.js
  # set public to false
  # set home to __dirname
git add config.js
git commit -m "Make shout private and use repo dir as shout home"
node src/command-line/index.js add <username>
git add -f users/<username>
git commit -m "Add user <username>"
git push heroku master

Usage

When the install is complete, go ahead and start the server:

shout

For more information:

shout --help

Screenshot

Configuration

Open the config.json file by running:

shout config

The settings:

port
The default port to be used.
You can override this by running shout --port 80

public
Set to either true|false.
When set to false, a login will be required for connecting users.

User Management

Go ahead and run shout --help:

$ shout --help

  Usage: shout [options] [command]

  Commands:

    start
       Start the server

    config
       Edit config: '/usr/lib/node_modules/shout/config.json'

    list
       List all existing users

    add <name>
       Add a new user

    remove <name>
       Remove an existing user

    reset <name>
       Reset user password

    edit <name>
       Edit user: '/home/erming/.shout/users/<name>/user.json'


  Options:

    -h, --help         output usage information
    -h, --host <ip>    host
    -p, --port <port>  port

Pretty simple, huh?

If you want to edit users manually, see users/example/user.json.

Custom paths

You can define Shout's file storage path via the following options:

  • Add an entry called home to the config.json file.
  • Set the environment variable SHOUT_HOME before calling the shout executable.
  • Use the default of $HOME/.shout.

Commands

These are the commands currently implemented:

  • /close
  • /connect
  • /deop
  • /devoice
  • /disconnect
  • /invite
  • /join
  • /kick
  • /leave
  • /me
  • /mode
  • /msg
  • /nick
  • /notice
  • /op
  • /part
  • /query
  • /quit
  • /quote
  • /raw
  • /say
  • /send
  • /server
  • /slap
  • /topic
  • /voice
  • /whois

License

Available under the MIT license.