{"slug": "self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy", "title": "Self-hosted AI assistant on a $9 VPS — Ollama + Open WebUI + Caddy", "summary": "A developer has documented a self-hosted AI assistant setup running Ollama, Open WebUI, and Caddy in Docker on a $9 Hostinger KVM2 VPS with 2 vCPUs, 8 GB RAM, and no GPU. The setup achieves token generation speeds of about 16 tokens/sec for the llama3.2:1b model and 13 tokens/sec for llama3.2:3b, while qwen2.5:7b fits but is not recommended due to tight memory. The developer advises hardening the server first, disabling signups after creating an admin account, and turning off Open WebUI's auto-generation features to reduce CPU load.", "body_md": "Ollama + Open WebUI + Caddy, running in Docker on a Hostinger KVM2 (2 vCPU, 8 GB RAM, 100 GB NVMe, Ubuntu 24.04).\n\nVideo: [https://youtu.be/-OlX98vV8Sg](https://youtu.be/-OlX98vV8Sg)\nVPS: [https://hostinger.com/daniellaera](https://hostinger.com/daniellaera) — code `DANIELLAERA`\n\nfor 10% off\n\n| Model | Tokens/sec |\n|---|---|\n| llama3.2:1b | ~16 |\n| llama3.2:3b | ~13 |\n| qwen2.5:7b | fits in 8 GB, but very tight — not recommended |\n\nShort prompts (a commit message, a quick explanation) come back in a few seconds. Long generations take a minute or more. There is no GPU on this plan — everything runs on CPU.\n\n`01-harden.sh`\n\n— do this first, before anything else`02-docker.sh`\n\n`compose.yml`\n\n+`Caddyfile`\n\n`docker compose up -d`\n\n- Pull a model, create your admin account, then disable signups\n\n- Set a system prompt like\n*\"Answer directly, no preamble, be brief\"*— a short answer is a fast answer. - In Open WebUI, Admin Panel → Settings → Interface: turn off Title Auto-Generation, Follow-Up Generation, Tags Generation and Autocomplete. Each one fires an extra hidden generation on every message and they all compete for the same two cores.\n`OLLAMA_KEEP_ALIVE`\n\nkeeps the model resident in RAM. Longer means no cold-load delay; shorter frees the memory when idle.", "url": "https://wpnews.pro/news/self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy", "canonical_source": "https://gist.github.com/daniellaera/a001fe8256335fe71bdd54c582d2456b", "published_at": "2026-08-21 13:42:52+00:00", "updated_at": "2026-08-21 20:14:40.308211+00:00", "lang": "en", "topics": ["developer-tools", "ai-products", "ai-infrastructure"], "entities": ["Ollama", "Open WebUI", "Caddy", "Hostinger", "llama3.2", "qwen2.5"], "alternates": {"html": "https://wpnews.pro/news/self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy", "markdown": "https://wpnews.pro/news/self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy.md", "text": "https://wpnews.pro/news/self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy.txt", "jsonld": "https://wpnews.pro/news/self-hosted-ai-assistant-on-a-9-vps-ollama-open-webui-caddy.jsonld"}}