Back to articles
Technology Insight

Hướng Dẫn Tự Host Bolt.new Cục Bộ Với Open-WebUI Và Ollama Trên VPS ARM Để Dev App Không Tốn Chi Phí API

May 29, 2026

Giới Thiệu: Kỷ Nguyên Của AI Agentic Lập Trình Và Thách Thức Về Chi Phí API

Trong bối cảnh phát triển phần mềm hiện đại, các AI Coding Agents như Bolt.new, Lovable hay Cursor đã thay đổi hoàn toàn cách chúng ta xây dựng ứng dụng. Khả năng khởi tạo toàn bộ project từ một câu prompt, tự động sửa lỗi và deploy trực tiếp trên trình duyệt mang lại hiệu suất làm việc kinh ngạc. Tuy nhiên, đối với các nhà phát triển độc lập, startup giai đoạn đầu hoặc các doanh nghiệp có chính sách bảo mật dữ liệu nghiêm ngặt, rào cản lớn nhất nằm ở chi phí API đắt đỏ (như Claude 3.5 Sonnet) và rủi ro rò rỉ mã nguồn khi gửi lên các cloud provider bên thứ ba.

Giải pháp tối ưu cho bài toán này là xu hướng Self-hosting (Tự lưu trữ). Bằng cách tận dụng các dòng VPS ARM có hiệu năng trên giá thành cực tốt (như Oracle Cloud Free Tier hoặc Ampere Altra của Hetzner), kết hợp cùng hệ sinh thái mã nguồn mở bao gồm Ollama (Inference Engine), Open-WebUI (Giao diện quản lý và cổng kết nối API) và phiên bản cộng đồng bolt.diy (bản fork mã nguồn mở của Bolt.new), bạn hoàn toàn có thể sở hữu một hệ thống AI Engineer riêng biệt với chi phí vận hành bằng 0.

---

Tại Sao Nên Chọn Kiến Trúc VPS ARM, Ollama Và Open-WebUI?

Trước khi đi vào chi tiết cấu hình, hãy cùng phân tích lý do vì sao mô hình kiến trúc này lại tối ưu cho các kỹ sư phần mềm:

  • Tối ưu hóa chi phí phần cứng: Chip xử lý cấu trúc ARM mang lại hiệu năng tính toán đa nhân vượt trội nhưng tiêu thụ ít năng lượng hơn hẳn chip x86 truyền thống. Các nhà cung cấp VPS hiện nay cung cấp cấu hình ARM với dung lượng RAM rất lớn (lên tới 24GB hoặc 24GB RAM miễn phí từ Oracle Cloud), hoàn toàn đủ sức chứa các mô hình LLM chuyên dụng cho lập trình.
  • Hệ sinh thái Ollama mạnh mẽ: Ollama đơn giản hóa việc quản lý và chạy các mô hình GGUF lượng tử hóa (quantized) như qwen2.5-coder hay deepseek-r1 trực tiếp trên CPU/RAM của VPS mà không bắt buộc phải có GPU chuyên dụng đắt tiền.
  • Open-WebUI đóng vai trò Cổng kết nối trung tâm (API Gateway): Thay vì cấu hình thủ công phức tạp, Open-WebUI không chỉ cung cấp giao diện trò chuyện cao cấp giống như ChatGPT, mà còn tự động đóng gói các mô hình Ollama cục bộ thành một endpoint tương thích hoàn toàn với cấu trúc OpenAI API để cấp quyền cho bolt.diy truy cập.
---

Quy Trình Cài Đặt Chi Tiết Hệ Thống Trực Tiếp Trên VPS ARM

Để triển khai dự án này, VPS của bạn cần chạy hệ điều hành Linux (khuyến nghị Ubuntu 22.04 LTS hoặc 24.04 LTS) và đã được cài đặt sẵn Docker cùng Docker Compose.

Bước 1: Cài đặt Ollama và Tải các Model phục vụ Coding

Mặc dù có thể chạy Ollama bên trong Docker, việc cài đặt trực tiếp trên hệ điều hành của VPS (Native) sẽ giúp tối ưu hiệu năng sử dụng tài nguyên CPU ARM một cách tốt nhất. Chạy lệnh cài đặt tự động sau qua SSH:

curl -fsSL https://ollama.com/install.sh | sh

Sau khi cài đặt thành công, dịch vụ Ollama sẽ tự động khởi chạy ngầm trên cổng 11434. Tiếp theo, chúng ta tiến hành tải về mô hình chuyên dụng để lập trình. Đối với cấu hình VPS ARM thông thường (khoảng 8GB đến 16GB RAM), mô hình Qwen2.5-Coder 7B là sự lựa chọn xuất sắc nhất hiện nay với độ chính xác cao và tốc độ phản hồi nhanh:

ollama pull qwen2.5-coder:7b

Nếu cấu hình VPS của bạn mạnh hơn (từ 24GB RAM trở lên), bạn có thể thử nghiệm mô hình DeepSeek-R1 14B/32B hoặc Phi-4 để có khả năng suy luận logic lập trình phức tạp hơn.

Bước 2: Triển khai Open-WebUI qua Docker Compose

