2014-08-02 12:13:58 +00:00
|
|
|
# Shout [![](https://badge.fury.io/js/shout.png)](https://www.npmjs.org/package/shout)
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-18 12:50:12 +00:00
|
|
|
__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
|
2014-08-18 12:55:27 +00:00
|
|
|
- _.. and more!_
|
2014-08-18 12:50:12 +00:00
|
|
|
|
2014-08-18 12:55:27 +00:00
|
|
|
__Ok, you caught my attention. I want to try it!__
|
|
|
|
Here's a Shout server running in public mode, which allows for anonymous connections:
|
2014-08-18 12:50:12 +00:00
|
|
|
|
2014-09-09 23:00:52 +00:00
|
|
|
### [Try the Demo](http://shout-irc.com:9000/)
|
2014-07-20 23:14:36 +00:00
|
|
|
|
|
|
|
## Install
|
|
|
|
|
2014-08-13 01:27:53 +00:00
|
|
|
```
|
|
|
|
sudo npm install -g shout
|
|
|
|
```
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-09-13 21:36:02 +00:00
|
|
|
### Experimental Heroku Deployment
|
2014-09-13 18:36:56 +00:00
|
|
|
|
2014-09-13 21:36:02 +00:00
|
|
|
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)
|
2014-09-13 18:36:56 +00:00
|
|
|
|
|
|
|
Please note, that this will result in a public Shout instance. In order to make it private
|
2014-09-13 21:36:02 +00:00
|
|
|
and to register users, you need to follow these steps:
|
2014-09-13 18:36:56 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
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
|
|
|
|
```
|
2014-09-09 23:00:52 +00:00
|
|
|
|
2014-08-13 01:27:53 +00:00
|
|
|
## Usage
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-13 01:27:53 +00:00
|
|
|
When the install is complete, go ahead and start the server:
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-13 01:27:53 +00:00
|
|
|
```
|
2014-08-17 15:40:28 +00:00
|
|
|
shout
|
|
|
|
```
|
|
|
|
|
|
|
|
For more information:
|
2014-08-19 01:53:17 +00:00
|
|
|
|
2014-08-17 15:40:28 +00:00
|
|
|
```
|
|
|
|
shout --help
|
2014-08-13 01:27:53 +00:00
|
|
|
```
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-17 15:17:18 +00:00
|
|
|
## Screenshot
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-17 15:40:28 +00:00
|
|
|
![](https://raw.github.com/erming/shout/master/screenshots/shout.png)
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2014-08-19 01:53:17 +00:00
|
|
|
Open the `config.json` file by running:
|
|
|
|
|
|
|
|
```
|
|
|
|
shout config
|
|
|
|
```
|
|
|
|
|
|
|
|
The settings:
|
2014-08-17 15:40:28 +00:00
|
|
|
|
|
|
|
__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.
|
2014-07-20 23:14:36 +00:00
|
|
|
|
2014-08-19 01:53:17 +00:00
|
|
|
|
2014-08-17 22:05:27 +00:00
|
|
|
## User Management
|
|
|
|
|
|
|
|
Go ahead and run `shout --help`:
|
|
|
|
|
|
|
|
```
|
2014-09-11 21:01:53 +00:00
|
|
|
$ shout --help
|
2014-08-17 22:05:27 +00:00
|
|
|
|
2014-09-11 21:01:53 +00:00
|
|
|
Usage: shout [options] [command]
|
2014-08-17 22:05:27 +00:00
|
|
|
|
2014-09-11 21:01:53 +00:00
|
|
|
Commands:
|
2014-08-25 10:35:19 +00:00
|
|
|
|
2014-09-11 21:01:53 +00:00
|
|
|
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
|
|
|
|
|
2014-09-11 21:02:57 +00:00
|
|
|
reset <name>
|
|
|
|
Reset user password
|
|
|
|
|
2014-09-11 21:01:53 +00:00
|
|
|
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
|
2014-08-17 22:05:27 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Pretty simple, huh?
|
|
|
|
|
|
|
|
If you want to edit users manually, see `users/example/user.json`.
|
|
|
|
|
2014-09-13 12:23:17 +00:00
|
|
|
## 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`.
|
|
|
|
|
2014-08-17 15:40:28 +00:00
|
|
|
## Commands
|
2014-07-20 23:14:36 +00:00
|
|
|
|
|
|
|
These are the commands currently implemented:
|
|
|
|
|
|
|
|
- [x] /close
|
|
|
|
- [x] /connect
|
|
|
|
- [x] /deop
|
|
|
|
- [x] /devoice
|
|
|
|
- [x] /disconnect
|
|
|
|
- [x] /invite
|
|
|
|
- [x] /join
|
|
|
|
- [x] /kick
|
|
|
|
- [x] /leave
|
|
|
|
- [x] /me
|
|
|
|
- [x] /mode
|
|
|
|
- [x] /msg
|
|
|
|
- [x] /nick
|
|
|
|
- [x] /notice
|
|
|
|
- [x] /op
|
|
|
|
- [x] /part
|
|
|
|
- [x] /query
|
|
|
|
- [x] /quit
|
2014-08-25 10:35:19 +00:00
|
|
|
- [x] /quote
|
2014-07-20 23:14:36 +00:00
|
|
|
- [x] /raw
|
|
|
|
- [x] /say
|
|
|
|
- [x] /send
|
|
|
|
- [x] /server
|
|
|
|
- [x] /slap
|
|
|
|
- [x] /topic
|
|
|
|
- [x] /voice
|
|
|
|
- [x] /whois
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
Available under [the MIT license](http://mths.be/mit).
|