dissonance
dissonance copied to clipboard
Basic Discord Clone
Dissonance
Basic Discord clone [WIP]
Pull Requests are welcome!
View it live at: https://dissonance.page/join/PGwQuWer
Screenshot(s):
Current Features
- [x] Two channels
- [x] Invite new users to a server
- [x] Realtime communication
- [x] Create Servers
Future (planned) Features
- [ ] Create Channels
- [ ] Direct Messaging System
- [ ] Role System
- [ ] Configurable Servers
- [ ] Modify your information (as a user)
- [ ] Leave Servers
- [ ] Delete Servers
Setup
How to install the project dependencies
- Create and configure a MongoDB instance which you can read/write to
- In your Terminal or Command Prompt, run the following at the root of the project directory:
$ npm i --save
How to configure the environment variables
- Create a
.env
file, by renaming the provided.sample.env
- Add the MongoDB connection url, port, environment name, and other secrets to
the
.env
file
If you set ENV
to prod
, you will need to set up a https certificate via
CERT_FULL_CHAIN_PATH
and CERT_PRIVATE_KEY_PATH
If you set ENV
to something other than prod
(i.e. dev
), you will need to set CERT_FULL_CHAIN_PATH
and CERT_PRIVATE_KEY_PATH
to a random string (so the
environment variable is defined)
How to run the project using NodeJS
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, which will expose an API and the client:
$ npm start
How to build the project using Docker
- Change the port which the server will run on, by default it is port 3000
- In your Terminal or Command Prompt, run the following at the root of the
directory to build the server and tag it
dissonance
:
$ docker build --tag dissonance .
How to run the project using Docker
In your Terminal or Command Prompt, run the following to run the server, which
will expose the service on port 3000
if you have the a .env
file:
$ docker run -t -p 3000:3000 --env-file ./.env dissonance
Or run the following in Terminal/Command Prompt to define custom environment variable(s)
$ docker run -p 3000:3000 -e PORT=3000 -e ENV=dev ... dissonance
How to clean up the source code
In your Terminal or Command Prompt, run the following at the root of the project directory:
$ ./node_modules/.bin/eslint . --fix