This repository hosts the chatcola server needed to self-host reliance and storage of your messaging.
- run
docker install chatcola/chatcola
- run
docker run -e THIS_INSTANCE_ADDRESS={{your instance address here}}
-
Install node.js 14:
Linux / MacOS:
curl -s https://install-node.now.sh | bash -s --
Windows: download installer from here
-
Install chatcola p2p server:
npm install -g chatcola-server
-
Run the server
chatcola-server
-
If you plan to use the server for longer (i.e. raspberry pi), daemonize it with some process manager, for example:
$ npm install -g pm2
$ pm2 run "chatcola-server"
you will be asked for instance address, give it a string that's easy for you to remember (it can be anything provided no one has taken it before, i.e. "foobar") -
To host the chatroom on your instance insert
when creating a chatroom at chatcola.com/startFor example, if you have address foobar, then you will have to insert webrtc:foobar
If you want to change the address later run the server with the --resetAddress
flag:
chatcola-server --resetAddress
you will be then guided through the process of assigning address again. Note that all chatrooms created beforehand will be left fatherless and impossible to use again.
This comes a bit harder than hosting a webrtc instance, but provides a more performant and probably more stable experience.
You'll need a linux computer (probably a VPS) with a public IP
-
Point your domain name (you can get a free one at Freenom.com) to the VPS.
-
Make a
~/.chatcola-http
directory -
Copy your SSL cert files (they need to be named
fullchain.pem
for the cert andprivkey.pem
for the private key) to~/.chatcola-http
directory -
At this point you should have already installed
chatcola-server
from npm and prepared your home directory to look like so:
/home/<your-username>/
├── .chatcola-http/ # <----- notice the dot
│ ├── privkey.pem
| |── fullchain.pem
You are now ready to launch the chatcola server.
-
Run
chatcola-server-http
Available options are:
-
PORT
- if using this, then also remember to change the port from7777
inTHIS_INSTANCE_ADDRESS
. So if you setPORT
to be, for example,5050
and you have domainexample.com
, you have to setTHIS_INSTANCE_ADDRESS
toexample.com:5050
. You can do a reverse proxy with nginx/apache/caddy and bind port 443 to your chatcola instance, then you won't have to specify the port in this variable. -
SHOULD_REPORT_ERRORS
Set this tofalse
to disable our sentry.
Both of them should be set as environent variables.
- Clone the repository and run
npm install
- Make the script executable -
chmod +x ./scripts/build
- Either run
./scripts/build
to build for webrtc or./scripts/build http
for http. Your build will be inbuild/p2p
orbuild/http
.
This program is free software. For alternate licensing arrangements contact us at [email protected]