❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.
Ở bài trước, mình đã hướng dẫn bạn cài Ollama để chạy các mô hình AI trên VPS. Ollama hoạt động tốt qua terminal, nhưng nếu bạn muốn có trải nghiệm chat giống ChatGPT thì sao? Đó là lúc Open WebUI xuất hiện.
Open WebUI là một giao diện web mã nguồn mở dành cho các mô hình AI chạy local. Dự án này đang có hơn 80.000 stars trên GitHub, là lựa chọn phổ biến nhất hiện tại để tạo giao diện chat cho Ollama. Giao diện đẹp, nhiều tính năng, hỗ trợ nhiều người dùng, và cài đặt cực kỳ nhanh qua Docker.
Trong bài này, mình sẽ hướng dẫn bạn cài Open WebUI kết hợp với Ollama bằng Docker Compose, biến VPS thành một “ChatGPT riêng” cho cá nhân hoặc cả team.
Yêu cầu trước khi bắt đầu
Trước khi cài Open WebUI, bạn cần đảm bảo VPS đã có sẵn:
- Docker và Docker Compose đã được cài đặt.
- Ollama đang chạy trên VPS (hoặc bạn sẽ chạy Ollama qua Docker Compose luôn ở phần sau).
- VPS có tối thiểu 2GB RAM trống cho Open WebUI (riêng phần giao diện, chưa tính model AI).
Nếu bạn chưa cài Ollama, hãy xem lại Bài 1: Cài đặt Ollama trên VPS Linux để thiết lập trước nhé.
Cách 1: Cài Open WebUI bằng Docker Run (nhanh gọn)
Nếu bạn đã cài Ollama trực tiếp trên VPS (không qua Docker) và muốn chạy Open WebUI nhanh nhất có thể, chỉ cần một lệnh duy nhất:
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Giải thích nhanh các tham số:
-d: Chạy container ở chế độ nền.--restart always: Tự khởi động lại khi VPS reboot.-p 3000:8080: Map port 3000 bên ngoài vào port 8080 bên trong container.--add-host=host.docker.internal:host-gateway: Cho phép container truy cập Ollama đang chạy trên host.-v open-webui:/app/backend/data: Lưu dữ liệu (chat history, settings, users) vào Docker volume để không mất khi recreate container.
Cách này phù hợp khi bạn muốn test nhanh hoặc chỉ dùng cá nhân. Nhưng nếu bạn muốn quản lý cả Ollama lẫn Open WebUI gọn gàng hơn, hãy dùng Docker Compose ở phần tiếp theo.
Cách 2: Cài bằng Docker Compose (khuyến nghị)
Docker Compose giúp bạn quản lý cả Ollama và Open WebUI trong một file cấu hình duy nhất. Khi cần update, restart hay di chuyển sang server khác, mọi thứ đều rõ ràng và dễ thao tác hơn.
Tạo một thư mục cho project:
mkdir ~/open-webui && cd ~/open-webui
Tạo file docker-compose.yml với nội dung sau:
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: always
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
# Nếu VPS có GPU NVIDIA, bỏ comment 3 dòng dưới:
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open_webui_data:/app/backend/data
depends_on:
- ollama
volumes:
ollama_data:
open_webui_data:
Khởi chạy cả hai service:
docker compose up -d
Docker sẽ pull image và khởi động cả Ollama lẫn Open WebUI. Quá trình này mất khoảng 1-2 phút tùy tốc độ mạng.
Với Docker Compose, biến OLLAMA_BASE_URL trỏ thẳng đến service name ollama trong cùng network. Bạn không cần dùng --add-host như cách 1 nữa.
Truy cập Open WebUI lần đầu
Sau khi container chạy xong, mở trình duyệt và truy cập:
http://IP-VPS:3000
Lần đầu tiên truy cập, Open WebUI sẽ yêu cầu bạn tạo tài khoản. Tài khoản đầu tiên được tạo sẽ tự động trở thành admin, có toàn quyền quản lý hệ thống.



Hãy tạo tài khoản admin ngay sau khi cài đặt. Nếu ai đó truy cập trước bạn và tạo tài khoản, họ sẽ trở thành admin.

Sau khi đăng ký xong, bạn sẽ thấy giao diện chat quen thuộc giống ChatGPT. Nếu Ollama đã có model (ví dụ bạn đã ollama pull llama3.2 từ bài trước), model đó sẽ tự động xuất hiện trong danh sách để chọn.

