Skip to content

pranavcl/quickchat-local

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฌ QuickChat Local

QuickChat Local is an easy-to-host and fun IRC-inspired chatroom app. Instantly spin up a server with friends and access the front-end using any web browser. Built using Node.JS, Socket.IO, TypeScript and MongoDB ๐Ÿ”ง.

๐Ÿ›ก๏ธ Privacy-first: All data stays on your serverโ€”no third-party cloud.

๐Ÿ’ป Features โค๏ธ

  • ๐Ÿ“ฑ Responsive design for all screen sizes
  • ๐Ÿ”€ Real-time communication powered by WebSockets
  • ๐Ÿ” User accounts, authentication and authorization
  • ๐Ÿ’พ Persistent message and chat history storage
  • ๐Ÿ›‹๏ธ Multiple rooms/channels for chats
  • ๐Ÿ”ฅ Whispering (send a private, burner message to another user)
  • ๐ŸŸข Typing & presence indication
  • ๐Ÿค– Command parsing and 8 commands
  • โš™๏ธ Modular and easy to configure source code for custom commands
  • ๐Ÿšฆ Sensible rate limits to prevent abuse
  • ๐Ÿ”’ Secure hashing + salting of passwords using bcryptjs
  • ๐ŸŒฑ Easy to self-host in just a few steps (described below)

๐Ÿ”— Dependencies

  1. Install NodeJS on your system.

  2. Install MongoDB on your system.

๐Ÿ› ๏ธ Building from Source

  1. First, clone the repository:
git clone https://github.com/pranavcl/quickchat-local
  1. Enter the cloned repository and run npm install:
cd quickchat-local
npm install
  1. (Optional) QuickChat uses port 2000 for the app and 27017 for MongoDB (on localhost) by default. This can be changed by creating a .env file in the root directory(./quickchat-local) and defining the values of PORT and DB like so:
PORT=8080
DB=mongodb://<your mongo db>/quickchat
  1. (Optional) If you want 'Forgot Password' to work, you must set up the server to send emails. Define the BASE_URL, EMAILHOST, SSLPORT, EMAILUSER and EMAILPASS environment variables in your .env file like so:
BASE_URL=yourdomain.com:8080
EMAILHOST=smtp.yourdomain.com
SSLPORT=465 (or whatever the SSL port is on your mailserver)
EMAILUSER=example@yourdomain.com
EMAILPASS=(your email account's password)
  1. Finally, run the app using npm:
npm run dev

All done! ๐ŸŽ‰

License

Published under the QuickChat Local license

About

An IRC-inspired, WebSocket powered, quickly self-hostable real-time chatroom application ๐Ÿ’ฌ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors