Skip to content

SliverWorkspace Installation Guide ​

1. Preparation ​

  • Server environment hardware requirements, recommended configuration:

    CPU: no lower than Xeon E3, 4 cores / 8 threads

    Memory: no less than 10 GB of available memory

    Disk: at least 50 GB of available space (for storing analysis results)

  • Network requirements:

    SliverWorkspace must be deployed in a stable network environment.

    The installation process requires internet access to install Docker and download Docker image files.

  • Firewall:

    SliverWorkspace uses the following ports at runtime (avoid conflicts with existing ports during installation):

    PortNotes
    80Nginx Web service
    443Nginx Web service
    8443Java backend service
    10443WebSocket persistent connection
    5433postgreSQL database service (changed to 5433 in version 2.7 to reduce the probability of conflicts with databases already on the server)

2. Software Installation ​

SliverWorkspace deployment is based on Docker virtualization, enabling fast installation, deployment, and migration. The package is an all-in-one bundle containing 4 container images (frontend / backend / database / server) plus the deployment scripts, and installs to /opt/SliverWorkspace by default.

2.1 Choosing a package ​

All three formats carry identical content — pick the one that matches your server distribution:

PackageApplies toInstall command
sliverworkspace-community.debUbuntu 18.04 – 26.04, Debian 12sudo apt-get install ./sliverworkspace-community.deb
sliverworkspace-community.rpmRHEL / CentOS 7 and later, CentOS Stream 8/9/10, Rocky Linux, AlmaLinuxsudo yum install ./sliverworkspace-community.rpm
sliverworkspace-community.tar.gzAny x86_64 Linuxextract, then bash setup.bin (see 2.4)

Always use yum install. CentOS 7 ships only yum (there is no dnf command); on CentOS 8 and later yum is a symlink to dnf, so one command covers every RPM-based distribution.

./ means the current directory — cd into the directory holding the package first, or pass an absolute path such as sudo yum install /root/sliverworkspace-community.rpm.

  • Recommended Linux distributions for deployment: Ubuntu 18.04/20.04/22.04/24.04/26.04 Server; Debian 12; CentOS 7/8, CentOS Stream 9, Rocky Linux 9/10, AlmaLinux 9.

  • Not compatible with CentOS 6.10 — the Docker version available on that release is too old.

  • Not compatible with Windows 10 or macOS. On these systems Docker runs inside a virtual machine, which differs significantly from Linux.

  • Not compatible with the Windows WSL Linux environment.

2.2 Installing the .deb (Ubuntu / Debian) ​

shell
# 1. Change into the directory holding the package
$ cd ~/Downloads

# 2. Install (Docker is installed automatically when missing; internet access required)
$ sudo apt-get install ./sliverworkspace-community.deb

2.3 Installing the .rpm (RHEL / CentOS 7+ / Rocky / Alma / Stream) ​

shell
# 1. Change into the directory holding the package
$ cd ~/Downloads

# 2. Install
$ sudo yum install ./sliverworkspace-community.rpm
  • On CentOS 7 only yum exists; on CentOS 8 and later yum is a symlink to dnf, so the same command works on every RPM-based distribution.
  • The package declares Recommends: docker-ce, docker-compose-plugin. If the docker-ce repository is configured, yum installs both in the same transaction; the default RHEL / Rocky / Alma / Stream repositories do not ship docker-ce, so the field is skipped silently without an error and Docker is deployed by get_docker.sh (Aliyun mirror) inside the installer. CentOS 7 (yum 3.4 / rpm 4.11) does not support weak dependencies either — the field is ignored and the install falls back to the deferred path described below.
  • Progress is written to /opt/SliverWorkspace/logs/install-runtime.log. If Docker is not ready yet at install time, the package step returns first and the runtime deployment runs after the package-manager lock is released. Check /opt/SliverWorkspace/logs/setup.status (QUEUED = pending, OK = finished) or run sudo bash /opt/SliverWorkspace/deferred-install.sh --status.

2.4 Installing the .tar.gz (any x86_64 Linux) ​

Run after installation/extraction (CentOS requires Docker installation, so it must be run under the root account):

