Requirements for Sherpa Orchestrator Server#

System Requirements#

  • OS: Ubuntu 20.04+ is recommended, but there are usually no issues with other Linux distributions.
  • CPU: x86-64-v2, at least 2 cores
  • RAM: at least 4 GB, 8 GB+ recommended
  • Disk: 20 GB+ of free space
  • Network: Stable internet connection
  • Access: sudo privileges for installation

Important:

  • Installation takes time due to downloading Docker images
  • After installation, internet is not required for operation

Preparing the Server#

Checking Resources#

The following uses Ubuntu syntax; if the command does not fit, you need to change the syntax according to your OS.

# Check system resources
df -h          # Disk space
free -h        # RAM
lscpu | grep -E "^CPU\(s\)|Model name"  # CPU information
💡 Resource Check Comments

df -h - shows disk space usage in a human-readable format free -h - shows information about RAM lscpu - shows information about the CPU

Recommended minimum values:

  • Disk: at least 20 GB of free space
  • RAM: at least 4 GB
  • CPU: at least 2 cores

Installing Basic Tools#

# Update the system and install tools
sudo apt update
sudo apt install -y ca-certificates curl tar
💡 Basic Tools Installation Comments

sudo apt update - updates the list of available packages from repositories sudo apt install -y ca-certificates curl tar - installs the necessary tools:

  • ca-certificates - root certificates for SSL verification
  • curl - tool for downloading files
  • tar - utility for working with archives
  • -y - automatic confirmation of installation

Installing Docker (mandatory)#

Sherpa Orchestrator runs exclusively in Docker containers.

Installing Docker CE#

# Add the official Docker GPG key
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
💡 Docker Installation Comments

Adding the GPG key:

  • sudo install -m 0755 -d /etc/apt/keyrings - creates a directory for keys with the correct permissions
  • sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc - downloads the Docker GPG key
  • sudo chmod a+r /etc/apt/keyrings/docker.asc - sets read permissions for all

Adding the repository:

  • echo "deb [...] - adds the official Docker repository to the APT sources list
  • Uses environment variables to determine architecture and Ubuntu version

Installing packages:

  • sudo apt update - updates the package list after adding the new repository
  • sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - installs Docker and components

Configuration and Verification#

# Add user to the docker group (optional)
sudo usermod -aG docker $USER

# Start and enable Docker
sudo systemctl start docker
sudo systemctl enable docker

# Check installation
docker --version
docker compose version
💡 Docker Configuration Comments

sudo usermod -aG docker $USER - adds the current user to the docker group

  • -a - append (adds to existing groups)
  • -G docker - adds to the docker group
  • $USER - variable with the current user's name

sudo systemctl start docker - starts the Docker daemon sudo systemctl enable docker - enables Docker to start on system boot

docker --version - shows the Docker version docker compose version - shows the Docker Compose version

Expected result: Docker successfully runs a test container.

Checking Ports#

Sherpa Orchestrator uses the following ports:

  • 443 - HTTPS web interface (mandatory)
  • 5000 - VNC proxy API
  • 6080-6100 - range of ports for VNC connections

Checking Port Availability#

# Check if the required ports are occupied
sudo netstat -tlnp | grep -E ":443 |:5000 |:608[0-9] |:609[0-9] |:6100 " || echo "Ports are free"
💡 Port Check Comments

sudo netstat -tlnp - shows all listening TCP ports and processes

  • -t - TCP ports
  • -l - only listening ports
  • -n - numeric format (without name resolution)
  • -p - shows PID and process name

Expected result:

  • If the ports are free, the command will output "Ports are free"
  • If the ports are occupied, the processes using them will be shown

Configuration Check#

Final Check Before Launch#

# Check Docker
docker --version && docker compose version

# Check environment variables
cat .env

# Check port availability
sudo netstat -tlnp | grep -E ":443 |:5000 |:608[0-9] |:609[0-9] |:6100 " || echo "All ports are free"

# Check disk space
df -h /var/lib/docker || echo "Docker storage driver is not configured"

echo "If all checks pass successfully, you can start Sherpa Orchestrator"

Expected result: All commands should execute without errors, and the ports should be free.