These instructions are based on the more complicated installation instructions for Coauthor.
Here is how to get a local test server running:
- Install Meteor:
npm install -g meteor
orsudo npm install -g meteor --unsafe-perm
. Prefix witharch -x86_64
on Apple M1. - Download Comingle:
git clone https://github.com/edemaine/comingle.git
- Run meteor:
cd comingle
meteor npm install
meteor
Even a test server will be accessible from the rest of the Internet, on port 3000.
To deploy to a public server, we recommend deploying from a development machine via meteor-up. Installation instructions:
- Install Meteor and download Comingle as above.
- Install
mup
vianpm install -g mup
(after installing Node and thus NPM). - Copy
settings.json
to.deploy/settings.json
and optionally edit to add Zoom web client support and/or APM. - Edit
.deploy/mup.js
to point to your SSH key (for accessing the server), and your SSL certificate (for an https server). cd .deploy
mup setup
to install all necessary software on the servermup deploy
each time you want to deploy code to server (initially and after eachgit pull
)
Config.coffee
stores a few configuration options defining
Comingle's behavior:
newMeetingRooms
specifies rooms (including their titles and initial tabs) to automatically create in any newly created meeting.defaultServers
specifies the default servers for Cocreate and Jitsi.
To use the Zoom Web Client SDK, you need to sign up for an SDK Key & Secret. Go to the Zoom Marketplace and select "Develop / Build App / Meeting SDK". See https://developers.zoom.us/docs/meeting-sdk/create/
Then add the SDK Key & Secret (under App credentials / Client ID and Secret)
into a new file .deploy/settings.json
. It should look something like this:
{
"zoom": {
"sdkKey": "YOUR_SDK_KEY_AKA_CLIENT_ID",
"sdkSecret": "YOUR_SDK_SECRET_AKA_CLIENT_SECRET"
}
}
DO NOT commit this file into Git; the secret needs to STAY SECRET.
Thus we recommend copying root settings.json
file
into .deploy
and editing the copy only.
If you're deploying a public server via mup
, it should pick up these keys.
If you're developing on a local test server, use the following instead of
meteor
:
meteor --settings .deploy/settings.json
To monitor server performance, you can use one of the following:
- Monti APM (no setup required, free for 8-hour retention); or
- deploy your own open-source Kadira server. To get this running (on a different machine), I recommend kadira-compose.
After creating an application on one of the servers above,
edit .deploy/settings.json
to look like the following
(omit endpoint
if you're using Monti):
{
"kadira": {
"appId": "xxxxxxxxxxxxxxxxx",
"appSecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"endpoint": "https://your-kadira-server:22022"
}
}
If you want Zoom support and APM, .deploy/settings.json
should look like this
(omit endpoint
if you're using Monti):
{
"zoom": {
"sdkKey": "YOUR_SDK_KEY_AKA_CLIENT_ID",
"sdkSecret": "YOUR_SDK_SECRET_AKA_CLIENT_SECRET"
},
"kadira": {
"appId": "xxxxxxxxxxxxxxxxx",
"appSecret": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"endpoint": "https://your-kadira-server:22022"
}
}
All of Comingle's data is stored in the Mongo database (which is part of Meteor). You probably want to do regular (e.g. daily) dump backups.
mup
's MongoDB stores data in /var/lib/mongodb
. MongoDB prefers an XFS
filesystem, so you might want to
create an XFS filesystem
and mount or link it there.
(For example, I have mounted an XFS volume at /data
and linked via
ln -s /data/mongodb /var/lib/mongodb
).
mup
also, by default, makes the MongoDB accessible to any user on the
deployed machine. This is a security hole: make sure that there aren't any
user accounts on the deployed machine.
But it is also useful for manual database inspection and/or manipulation.
Install MongoDB client
tools,
run mongo comingle
(or mongo
then use comingle
) and you can directly
query or update the collections. (Start with show collections
, then
e.g. db.messages.find()
.)
On a test server, you can run meteor mongo
to get the same interface.
To install bcrypt
on Windows (to avoid warnings about it missing), install
windows-build-tools
via npm install --global --production windows-build-tools
, and
then run meteor npm install bcrypt
.