Requirements and prerequisites¶
System¶
To install WebCallServer you need a Linux x86_64 server that matches the following minimum specifications:
- 2 gigabytes of RAM
- 10 gigabytes of disk space
- 1 CPU core
The following must be installed on the server:
- Java VM
- glibc-2.17
- fontconfig (if MCU mixer with captions is planned to use)
WCS can be configured to work in networks of varying topology, for instance, behind corporate NAT or for using a public IP address to services external clients. For quick setup and evaluation of WCS capabilities we recommend using a VPS or a dedicated server with a static and public IP address that is also the IP address of the network interface of the same server. Usually, such a virtual or dedicated server can be rented from a number of providers.
Supported Linux distribution packages¶
Any distribution package will do: CentOS, Debian, Ubuntu, RedHat, Fedora. Today, server is tested to be compatible with the following distribution packages:
- CentOS 7.6, 7,8, 8, Stream
- Ubuntu 18.04, 20.04
- Fedora 31, 32, 33
- Debian 9, 10
- Amazon Linux 2
The recommended distribution package is CentOS 7.6 or Ubuntu 18.04, a stable work on older distribution packages is not guaranteed.
Preparing to install¶
Make sure the server is connected to the Internet and you have root access via SSH.
Set your host name in /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.5 yourdomain.com
Check if host name is resolved correctly with command
In some distribution packages (i.e., CentOS) wget
is not installed by default. In this case, install wget
using the following command
In some Debian or Ubuntu distributions, curl
may be not installed in its turn. In this case, install curl
using the following command
This is how the server ready to install WCS looks from the Putty SSH client. Please note that we use an x86_64 system.
JDK installation¶
Often Linux distributions have a preinstalled JVM.
We recommend installing the latest version of JDK (Java Development Kit), because JDK has a number of useful diagnostics tools that JVM lacks.
Today, the following JDK versions are tested and recommended to use: 8, 12, 14, 15, 16, 17, 21. WCS can be unstable with another JDK versions.
JDK installation from repository¶
JDK installation from OS repository (CentOS for example) should be done as follows
Manual JDK installation¶
JDK 12¶
This is the example script for OpenJDK 12 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-12.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-12.0.2 ] && sudo rm -rf /usr/java/jdk-12.0.2
# Move JDK files to installation folder
sudo mv -f jdk-12.0.2 /usr/java
[ ! -d /usr/java/jdk-12.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-12.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-12.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-12.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-12.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-12.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-12.0.2/bin/jmap"
JDK 14¶
This is the example script for OpenJDK 14 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-14.0.1/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-14.0.1 ] && sudo rm -rf /usr/java/jdk-14.0.1
# Move JDK files to installation folder
sudo mv -f jdk-14.0.1 /usr/java
[ ! -d /usr/java/jdk-14.0.1/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-14.0.1 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-14.0.1/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-14.0.1/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-14.0.1/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-14.0.1/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-14.0.1/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-14.0.1/bin/jmap"
JDK 15¶
This is the example script for OpenJDK 15 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-15.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-15.0.2 ] && sudo rm -rf /usr/java/jdk-15.0.2
# Move JDK files to installation folder
sudo mv -f jdk-15.0.2 /usr/java
[ ! -d /usr/java/jdk-15.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-15.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-15.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-15.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-15.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-15.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-15.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-15.0.2/bin/jmap"
JDK 16¶
This is the example script for OpenJDK 16 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-16/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-16 ] && sudo rm -rf /usr/java/jdk-16
# Move JDK files to installation folder
sudo mv -f jdk-16 /usr/java
[ ! -d /usr/java/jdk-16/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-16 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-16/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-16/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-16/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-16/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-16/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-16/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-16/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-16/bin/jmap"
JDK 17¶
This is the example script for OpenJDK 17 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-17.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-17.0.2 ] && sudo rm -rf /usr/java/jdk-17.0.2
# Move JDK files to installation folder
sudo mv -f jdk-17.0.2 /usr/java
[ ! -d /usr/java/jdk-17.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-17.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-17.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-17.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-17.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-17.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-17.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-17.0.2/bin/jmap"
JDK 21¶
This is the example script for OpenJDK 21 installation using the package downloaded from https://download.java.net/java/GA:
# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-21.0.2/bin ] && exit 1
# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-21.0.2 ] && sudo rm -rf /usr/java/jdk-21.0.2
# Move JDK files to installation folder
sudo mv -f jdk-21.0.2 /usr/java
[ ! -d /usr/java/jdk-21.0.2/bin ] && exit 1
# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-21.0.2 /usr/java/default
# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-21.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-21.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-21.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-21.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-21.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-21.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-21.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-21.0.2/bin/jmap"
Installation checking¶
To check JDK installation use the following command
JDK installing is done
Here is how the server with installed JVM / JDK looks. Please notice the line: 64-Bit Server VM. Java works in the 64-bit mode with the server settings.
fontconfig installation¶
If MCU mixer is planned to use with participant names displaying, and JDK 12 or 14 is installed, it would be necessary to install fontconfig library: