Public | Automated Build

Last pushed: 10 months ago
Short Description
Web chat application for tabletop role-playing game.
Full Description


Web chat application for tabletop role-praing game.

  • The master branch is unstable. Basically, it works successfully, but have not been fully tested.
  • To get stable releases, checkout version tags (i.e. $ git checkout v1.3.0).


Fluorite5: Dice script interpreter

You can send message with Fluorite5 script sabdwitched with \.


  • \2d\ -> 2d=10
  • \10*2-4\ -> 16
  • \(1,2,3).sum()\ -> 6
  • \(1~3).sum()\ -> 6

Extend Fluorite5

Place Fluorite5 script files into fluorite-mods directory. (e.g. fluorite-mods/sw2-simple.flu5)

[deprecated] Dice roll

You can roll the dice on the command in the message.


  • 2d6=
  • 1d100=
  • 2d+3=
  • 2d+2-1=

Whisper message

You can send a whisper messages to start from @user_id.


  • @alice This message will be displayed only in alice




  • Node.js 5.x and npm
  • SQL Database
    • SQLite3 (Default)
    • MySQL
    • etc... (See also: Knex.js)
  • Redis Server
  • Nekoproxy [optional]
    • Required to enable Twitter authentication.

As a Docker Container


$ vi /path/to/nekochat/config.yml
$ cat /path/to/nekochat/config.yml
    secret: <any secret value>
    host: redis


$ docker run -d --name redis redis
$ docker run -d --name nekochat -p 80:80 --env NODE_ENV=production --link redis:redis -v /path/to/nekochat/config.yml:/usr/src/app/config/local.yml:ro nekorpg/nekochat

Add an option -v /path/to/nekochat/tmp:/usr/src/app/tmp to docker run to perpetuate SQLite3 database.

As a Node.js application


$ git clone --recursive
$ cd nekochat
$ npm install
$ npm run build


You should set the value of app.secret.

$ vi config/local.yml
$ cat config/local.yml
    secret: <any secret value>


$ npm start


Edit config/local.yml.

Default values are specified by config/default.yml and config/production.yml
See also node-config abtout the configuration system.

Key type descrption
name string Name of the application instance.
app.guest boolean Set true to allow guest login.
app.livereload boolean Set true to enable livereload scrpit to develop.
app.secret string Secret value for sessions.
browser.debug boolean Set true to enable client debugging mode.
browser.feedback_form string Set URL for google form or false to disable.
database.default object Default database configurations. See also Knex.js.
database.session object Session database configurations. This is only used is set to database.
redis object Redis client (createClient()) configuratios. See also node_redis#redis.createClient() string Host address to bind.
server.port number Port number to bind.
session object See also express-session string Type of session store. database or redis
data_cleaner object Configurations for old data cleaner
data_cleaner.file object Configurations for old file cleaner object Configurations for old room cleaner
data_cleaner.*.enabled boolean Enable cleaner
data_cleaner.*.interval string Watch interval (ISO 8601 Duration)
data_cleaner.*.soft string To soft remove the old ones than this value (ISO 8601 Duration)
data_cleaner.*.hard string To hard remove the old ones than this value (ISO 8601 Duration)
file object File uploading
file.types array MIME types of the file to be allowed to uploading
file.maxSize number/string Maximum file size to be allowed to uploading


MIT License

Docker Pull Command
Source Repository