Edge Installation & Upgrade
Requirements
Server Requirements
In case of 3 Servers Installation each server should have:
OS : Debian 13 (Trixie), 64 bits.
CPU: 2 CPU
RAM: 2 Gb
DD: 50 Gb
In case of 1 Server Installation the server should have:
OS : Debian 13 (Trixie), 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 update
apt install apt-transport-https ca-certificates curl gpg
# Add Docker's official GPG key:
apt install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
cat > /etc/apt/preferences.d/docker-ce <<EOF
Package: docker-ce*
Pin: version 5:28*
Pin-Priority: 1000
EOF
cat > /etc/apt/preferences.d/containerd <<EOF
Package: containerd.io*
Pin: version 2.*
Pin-Priority: 1000
EOF
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#Install docker compose v2
apt update
apt install docker-compose-plugin
mkdir -p /etc/systemd/system/containerd.service.d
cat > /etc/systemd/system/containerd.service.d/override.conf <<EOF
[Service]
LimitNOFILE=100000
EOF
systemctl daemon-reload
systemctl restart containerd.service
2. XiVO Edge Launcher Setup
The following commands describe how to install the Edge Solution launcher.
Create
edgedirectory:mkdir -p /etc/docker/edge
Download XiVO Edge configuration. In the following script replace
TAG_OR_BRANCHby the name of a tag or a branch.Note
currently, to install the latest stable version of quantum, use
TAG_OR_BRANCH=2026.05.02TAG_OR_BRANCH=2026.05.02 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
ssldir 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 -e "Current alias for edge-dcomp is:\n$(alias edge-dcomp)" sed -i '/alias edge-dcomp=/d' ~/.bashrc echo "alias edge-dcomp='docker compose -p edge -f /etc/docker/edge/nginx-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc echo -e "New alias for edge-dcomp is now:\n$(alias edge-dcomp)"
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 -e "Current alias for edge-dcomp is:\n$(alias edge-dcomp)" sed -i '/alias edge-dcomp=/d' ~/.bashrc 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 echo -e "New alias for edge-dcomp is now:\n$(alias edge-dcomp)"
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 -e "Current alias for edge-dcomp is:\n$(alias edge-dcomp)" sed -i '/alias edge-dcomp=/d' ~/.bashrc echo "alias edge-dcomp='docker compose -p edge -f /etc/docker/edge/coturn-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc source ~/.bashrc echo -e "New alias for edge-dcomp is now:\n$(alias edge-dcomp)"
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 -e "Current alias for edge-dcomp is:\n$(alias edge-dcomp)" sed -i '/alias edge-dcomp=/d' ~/.bashrc 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 echo -e "New alias for edge-dcomp is now:\n$(alias edge-dcomp)"
Next step
Congrats: You’re done with the Edge Mono Server Installation.
Next step: go to Edge Configuration
Upgrade Edge
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:
EDGE_BCK_DIR=$(mktemp -d -p /var/tmp/ edge-backup.XXXXXXXX) cp -arT /etc/docker/edge/ ${EDGE_BCK_DIR} echo "Backup was created in ${EDGE_BCK_DIR}"
Re-install the Edge Launcher (it will override the
.ymlfiles): follow the Download and Extract of the Edge launcher files by taking the new versionsNote
This step overrides the current
.ymlfiles. 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. You can use this to show the diff between the newly installed yml files and the backup:for ymlfile in $(ls -1 /etc/docker/edge/*.yml); do diff -Zu "${EDGE_BCK_DIR}/$(basename ${ymlfile})" "${ymlfile}"; done
Replace the
edge-dcompalias 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
.envfile is correct:Compare the old version and what is defined in the Edge Configuration section.
diff -Zu "${EDGE_BCK_DIR}/.env" "/etc/docker/edge/.env"
Verify that the
XIVOCC_TAGandXIVOCC_DISTcorrespond to what you want to install (it should be 2026.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