Regularly update Open WebUI to get the latest features, bug fixes, and security patches.
Before Updating
Always backup your data before updating to prevent data loss in case of issues.
Backup Your Data
Docker Volume
Python/pip Installation
Custom Data Directory
# Create backup directory
mkdir -p ~/open-webui-backups
# Backup the data volume
docker run --rm \
-v open-webui:/data \
-v ~/open-webui-backups:/backup \
alpine tar czf /backup/open-webui-backup- $( date +%Y%m%d-%H%M%S ) .tar.gz -C /data .
Docker Updates
Standard Docker Installation
Pull Latest Image
docker pull ghcr.io/open-webui/open-webui:main
Start New Container
Run the same docker run command you used initially. For example: docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
One-Line Update Script
Create an update script for convenience:
#!/bin/bash
set -e
echo "Updating Open WebUI..."
# Stop and remove container
docker stop open-webui
docker rm open-webui
# Pull latest image
docker pull ghcr.io/open-webui/open-webui:main
# Start new container
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
echo "Update complete!"
Make it executable and run:
chmod +x update-open-webui.sh
./update-open-webui.sh
Using Watchtower for Automatic Updates
Watchtower automatically updates running Docker containers:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup \
--interval 86400 \
open-webui
This checks for updates daily and automatically updates the open-webui container.
Docker Compose Updates
Docker Compose Update Script
#!/bin/bash
set -e
echo "Updating Open WebUI via Docker Compose..."
# Pull latest images
docker compose pull
# Restart with new images
docker compose up -d
# Clean up old images
docker image prune -f
echo "Update complete!"
Kubernetes Updates
Update Deployment Image
Update Image Tag
Edit your deployment manifest or use kubectl: kubectl set image deployment/open-webui \
open-webui=ghcr.io/open-webui/open-webui:main \
-n open-webui
Monitor Rollout
kubectl rollout status deployment/open-webui -n open-webui
Verify Update
kubectl get pods -n open-webui
kubectl logs -f deployment/open-webui -n open-webui
Rollback if Needed
If the update causes issues:
kubectl rollout undo deployment/open-webui -n open-webui
GitOps (ArgoCD/Flux)
If using GitOps:
Update the image tag in your Git repository
Commit and push changes
ArgoCD/Flux will automatically sync the changes
spec :
template :
spec :
containers :
- name : open-webui
image : ghcr.io/open-webui/open-webui:v0.2.0 # Update this
Python pip Updates
Update to Latest Version
pip install --upgrade open-webui
Update with All Dependencies
pip install --upgrade --force-reinstall open-webui
Update to Specific Version
pip install open-webui== 0.2.0
Check Current Version
Version-Specific Updates
Updating from Ollama WebUI
If you’re updating from the old Ollama WebUI:
Backup Data
The database will be automatically migrated from ollama.db to webui.db. # Backup just in case
cp /app/backend/data/ollama.db /app/backend/data/ollama.db.backup
Update Container
Follow the standard Docker update process. The migration happens automatically on first run.
Major Version Updates
For major version updates, check the changelog for:
Breaking changes
New required environment variables
Database migrations
Configuration changes
Checking for Updates
Current Version
Check your current version:
docker exec open-webui cat /app/package.json | grep version
Latest Available Version
# Check GitHub releases
curl -s https://api.github.com/repos/open-webui/open-webui/releases/latest | grep tag_name
# Check Docker Hub
curl -s https://api.github.com/repos/open-webui/open-webui/releases/latest | jq -r '.tag_name'
Version Update Check
Open WebUI can automatically check for updates if enabled:
ENABLE_VERSION_UPDATE_CHECK = true
Update Frequency Recommendations
Production : Update monthly or when security patches are released
Development : Update weekly to get latest features
Critical Security Updates : Apply immediately
Database Migrations
Open WebUI automatically runs database migrations on startup when ENABLE_DB_MIGRATIONS=true (default).
Manual Migration Control
To disable automatic migrations:
ENABLE_DB_MIGRATIONS = false
Verify Migration Status
Check logs after update:
# Docker
docker logs open-webui | grep migration
# Kubernetes
kubectl logs deployment/open-webui -n open-webui | grep migration
Troubleshooting Updates
Update Fails to Start
Check logs for errors:
Verify environment variables are still set correctly
Check for breaking changes in release notes
Database Migration Errors
If migration fails:
Restore from backup
Check GitHub Issues
Try disabling migrations temporarily:
ENABLE_DB_MIGRATIONS = false
Configuration Issues
If configuration seems lost:
Verify volume is mounted correctly:
docker inspect open-webui | grep Mounts -A 10
Check data directory permissions:
docker exec open-webui ls -la /app/backend/data
Rolling Back
Docker Rollback
# Stop current version
docker stop open-webui
docker rm open-webui
# Pull specific older version
docker pull ghcr.io/open-webui/open-webui:v0.1.123
# Start with older version
docker run -d -p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:v0.1.123
pip Rollback
pip install open-webui== 0.1.123
Update Notifications
Subscribe to Updates
GitHub Watch
Go to https://github.com/open-webui/open-webui
Click “Watch” → “Custom” → “Releases”
Get notified of new releases
Best Practices
Test in Staging
Test updates in a staging environment before applying to production.
Backup First
Always backup your data before updating.
Read Release Notes
Check the changelog for breaking changes and new features.
Plan Downtime
Schedule updates during low-usage periods.
Monitor After Update
Watch logs and user feedback after updating.
Automated Update Pipeline
For production deployments, consider this workflow:
.github/workflows/update-open-webui.yml
name : Update Open WebUI
on :
schedule :
- cron : '0 2 * * 0' # Weekly on Sunday at 2 AM
workflow_dispatch : # Manual trigger
jobs :
update :
runs-on : ubuntu-latest
steps :
- name : Backup Data
run : |
# Your backup script
- name : Update Docker Container
run : |
docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui
docker rm open-webui
# Restart with new image
- name : Verify Health
run : |
sleep 30
curl -f http://localhost:8080/health || exit 1
- name : Notify on Failure
if : failure()
run : |
# Send notification (email, Slack, etc.)
Next Steps
Docker Deployment Docker deployment guide
Kubernetes Kubernetes deployment
Environment Variables Configuration reference
Troubleshooting Common issues and solutions