Để Open-WebUI chạy trong môi trường Docker có thể giao tiếp được với dịch vụ Ollama đang chạy trên Host OS, chúng ta cần định nghĩa một file docker-compose.yml chuẩn chỉnh như sau:

version: '3.8'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
      - WEBUI_AUTH=true
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - open-webui-data:/app/backend/data
    restart: always

volumes:
  open-webui-data:

Khởi chạy container bằng lệnh: docker compose up -d. Sau khi hệ thống khởi động hoàn tất, hãy truy cập vào địa chỉ http://:3000, tạo tài khoản Admin đầu tiên của bạn. Tại đây, bạn sẽ thấy mô hình qwen2.5-coder:7b đã được tự động nhận diện thành công.

Bước 3: Cấu hình bolt.diy kết nối với Local LLM

bolt.diy là một dự án mã nguồn mở tuyệt vời cho phép người dùng thay thế các API Cloud bằng bất kỳ mô hình cục bộ nào. Để cấu hình, bạn clone source code từ GitHub của dự án về VPS hoặc máy cá nhân của mình:

git clone https://github.com/stackblitz-labs/bolt.diy.git
cd bolt.diy
cp .env.example .env.local

Mở file .env.local và tiến hành chỉnh sửa các biến môi trường để trỏ luồng dữ liệu về phía Open-WebUI hoặc Ollama endpoint của bạn:

VITE_LOG_LEVEL=info
# Kích hoạt chế độ Local Provider
OLLAMA_API_BASE_URL=http://:11434
# Hoặc sử dụng Open-WebUI làm Gateway
OPENAI_LIKE_API_BASE_URL=http://:3000/api
OPENAI_LIKE_API_KEY=your_open_webui_api_key_here

Sau khi lưu file cấu hình, bạn tiến hành cài đặt thư viện phụ thuộc và khởi chạy ứng dụng bằng pnpm:

pnpm install
pnpm run dev

Bây giờ, giao diện phát triển ứng dụng của Bolt sẽ xuất hiện trên trình duyệt của bạn. Bạn chỉ cần chọn nhà cung cấp là Ollama hoặc OpenAI-Compatible, chọn model qwen2.5-coder:7b và bắt đầu đưa ra câu lệnh thiết kế ứng dụng.

---

Những Lưu Ý Quan Trọng Để Tối Ưu Hiệu Năng Trên Hệ Thống VPS ARM

Vì việc chạy các mô hình ngôn ngữ lớn cục bộ trên kiến trúc CPU ARM không có card đồ họa chuyên dụng (GPU) sẽ tiêu tốn một lượng lớn tài nguyên phần cứng, việc tối ưu hóa cấu hình hệ thống là cực kỳ quan trọng:

  1. Cấu hình tham số OLLAMA_NUM_PARALLEL: Theo mặc định, Ollama xử lý tuần tự từng request một. Để tăng khả năng đáp ứng khi bạn vừa chat kiểm thử vừa sinh code cùng lúc, hãy thêm biến môi trường OLLAMA_NUM_PARALLEL=2 vào cấu hình hệ thống để cho phép xử lý song song.
  2. Sử dụng Swap Memory: Đối với VPS ARM có dung lượng RAM vật lý vừa phải (ví dụ 8GB), việc tải mô hình 7B có thể gây ra hiện tượng tràn RAM vật lý dẫn tới sập tiến trình (OOM Killer). Hãy thiết lập thêm từ 4GB đến 8GB bộ nhớ Swap trên ổ cứng SSD/NVMe để đảm bảo hệ thống luôn vận hành ổn định.
  3. Cơ chế Giữ ấm Mô hình (Keep Alive): Để tránh việc mô hình bị giải phóng khỏi RAM sau 5 phút không hoạt động dẫn đến việc phải tải lại mất thời gian ở lượt prompt kế tiếp, hãy set biến OLLAMA_KEEP_ALIVE=24h hoặc duy trì nó liên tục nếu bạn dev ứng dụng suốt cả ngày.
---

Kết Luận: Sự Tự Do Trong Sáng Tạo Và Phát Triển Phần Mềm

Bằng việc kết hợp khéo léo giữa cấu trúc hạ tầng VPS ARM chi phí thấp, công cụ xử lý mô hình tinh gọn Ollama, trung tâm điều khiển Open-WebUI và giao diện agentic của bolt.diy, bạn đã tự thiết lập thành công một Studio lập trình AI hoàn chỉnh, hoàn toàn miễn phí và bảo mật tuyệt đối. Bạn không còn phải lo lắng về việc hóa đơn API tăng vọt sau mỗi lần refactor code, cũng không lo ngại thông tin dữ liệu cốt lõi của ứng dụng bị gửi ra internet. Đây chính là bước đệm vững chắc giúp các lập trình viên làm chủ hoàn toàn công nghệ và bứt phá giới hạn sáng tạo trong kỷ nguyên AI.

Hướng Dẫn Tự Host Bolt.new Cục Bộ Với Open-WebUI Và Ollama Trên VPS ARM Để Dev App Không Tốn Chi Phí API | DPTCloud