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.14
- 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
ping $HOSTNAME
In some distribution packages (i.e., CentOS) wget is not installed by default. In this case, install wget using the following command
sudo yum install wget
In some Debian or Ubuntu distributions, curl may be not installed in its turn. In this case, install curl using the following command
sudo apt update && apt upgrade sudo apt install curl
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. WSC can be unstable with another JDK versions.
JDK installation from repository
JDK installation from OS repository (CentOS for example) should be done as follows
yum -y install java-1.8.0-openjdk-devel
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 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/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 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/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"
Installation checking
To check JDK installation use the following command
java -version
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:
sudo yum install -y fontconfig