Installation

Overview

Our videoconferencing server is based on Jitsi. It’s set up with docker and docker-compose, like the Grape Server.

Prerequisites

Make sure that you have the following information at hand before starting the install process.

Please read the requirements page first to see if your setup meets the minimum requirements.

Mandatory

  • A DNS entry for the server running Grape Call, e.g. grapecall.example.com

  • Login data for the Grape Call docker registry (provided by the Grape team) note: these are not the same Credentials as used to install Grape

Installation

Docker and docker-compose

  1. Install docker (as superuser)

    Install docker, e.g. for Ubuntu: https://docs.docker.com/install/linux/docker-ce/ubuntu/ (you can also find tutorials for other distributions on that page) docker-engine CE versions 18.03.0+ are supported.

  2. Install docker-compose (as superuser)

    Download the docker-compose executable

    In this example we use version 1.29.2, you can find instructions on installing the latest version here: Install Compose on Linux systems.

    curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod ug+x /usr/local/bin/docker-compose
    chown root:docker /usr/local/bin/docker-compose
    
  3. Create a grape user and group (as superuser)

    Note: Grape Call will be running as this user, and important environment variables will be set in this user’s .bashrc. We need root permissions only for the basic setup

    Create the grape user and home directory with bash as default shell

    useradd -m -s /bin/bash grape
    

    Make sure the grape user is in the docker group

    usermod -aG docker grape
    

    At this point make sure the docker socket /run/docker.sock is also in the group docker so the grape user can use docker with ls -l /run/ | grep docker.sock

    Should look like this: srw-rw----  1 root docker    0 Nov  7 15:18 docker.sock

  4. Create the base directory (as superuser)

    Create the base directory for grape

    mkdir -p /data/grapecall
    

    Give the grape user read/write permissions in that directory

    chown grape /data/grapecall
    
  5. Switch to the Grape User

    su - grape
    cd ~
    
  6. Download the install.sh

    wget -q https://gitlab.chatgrape.com/customers/grapecall/raw/master/install.sh
    
  7. Run the Install script

    bash install.sh
    

The install script will ask you for the following data:

  • docker registry Username (provided by Grape)

  • docker registry API Token (provided by Grape)

  • IP Address for Web Access

  • IP Address for UDP Access

  • The URL of the Grape Call instance, e.g. https://grapecall.example.com

After successful installation the Grape Call Docker containers will start.

Certificate

Copy your Certificate files for the Grape Call Domain to

  • /data/grapecall/config/web/keys/cert.crt

  • /data/grapecall/config/web/keys/cert.key

To apply these changes restart the web container.

docker restart grapecall_web_1

Check Grape Call status

docker ps

This should list 4 running containers. It should looks something like this…

CONTAINER ID  IMAGE                                                             COMMAND                  CREATED        STATUS        PORTS                                       NAMES
e7b07beff1ea  registry.ubergrape.com/docker/grapecall/jicofo:2020-03-03    "/init"                  14 minutes ago Up 14 minutes                                             grapecall_jicofo_1
bbafd1205c37  registry.ubergrape.com/docker/grapecall/jvb:2020-03-03       "/init"                  14 minutes ago Up 14 minutes <IP2>:10000->10000/udp, <IP2>:443->4443/tcp grapecall_jvb_1
a8c61df1976e  registry.ubergrape.com/docker/grapecall/web:2020-03-03       "/init"                  14 minutes ago Up 14 minutes <IP1>:80->80/tcp, <IP1>:443->443/tcp        grapecall_web_1
bad4289ba85d  registry.ubergrape.com/docker/grapecall/prosody:2020-03-03   "/init"                  14 minutes ago Up 14 minutes 5222/tcp, 5269/tcp, 5280/tcp, 5347/tcp      grapecall_prosody_1

Docker

Grape Call consists of five docker containers:

../_images/docker_grape_call.png

  • jitsi-meet - web UI

  • jicofo - jitsi converence foucs

  • videobridge - main auido/video server

  • prosody - XMPP server

  • nginx - reverse proxy

Jitsi-Meet is the web & mobile frontend. All communication is done with XMPP (prosody server) and all participants enter a muc room, and jicofo (the conference focus) enters first. Jicofo opens channels by communicating with jvb and invites the participants to send audio & video to jvb. source