All Projects → mondediefr → mondedie-chat

mondediefr / mondedie-chat

Licence: Apache-2.0 license
Node.js chat application using Express, Socket.io, Redis and Mithril

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to mondedie-chat

user-bio
Add a User Bio feature to Flarum
Stars: ✭ 16 (-60%)
Mutual labels:  flarum
discussion-cards
Output of discussions in form of cards
Stars: ✭ 15 (-62.5%)
Mutual labels:  flarum
Core
Simple forum software for building great communities.
Stars: ✭ 5,372 (+13330%)
Mutual labels:  flarum
french
French language pack to localize the Flarum forum software plus its official and third-party extensions.
Stars: ✭ 17 (-57.5%)
Mutual labels:  flarum
flarum-doc
Flarum 文档
Stars: ✭ 61 (+52.5%)
Mutual labels:  flarum
flarum-ext-indonesian
Indonesian Language Pack for Flarum
Stars: ✭ 13 (-67.5%)
Mutual labels:  flarum
fluxbb to flarum
🚀 FluxBB to Flarum importer
Stars: ✭ 14 (-65%)
Mutual labels:  flarum
reactions
❤ A Flarum extension that adds reactions to your Flarum Community!
Stars: ✭ 17 (-57.5%)
Mutual labels:  flarum
ads
Allows you to configure ads in several locations
Stars: ✭ 17 (-57.5%)
Mutual labels:  flarum
oauth
Allow users to log in with GitHub, Twitter, Facebook, and more!
Stars: ✭ 21 (-47.5%)
Mutual labels:  flarum
flarum-laravel-integration
Example and guide to integrating Flarum with Laravel's basic auth.
Stars: ✭ 26 (-35%)
Mutual labels:  flarum
flarum-ext-email-verification-switch
Disable new registered user email verification, will be activated automatically.
Stars: ✭ 18 (-55%)
Mutual labels:  flarum
flarum-ext-sso
🔒 Single Sign On for Flarum.
Stars: ✭ 59 (+47.5%)
Mutual labels:  flarum
masquerade
User profile builder extension for your Flarum forum.
Stars: ✭ 17 (-57.5%)
Mutual labels:  flarum
Flarum
Flarum - 优雅自由的 PHP 轻社区
Stars: ✭ 1,588 (+3870%)
Mutual labels:  flarum
links
Manage Flarum primary navigation links
Stars: ✭ 31 (-22.5%)
Mutual labels:  flarum
byobu
Well integrated, advanced private discussions for your Flarum forum.
Stars: ✭ 49 (+22.5%)
Mutual labels:  flarum
awesome-flarum
A curated list of amazingly awesome Flarum extensions and resources.
Stars: ✭ 151 (+277.5%)
Mutual labels:  flarum
Flarum
Simple forum software for building great communities.
Stars: ✭ 12,190 (+30375%)
Mutual labels:  flarum
flarum-ext-dashboard
DEPRECATED This completely re-imagines the Admin interface
Stars: ✭ 17 (-57.5%)
Mutual labels:  flarum

Mondedie-chat

Node.js chat application using Express, Socket.io, Redis and Mithril.

Features

  • Real-time communication via socket or long-polling
  • Using flarum API
  • Responsive design
  • Private messages
  • List of connected users
  • Auto-complete usernames, commands and smileys
  • Kick/ban
  • markdown syntax (with GitHub Flavored Markdown + syntax Highlighting)
  • Emoji
  • Desktop notifications
  • AFK mode
  • Poke @user with notification
  • Roll dices (+ one special roll)
  • User typing hint
  • Messages deletion
  • Managing network issues
  • Work with Chrome, Firefox, IE11/Edge, Opera, Safari
  • Smart chatbot (IQ 157)

Screenshot

screenshot

screenshot responsive


Authentication method

See Flarum documentation : http://flarum.org/docs/api/


Environment variables

Variable Description Type Default value
ENV Environment optional development
PORT Port app optional 5000
FLARUM_API_ENDPOINT API URL required none
COOKIES_SECRET Set random cookies secret required none
SESSION_SECRET Set random session secret required none
REDIS_URL Redis instance ip/hostname required none
PIWIK_ID Piwik id optional none
PIWIK_URL Piwik url optional none

Manual installation (Production)

Requirements:

  • Node.js
  • Yarn
  • Redis

Clone the project and install dependencies :

git clone https://github.com/mondediefr/mondedie-chat.git
cd mondedie-chat

yarn global add bower gulp pm2
yarn install

gulp

Create .env file in project root with this content :

ENV=production
COOKIES_SECRET=xxxxxxxxxxx
SESSION_SECRET=yyyyyyyyyyy
FLARUM_API_ENDPOINT=http://domain.tld/api/

Start application :

pm2 start --node-args="--harmony" --name mondedie-chat app.js

Open app : http://127.0.0.1:5000/


Manual installation (Developement)

Requirements:

  • Node.js
  • Yarn
  • Redis

Clone the project and install dependencies :

git clone https://github.com/mondediefr/mondedie-chat.git
cd mondedie-chat

yarn global add -g bower gulp nodemon
yarn install

gulp

Create .env file in project root with this content :

ENV=development
COOKIES_SECRET=xxxxxxxxxxx
SESSION_SECRET=yyyyyyyyyyy
FLARUM_API_ENDPOINT=http://domain.tld/api/

Create Procfile_dev file in project root with this content :

web: nodemon --delay 1 --exec "node --harmony" app.js
worker: gulp watch

Start application :

foreman start -f Procfile_dev

Open app : http://127.0.0.1:5000/


Docker installation

Pull image

docker pull mondedie/mondedie-chat

Image usage

Environment variables

Set environment variables in docker-compose.yml

  • ENV=production
  • FLARUM_API_ENDPOINT=http://your-domain.tld/api/
  • COOKIES_SECRET=PLEASE_REPLACE_BY_RANDOM_VALUE
  • SESSION_SECRET=PLEASE_REPLACE_BY_RANDOM_VALUE
  • REDIS_URL=redis://redis:6379

Requirements:

  • Docker

Setup

We have created a docker-compose.yml including 3 containers :

  • chat
  • redis
  • nginx : reverse-proxy mode

Create a new nginx vhost with this content :

# /mnt/docker/nginx/sites-enabled/chat.conf

server {

  listen 8000;
  server_name chat.domain.tld;

  location / {
    proxy_pass http://chat:5000;
    # For websockets handshake to establish the upgraded connection
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

}

Run !

docker-compose up -d

Development Docker installation

Requirements:

  • Docker
  • Node.js
  • Gulp
  • npm

Set environment variables

sudo echo '127.0.0.1 mondedie-chat.dev' >> /etc/hosts
echo 'export FLARUM_API_ENDPOINT="http://your-domain.tld/api/"' >> ~/.bash_profile

Setup

cd /path/to/chat/mondedie-chat
npm install
docker-compose --file dev.yml up -d
gulp watch

Open app : http://mondedie-chat.dev:5000/


Roadmap

  • Private rooms
  • Unit tests + coverage
  • Build an API
  • Increase chatbot IQ

Contribute

  • Fork this repository
  • Create a new feature branch for a new functionality or bugfix
  • Commit your changes
  • Push your code and open a new pull request
  • Use issues for any questions

Support

https://github.com/mondediefr/mondedie-chat/issues

License

Apache License Version 2.0

Contact

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].