api/v1 | ||
app | ||
models | ||
.gitignore | ||
apitest.rest | ||
config.js | ||
index.js | ||
notes.txt | ||
package-lock.json | ||
package.json | ||
README.md | ||
secret.js.template |
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.
Then, run:
cp secret.js.template secret.js
This will create a new secret.js based on that template.
IMPORTANT: Open secret.js with your favourite editor, and set the jwtPrivateKey variable to a random string of characters, preferably generated from /dev/random or using node's own generation thing.
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!