shell
# 1. Extract the archive
$ tar -zxvf sliverworkspace-community.tar.gz

# 2. Switch to the extracted directory
$ cd SliverWorkspace-${version}

# 3. Run the installation script
$ bash setup.bin
  • To view the contents of the installation script:
shell
$ head -n 55 setup.bin

2.5 Verifying the installation ​

Whichever format you used, the output should end with:

shell
$ Creating sliverworkspace-dababase ... done
$ Creating sliverworkspace-backend  ... done
$ Creating sliverworkspace-frontend ... done
$ Creating sliverworkspace-server   ... done
  • After installation, check the container running status:
shell
# 1. Switch to the installation directory
$ cd SliverWorkspace-${version}

# 2. Check the container running status
$ docker-compose ps

3. Accessing SliverWorkspace ​

  • By default, SliverWorkspace uses a self-signed certificate to encrypt communication. If needed, you may purchase a domain name and apply for an official certificate.

  • In a WebKit-based browser (Chrome, Edge, etc.), enter https://ip in the address bar to open the home page, where ip is the IP address of the deployment server.

    On first visit, if prompted with Your connection is not private, click the button Advanced → Proceed anyway.

  • In the Firefox browser, you need to enter https://ip:8443 and https://ip:10443 in the address bar in turn to add port exceptions.

4. Uninstallation: ​

shell
# 1. Switch to the installation directory
$ cd ${install-dir}

# 2. Stop and remove the running containers
$ docker-compose down
  • If you installed from the .deb or .rpm package, use the bundled uninstaller for a complete removal (stops containers, deletes the install directory and desktop icons, and unregisters the package):
shell
# Full uninstall; add --keep-images to keep the local images for a reinstall
$ sudo bash /opt/SliverWorkspace/uninstall.sh
$ sudo bash /opt/SliverWorkspace/uninstall.sh --keep-images

5. Running Docker as a Non-root User ​

shell
# First create the docker user group; you may skip this if the docker group already exists
$ sudo groupadd docker

# Add the user to the docker group
$ sudo gpasswd -a ${USER} docker

# Restart Docker
$ sudo service docker restart
# or
$ sudo systemctl restart docker

# If a regular user running a docker command gets a permission error such as "get …… dial unix /var/run/docker.sock: permission denied", modify the permissions of /var/run/docker.sock by running the following command as root
$ sudo chmod a+rw /var/run/docker.sock

​

6. Manually Installing Docker & Docker Compose: ​

  • Ubuntu 18.04/20.04/22.04: Installing Docker ​

shell
# Download and run the installation script
$ wget -qO- https://get.docker.com/ | sh
# Install docker-compose
$ sudo apt-get install docker-compose
  1. Uninstall old versions of Docker Old versions of Docker were named docker, docker-engine, or docker.io. If any old version is installed, uninstall it first:
shell
$ sudo apt-get remove docker docker-engine docker.io
  1. Install the latest version of Docker The latest Docker comes in two editions: docker-ce (Community Edition) and docker-ee (Enterprise Edition). The CE edition is free; for learning or general use, CE is sufficient. We install the Community Edition: Since Docker installation requires HTTPS, apt must support HTTPS-based fetching.

    2.1 Install packages related to HTTPS

shell
$ sudo apt-get update # Update the software source index first
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

​ 2.2 Set up the apt repository. Due to network issues in China, it is strongly recommended to use a domestic mirror. ​ Add the official Docker apt repository (using the overseas source) ​ If the command hangs for a long time without response, the network cannot reach the Docker website, and you should use the domestic source instead.

shell
# Add Docker's official GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Set up the stable apt repository
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
   
# Add the Alibaba Cloud apt repository (using the domestic source)
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
     "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
     $(lsb_release -cs) \
     stable"

​ 2.3 Install Docker

shell
$ sudo apt-get update
# Install the latest version of Docker
$ sudo apt-get install docker-ce 

# To install a specific version of Docker, use the following commands:
$ apt-cache policy docker-ce # List all available Docker versions
$ sudo apt-get install docker-ce=18.03.0~ce-0~ubuntu # Install a specific version of Docker

# Verify that Docker was installed successfully
$ docker --version # Check the installed Docker version

