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

No packages published