Git Product home page Git Product logo

lets-chat's Introduction

Let's Chat

A self-hosted chat app for small teams.

Screenshot

Features and Stuff

  • BYOS (bring your own server)
  • Persistent messages
  • Multiple rooms
  • New message alerts
  • Mentions (hey @you)
  • Image embeds
  • Code pasting
  • File uploads
  • SSL/TLS
  • MIT Licensed

Upcoming Features

  • API
  • Better transcripts with search
  • Better error handling
  • Emote autocomplete
  • Access control
  • Mobile client

Getting started

Install nodejs and mongo

Clone le repo

git clone https://github.com/sdelements/lets-chat.git
cd lets-chat

Install node dependencies

npm install

Create a settings file (make sure to edit if you need to).

cp settings.js.sample settings.js

Run the app

node app.js

Party time: http://localhost:5000

Deploying to Heroku

Remove settings.js from .gitignore and uncomment the line // db_url: process.env.DATABASE_URL. Be sure to set the DATABASE_URL config variable on heroku to your mongo url. To get your mongo URL, add a mongolab add-on, find its database url config variable, and set the DATABASE_URL to that url. For instance, to do this with the free tier of mongolab on a heroku app called heroku-app-name:

heroku addons:add mongolab -a heroku-app-name
heroku config:set DATABASE_URL=`heroku config:get MONGOLAB_URI -a heroku-app-name` -a heroku-app-name

Additionally, you should set the following config variables from heroku config variables by changing their values to config_var_name: process.env.CONFIG_VAR_NAME and running heroku config:set CONFIG_VAR_NAME=config_var_value -a heroku-app-name:

cookie_secret
password_salt
s3.accessKeyId
s3.secretAccessKey
s3.region
s3.bucket

Note that you must use s3 (or hack in a different solution) to allow file uploads with lets-chat on heroku, as the filesystem is not persisted across heroku deploys.

Finally, be sure to enable heroku's websockets support, otherwise socket.io will fall back to XHR polling and run super slowly.

heroku labs:enable websockets -a heroku-app-name

Now you can push your app to heroku!

git remote add heroku [email protected]:heroku-app-name.git
git push heroku master

You must compile all of your assets and commit them before deploying (TODO: heroku asset pipeline?).

lets-chat's People

Contributors

hhaidar avatar emily-bain avatar funkaoshi avatar tobobo avatar jedediah avatar benbull avatar

Watchers

James Cloos avatar Mahdi Dibaiee avatar  avatar

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.