# Brainlet Brainlet is a simple chat app. Each category has a text channel associated with it, all messages sent in the text channel are temporary, while in the category itself all posts are permanent. As its database, it uses Mongo DB. ## Self-hosting So you wanna host Brainlet yourself, huh? Firstly, you're gonna need a MongoDB server, I just use Docker for the Mongo server, but you can *try* to not use Docker, though Mongo does not want to standalone on anything outside a perfect debian system or windows, so just use Docker. (if you are on windows, simply install mongo normally, it should work nicely) Let create a Docker container for Mongo! ``` docker run -it -v mongodata:/data/db -p 27017:27017 --name mongodb -d mongo ``` This should automatically run it, however, next time you need it you gotta run: ``` docker start mongodb ``` Stopping it is as simple as: ``` docker stop mongodb ``` Now that we have a Mongo server set up, let's actually begin to set up the Brainlet server. ***NOTE***: You need nodejs and npm installed in order to proceed! I recommend using node 12.x, but anything above that will probably work. Once you have installed node, clone the repo and then cd into it. Then, run the following command: ``` npm i ``` This will install all of the node modules. ***OPTIONAL***: You may want to edit secret.js and have jwtPrivateKey set to a randomly generated key, such as with /dev/urandom. This will allow session cookies to persist after server reboot. If you don't set one yourself, a private key will be randomly generated each time the server starts. ***NOTE***: You can edit config.js to tweak some of the settings. You might wanna do that, especially if you are planning to run it on a domain. (setting the address variable) ### You should now be ready to go! Just run Brainlet with the command below: ``` node index.js ``` Good luck!