Sherpa AI Server Updates#
Updating Sherpa AIServer#
Recommended method: automatic update via script#
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 patternsuser@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 servercd /path/to/installation/directory- change to the files directoryls -la *.tar.gz *.tgz- show detailed info about downloaded filesls -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 filecp ./backend/config ./backend/config_backup- backup the config directorycp -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 fileschmod +x sh_scripts/*.sh- make scripts executablecp -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 filegrep -E "(POSTGRES_PASSWORD|X_API_TOKEN|HOST_IP)" .env- checks for required variablescat .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 modedocker compose ps- shows container statusdocker compose logs -f aiserver- follow logs
After a successful update the Sherpa AIServer system will be ready to use.