Why Open WebUI deployments fail on small VPS plans
Open WebUI is straightforward to run, but many users hit the same issues: container boot loops, memory pressure, and reverse-proxy misconfiguration. This guide focuses on a stable setup plus quick troubleshooting.
Recommended VPS Specifications
- CPU: 2 vCPU minimum
- RAM: 4GB minimum (8GB for multi-user use)
- Storage: 40GB+ SSD
- OS: Ubuntu 22.04/24.04 LTS
- Runtime: Docker Engine + Compose plugin
A Cloud VPS gives you enough headroom for Open WebUI plus model/provider integrations.
Step 1: Install Docker (if needed)
>sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Step 2: Run Open WebUI
>docker run -d --name open-webui -p 3000:8080 --restart unless-stopped -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
Step 3: Add reverse proxy + SSL
>sudo apt install -y nginx certbot python3-certbot-nginx
>sudo nano /etc/nginx/sites-available/open-webui
>server {
listen 80;
server_name chat.example.com;
client_max_body_size 20m;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
>sudo ln -s /etc/nginx/sites-available/open-webui /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d chat.example.com
Troubleshooting: most common failures
1) Container keeps restarting
>docker ps -a
docker logs --tail=200 open-webui
Usually caused by low memory or stale volume data. On low-memory instances, add swap and restart.
2) Site loads but model calls fail
Check provider keys and network egress. If using local model backends, confirm reachable host/port and timeout settings.
3) 502/504 from Nginx
Verify container listens on >3000:8080 and proxy points to >127.0.0.1:3000.
Maintenance commands
>docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui && docker rm open-webui
# rerun the docker run command above
Security baseline
- Expose only 80/443 publicly (keep container ports private)
- Use HTTPS only
- Enable regular backups of
>open-webuivolume data
For teams, use a larger Cloud VPS to avoid memory bottlenecks during peak use.
Security lockdown (important)
Do not expose OpenClaw wide open on the public internet. Use a reverse proxy, TLS, and firewall restrictions. Follow our hardening guide: OpenClaw Security Lockdown: Safe Internet Exposure Guide.


Be First to Comment