Tổng quan giao diện
Giao diện Open WebUI được chia thành các phần chính:
- Sidebar bên trái: Lịch sử chat, tạo cuộc trò chuyện mới, quản lý thư mục chat.
- Thanh chọn model ở phía trên: Chọn model AI để chat (Llama, Gemma, Phi, hoặc bất kỳ model nào bạn đã pull trong Ollama).
- Khu vực chat ở giữa: Nơi nhập prompt và xem phản hồi.
- Settings (góc dưới trái): Cấu hình giao diện, kết nối, quản lý user.
Bạn có thể bắt đầu chat ngay bằng cách chọn model và gõ câu hỏi. Phản hồi được render với Markdown, có syntax highlighting cho code, và hỗ trợ cả LaTeX cho công thức toán.
Các tính năng nổi bật
Open WebUI không đơn thuần là khung chat. Dưới đây là những tính năng đáng chú ý:
Chat với nhiều model cùng lúc
Bạn có thể chọn nhiều model trong cùng một cuộc trò chuyện để so sánh câu trả lời. Ví dụ, hỏi cùng một câu với Llama 3.2 và Gemma 3 rồi xem model nào trả lời tốt hơn.
Upload file và RAG tích hợp sẵn
Open WebUI hỗ trợ upload tài liệu (PDF, TXT, DOCX…) rồi hỏi đáp dựa trên nội dung file. Tính năng RAG (Retrieval-Augmented Generation) được tích hợp sẵn, không cần cài thêm gì.
Voice chat
Hỗ trợ nhập liệu bằng giọng nói và đọc phản hồi thành tiếng. Bạn có thể dùng trực tiếp trên trình duyệt.
PWA
Open WebUI hoạt động như Progressive Web App. Bạn có thể “Add to Home Screen” trên điện thoại để dùng như app native, mở nhanh và nhận thông báo.


Quản lý nhiều người dùng
Một điểm mạnh của Open WebUI là hỗ trợ multi-user ngay từ đầu. Bạn có thể tạo tài khoản cho đồng nghiệp, bạn bè, hoặc thành viên trong team để cùng sử dụng.
Vào Admin Panel (biểu tượng ở sidebar), bạn sẽ thấy:
- Dashboard: Thống kê tổng quan về số user, số cuộc chat.
- Users: Tạo, xóa, quản lý tài khoản người dùng.
- Phân quyền: Có 3 role là Admin, User, và Pending. Bạn có thể yêu cầu admin duyệt tài khoản mới trước khi cho phép sử dụng.
Mỗi user có lịch sử chat riêng, không ai xem được của người khác (trừ admin nếu bật tùy chọn).

Tạo Custom Model Profiles
Open WebUI cho phép bạn tạo các “model profile” tùy chỉnh dựa trên model gốc. Ví dụ, bạn có thể tạo một profile tên “Trợ lý code Python” dựa trên Llama 3.2, với system prompt được thiết lập sẵn để model luôn trả lời theo hướng lập trình Python.
Cách tạo:
- Vào Workspace → Models.
- Nhấn Create a model.
- Chọn base model (ví dụ:
llama3.2). - Đặt tên, mô tả, và viết system prompt theo ý bạn.
- Lưu lại. Model profile mới sẽ xuất hiện trong danh sách chọn model khi chat.
Tính năng này rất hữu ích khi bạn muốn tạo nhiều “trợ lý chuyên biệt” từ cùng một model gốc, mỗi trợ lý phục vụ một mục đích khác nhau.
Cập nhật Open WebUI
Open WebUI phát triển rất nhanh, gần như tuần nào cũng có bản cập nhật. Để update lên phiên bản mới nhất:
Nếu dùng Docker Compose:
cd ~/open-webui
docker compose pull
docker compose up -d
Nếu dùng Docker Run:
docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui
docker rm open-webui
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Dữ liệu chat và cấu hình được lưu trong Docker volume nên không bị mất khi update. Bạn cứ yên tâm pull image mới và recreate container.
Tổng kết
Với Open WebUI, bạn đã có một giao diện chat AI hoàn chỉnh chạy trên VPS của mình. Kết hợp với Ollama từ bài trước, bạn có thể:
- Chat với nhiều model AI khác nhau qua giao diện web đẹp mắt.
- Upload tài liệu để hỏi đáp (RAG).
- Tạo tài khoản cho team cùng sử dụng.
- Tùy chỉnh model profiles cho từng mục đích cụ thể.
- Toàn bộ dữ liệu nằm trên server của bạn, không phụ thuộc bên thứ ba.
Ở bài tiếp theo, mình sẽ hướng dẫn bạn cài và chạy DeepSeek trên Ollama để có thêm một model AI mạnh, đặc biệt tốt cho các tác vụ reasoning và lập trình.
Có thể bạn cần xem thêm
- Bảo mật AI self-hosted - SSL, Authentication và Firewall cho Ollama
- Reverse Proxy Ollama với Nginx - Truy cập AI qua domain riêng với HTTPS
- n8n + Ollama - Tự động hóa workflow với AI chạy trên VPS riêng
- Cài đặt Dify AI trên VPS - No-code AI platform miễn phí
- Cài đặt Ollama trên VPS Ubuntu - Chạy AI riêng trong 15 phút
- Docker Compose là gì? Cài đặt và cú pháp cơ bản
Về tác giả
Trần Thắng
Chuyên gia tại AZDIGI với nhiều năm kinh nghiệm trong lĩnh vực web hosting và quản trị hệ thống.