Edge Installation & Upgrade
Requirements
Server Requirements
In case of 3 Servers Installation each server should have:
OS : Debian 11 (Bullseye), 64 bits.
CPU: 2 CPU
RAM: 2 Gb
DD: 50 Gb
In case of 1 Server Installation the server should have:
OS : Debian 11 (Bullseye), 64 bits.
CPU: 6 CPU
RAM: 6 Gb
DD: 50 Gb
Network Requirements
You will also need:
3 public IP addresses (or 1 for 1 Server Installation deployment)
1 FQDN (i.e. edge.mycompany.com) that resolves:
to the Web Proxy server public IP address (in case of 3 Servers Installation)
to the Edge server public IP address (in case of 1 Server Installation deployment)
a valid SSL certificate for this FQDN
authorize the network flow as shown in the Network Flows section
to make all your WebRTC users connect to the UC application via the Edge Solution
Important
otherwise it won’t work !
Base installation
Whatever the type of installation (1 or 3 servers) you need to do the following on the host(s):
install docker and docker compose
download XiVO Edge service launcher
1. Docker & Docker compose Installation
These commands will install docker and docker compose on the host.
# Install docker prerequisites
apt install wget dirmngr gnupg ca-certificates ntp curl
# Install docker
DOCKER_KEYRING_FILE="/etc/apt/trusted.gpg.d/download.docker.com.gpg"
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key --keyring ${DOCKER_KEYRING_FILE} add -
echo "deb https://download.docker.com/linux/debian bullseye stable" > /etc/apt/sources.list.d/docker.list
cat > /etc/apt/preferences.d/docker-ce <<EOF
Package: docker-ce*
Pin: version 5:20.10.13*
Pin-Priority: 1000
EOF
apt update
apt install docker-ce
#Install docker-compose
DOCKER_COMPOSE_VERSION=1.29.2
COMPOSE="/usr/local/bin/docker-compose"
curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > "$COMPOSE"
chmod +x "$COMPOSE"
2. XiVO Edge Launcher Setup
The following commands describe how to install the Edge Solution launcher.
Create
edge
directory:mkdir -p /etc/docker/edge
Download XiVO Edge configuration. In the following script replace
TAG_OR_BRANCH
by the name of a tag or a branch.Note
currently, to install the latest stable version of Jabbah, use
TAG_OR_BRANCH=2023.05.00
TAG_OR_BRANCH=2023.05.00 cd /etc/docker/edge wget "https://gitlab.com/xivo.solutions/xivo-edge/-/archive/${TAG_OR_BRANCH}/${TAG_OR_BRANCH}.tar.gz" tar -zxvf ${TAG_OR_BRANCH}.tar.gz -C /etc/docker/edge --strip-components 1 rm ${TAG_OR_BRANCH}.tar.gz
Create the
ssl
dir to put the ssl certificates:mkdir -p /etc/docker/ssl
Congrats: You’re done with the base installation.
Next step follow:
either the 3 Servers Installation
or the 1 Server Installation
3 Servers Installation
Note
If you’re doing the 3 servers installation (1 host per service) you must follow the three subsections below.
You need one machine per service with Base installation done on all three.
Then you need to install the services on each host independently as explained below.
Web Proxy
Note
This step is to be done on the server which will host the Web Proxy (nginx) service.
Create bash alias to launch services:
echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/nginx-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc
SIP Proxy
Note
This step is to be done on the server which will host the SIP Proxy (kamailio) service.
Create bash alias to launch services:
echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/kamailio-edge.yml -f /etc/docker/edge/kamailio-edge.override.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc
TURN Server
Note
This step is to be done on the server which will host the TURN Server (coturn) service.
Create bash alias to launch services:
echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/coturn-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc
Next step
Congrats: You’re done with the Edge 3 Servers Installation.
Next step: go to Edge Configuration
1 Server Installation
Note
If you’re doing the mono server installation (all services on one host) you must follow the subsection below.
Web Proxy, SIP Proxy and TURN Server
Create bash alias to launch services:
echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/nginx-edge.yml -f /etc/docker/edge/coturn-edge.yml -f /etc/docker/edge/kamailio-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc
Next step
Congrats: You’re done with the Edge Mono Server Installation.
Next step: go to Edge Configuration
Upgrade
Currently there is no automatic upgrade process. Here is the manual process that you need to follow on the 3 edge servers (or the edge server depending if it’s a mono or three servers install).
Make a backup of the Edge launcher:
cp -aR /etc/docker/edge/ /var/tmp/edge-backup/
Re-install the Edge Launcher (it will override the
.yml
files): follow the Download and Extract of the Edge launcher files by taking the new versionsNote
This step overrides the current
.yml
files. If you had made some customization in them you will have to backport them by comparing the new one with the backup you did at previous step.Replace the
edge-dcomp
alias by what is described in the 3 Servers Installation or 1 Server Installation sections (replace the aliases or verify that they did not change).And then verify that the content of the
.env
file is correct:Compare the old version and what is defined in the Edge Configuration section.
Verify that the
XIVOCC_TAG
andXIVOCC_DIST
correspond to what you want to install (it should be 2023.05 and latest).
Finally pull the new images and restart the containers:
Warning
it will stop all WebRTC calls (and disconnect users from the application).
edge-dcomp pull edge-dcomp up -d