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.