​ 2.4 Install docker-compose

shell
# Install docker-compose
$ sudo apt-get install docker-compose
# Check the docker-compose version
$ docker-compose version

# or
$ sudo apt-get install python-pip
$ sudo pip install docker-compose

The centos-extras repository must be enabled. It is enabled by default, but if you have disabled it, you need to re-enable it.

The overlay2 storage driver is recommended.


Add the current user to the sudo user list by modifying the configuration file, to avoid switching users every time.

shell
# Required for the installation environment: edit sudo privileges to avoid switching back to root every time
$ vi /etc/sudoers
# Find this line
$ root      ALL=(ALL)       ALL
# Add a line, where bootsir is the current username
$ boosir    ALL=(ALL)       ALL
# Find this line
$ Defaults  secure_path = /sbin:/bin:/usr/sbin:/usr/bin
# Modify it to
$ Defaults  secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

Uninstall old versions

Older Docker versions are called docker or docker-engine. If these are installed, uninstall them along with their related dependencies.

shell
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Install Docker Engine-Community

Install using a Docker repository

Before installing Docker Engine-Community for the first time on a new host, you need to set up the Docker repository. Afterwards, you can install and update Docker from the repository.

Setting up the repository

shell
# Install the required packages. yum-utils provides yum-config-manager, and the device mapper storage driver requires device-mapper-persistent-data and lvm2
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Use the following command to set up the stable repository.
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Install Docker Engine-Community

Install the latest version of Docker Engine-Community and containerd, or go to the next step to install a specific version:

$ sudo yum install docker-ce docker-ce-cli containerd.io

If prompted to accept the GPG key, choose yes.

Multiple Docker repositories?

If multiple Docker repositories are enabled, installing or updating without specifying a version in the yum install or yum update command always installs the highest version, which may not suit your stability requirements.

Docker is not started by default after installation. The docker user group has been created, but it contains no users.

To install a specific version of Docker Engine-Community, list the available versions in the repository, then select and install one:

  1. List and sort the versions available in your repository. This example sorts the results by version number, from highest to lowest.
shell
$ sudo yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
  1. Install a specific version by its full package name, which is the package name (docker-ce) plus the version string (the second column), from the first colon (😃 up to the first hyphen, separated by a hyphen (-). For example: docker-ce-18.06.3.ce-3.el7.
shell
$ sudo yum install docker-ce-18.06.3.ce-3.el7 docker-ce-cli containerd.io

Start Docker.

shell
$ sudo systemctl start docker
  • Install docker-compose
shell
# Or download directly from GitHub
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

7. Appendix: CentOS 7/8 Firewall Configuration ​

shell
# Start the firewall:
$ sudo systemctl start firewalld.service

# Enable it to start on boot:
$ sudo systemctl enable firewalld.service

# Restart the firewall:
$ sudo systemctl restart firewalld.service

# Check whether the firewall is running:
$ sudo firewall-cmd --state

# Open the software service ports
$ sudo firewall-cmd --zone=public --add-port=80/tcp       --permanent
$ sudo firewall-cmd --zone=public --add-port=443/tcp      --permanent
$ sudo firewall-cmd --zone=public --add-port=8443/tcp     --permanent
$ sudo firewall-cmd --zone=public --add-port=10443/tcp    --permanent
# Database port (optional)
$ sudo firewall-cmd --zone=public --add-port=5433/tcp     --permanent
# Restart the firewall for the changes to take effect
$ sudo systemctl restart firewalld

# View
$ sudo firewall-cmd --zone=public --query-port=80/tcp

# Remove
$ sudo firewall-cmd --zone=public --remove-port=80/tcp    --permanent
$ sudo firewall-cmd --zone=public --remove-port=443/tcp   --permanent
$ sudo firewall-cmd --zone=public --remove-port=8443/tcp  --permanent
$ sudo firewall-cmd --zone=public --remove-port=10443/tcp --permanent
$ sudo firewall-cmd --zone=public --remove-port=5433/tcp  --permanent
# Restart the firewall for the changes to take effect
$ sudo systemctl restart firewalld

# View ports
$ netstat -ntlp
# or
$ sudo firewall-cmd --list-ports