Sherpa AI Server Updates#

Updating Sherpa AIServer#

Recommended for most users. The script performs all update steps automatically: backup configuration, load images, update files, and restart services.

Make sure you are in the root of the SherpaAIServer installation and run:

sudo ./sh_scripts/update.sh

Manual update. If you prefer to update the system manually or need full control over every step — follow the instructions below.


1. Download files#

Download all the latest files from the links as you would before installation.

2. Transfer files to the server#

After downloading, transfer all files to the target Linux server by any convenient method:

Using SCP/SFTP#

# Copy files to the server
scp *.tar.gz *.tgz user@target-server:/path/to/installation/directory/
💡 Notes about transferring via SCP/SFTP

scp *.tar.gz *.tgz user@target-server:/path/to/installation/directory/ — copies files to the remote server

  • scp - secure copy
  • *.tar.gz *.tgz - file patterns
  • user@target-server - login for the remote server
  • /path/to/installation/directory/ - destination path on the server

Using an SFTP client#

Use any SFTP client (FileZilla, WinSCP, Cyberduck) to copy files to the server.

Using a network share#

If the server is reachable via SMB/CIFS, use the file explorer or the copy command.

Verify transfer#

# Connect to the server
ssh user@target-server

# Go to the directory with the files
cd /path/to/installation/directory

# Check that all files are present
ls -la *.tar.gz *.tgz

# Check file sizes
ls -lh *.tar.gz *.tgz
💡 Notes about verification
  • ssh user@target-server - connects to the remote server
  • cd /path/to/installation/directory - change to the files directory
  • ls -la *.tar.gz *.tgz - show detailed info about downloaded files
  • ls -lh *.tar.gz *.tgz - show sizes in human-readable format

3. Stop containers#

# Stop all running services
docker compose down
💡 Notes about stopping containers

docker compose down stops all Docker Compose services and removes containers and networks but preserves volumes and images.

Check stopped containers: docker ps -a | grep aiserver

4. Load Docker images#

# Create a backup of the .env file
cp .env .env.backup
# Create a backup of config
cp ./backend/config ./backend/config_backup

cp -r ./nginx/config/certs ./certs_backup

# Unpack the client files
tar -xvzf "$(ls docker_aiserver_client_files_*.tgz | sort -V | tail -n 1)"

# Make scripts executable
chmod +x sh_scripts/*.sh

# If certificates were backed up, restore them
cp -r ./certs_backup/* ./nginx/config/certs/

# Load all Docker images
sudo ./sh_scripts/load_all_docker_images.sh
💡 Notes about loading images

Backups:

  • cp .env .env.backup - backup the configuration file
  • cp ./backend/config ./backend/config_backup - backup the config directory
  • cp -r ./nginx/config/certs ./certs_backup - backup SSL certificates

Unpack and prepare:

  • tar -xvzf "$(ls docker_aiserver_client_files_*.tgz | sort -V | tail -n 1)" - unpacks the latest client files
  • chmod +x sh_scripts/*.sh - make scripts executable
  • cp -r ./certs_backup/* ./nginx/config/certs/ - restore certificates

sudo ./sh_scripts/load_all_docker_images.sh - loads all Docker images

Check loaded images: docker images | grep aiserver

5. Check environment variables#

# Open the .env file to review
nano ./.env

# Check presence of required variables
grep -E "(POSTGRES_PASSWORD|X_API_TOKEN|HOST_IP)" .env

# Check syntax
cat .env | grep -v '^#' | grep '=' | wc -l
💡 Notes about checking env vars
  • nano ./.env - opens the configuration file
  • grep -E "(POSTGRES_PASSWORD|X_API_TOKEN|HOST_IP)" .env - checks for required variables
  • cat .env | grep -v '^#' | grep '=' | wc -l - counts non-comment variable lines

6. Start containers#

Start the basic services:

docker compose up -d

If profiles were used in the previous installation, specify them again. Examples:

# GPU — main LLM server
docker compose --profile gpu up -d

# GPU + speech recognition
docker compose --profile gpu --profile whisper up -d

# GPU + reranker
docker compose --profile gpu --profile reranker up -d

# GPU + all extras
docker compose --profile gpu --profile full up -d

# Two LLM servers on different GPUs
docker compose --profile gpu --profile gpu2 up -d

# CPU mode (no GPU)
docker compose --profile cpu up -d

# CPU + all extras
docker compose --profile cpu --profile full up -d

Available profiles:

Profile Service Port Description
gpu aiserver-llm-server 3003 Main LLM server on GPU
gpu2 aiserver-llm-server2 3006 Second LLM on a second GPU
cpu aiserver-llm-server-cpu 3007 LLM server on CPU
whisper aiserver-whisper 3005 Speech recognition
reranker aiserver-bge-reranker 8001 Search reranker
full whisper + reranker 3005, 8001 All additional services
💡 Notes about starting containers
  • docker compose up -d - starts basic services in detached mode
  • docker compose ps - shows container status
  • docker compose logs -f aiserver - follow logs

After a successful update the Sherpa AIServer system will be ready to use.