VPS & Hosting cho người Việt

VPS Cho AI Agent & Copilot 24/7 2026: Tự Host Claude Code, Aider, OpenHands Trên Server Riêng

Tháng 2 năm nay, tôi ngồi đợi Claude Code chạy một refactor 200 dòng trên MacBook Air. Gió quạt kêu như máy bay cất cánh, pin tụt 30% trong 20 phút, và Claude Code báo lỗi giữa chừng vì hết RAM. Tôi nghĩ: "Sao không cho nó chạy trên VPS nhỉ?"

6 tháng sau, tôi có một con VPS 4GB RAM chạy 24/7, chuyên dụng cho AI agent. Claude Code, Aider, OpenHands chạy ngon lành. Tôi gửi task lúc 10h tối từ điện thoại, sáng ra có PR sẵn. Tổng chi phí: 400K VPS + 500K API tiền/tháng. Rẻ hơn Copilot Business ($19/tháng) cho team 3 người mà năng suất gấp 5 lần.

Bài này là mọi thứ tôi học được sau 6 tháng: chọn VPS thế nào, cài agent gì, bảo mật ra sao, và những cái bẫy khiến bạn đốt tiền API vô ích.

💡 TL;DR: VPS 2C/4GB RAM + 40GB NVMe (250K/tháng) là đủ chạy mọi AI agent. Setup Docker Compose 30 phút. Chi phí API ~300-800K/tháng tùy workload. Code xong agent tự push lên GitHub, bạn chỉ việc review.

AI Agent Là Gì? Sao Cần VPS?

AI agent khác với chatbot thông thường ở chỗ nó tự hành động: đọc file, sửa code, chạy lệnh terminal, debug, commit git — tất cả tự động. Những tool phổ biến hiện nay:

AgentMô tảModel cầnRAM
Claude CodeAnthropic official CLI agent, dùng terminal để sửa code đa fileClaude 4 Sonnet1-2GB
AiderOpen-source, multi-model, tự động map repo + sửa multi-fileClaude/GPT-4o/DeepSeek1GB
OpenHandsAgent tự host qua Docker, có web UI, sandbox executionBất kỳ OpenAI-compatible2-3GB
ClineVS Code extension, MCP support, browser automationClaude 4/Gemini1GB
Continue.devOpen-source Copilot alternative, local + cloud modelBất kỳ500MB

Tất cả đều cần chạy liên tục để có hiệu quả. Không ai muốn đợi 5 phút mỗi lần mở Claude Code trên laptop. VPS cho phép agent chạy 24/7, nhận task qua API/webhook, và trả kết quả lúc bạn online.

Cấu Hình VPS Tối Ưu Cho AI Agent

Không cần VPS GPU. AI agent gọi API bên ngoài (Claude, OpenAI, DeepSeek) — VPS chỉ là nơi chạy runtime. Cấu hình tối ưu:

Cấu HìnhChạy ĐượcGiá (Netihot)Phù Hợp
1C/1GB/20GBAider CLI cơ bản (single task)100K/thángCá nhân, test thử
2C/2GB/40GBClaude Code + Aider (2 agent)150K/thángCá nhân dùng hàng ngày
2C/4GB/60GBOpenHands + Claude Code + Aider250K/thángTeam 2-3 dev
4C/8GB/100GBMulti-agent + local LLM (Ollama)500K/thángTeam 5+ dev, CI/CD agent
⚠️ Bẫy #1: "Mua VPS GPU để agent chạy nhanh hơn" — Agent không chạy model locally (trừ khi bạn dùng Ollama). Nó gọi API bên ngoài. VPS GPU 2-3 triệu/tháng là lãng phí cho AI agent. Mua VPS CPU thường, đầu tư tiền vào API quality model.

Setup Agent Stack Trên VPS

Đây là Docker Compose file tôi dùng:

# docker-compose.yml — AI Agent Stack
version: '3.8'
services:
  openhands:
    image: docker.all-hands.dev/all-hands-ai/openhands:latest
    container_name: openhands
    ports: ["3000:3000"]
    environment:
      - SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:latest
      - LLM_API_KEY=${OPENAI_KEY}
      - LLM_MODEL=claude-sonnet-4-20250514
      - WORKSPACE_MOUNT_PATH=/opt/workspace
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/workspace:/opt/workspace
      - openhands_state:/.openhands-state
    restart: unless-stopped
    mem_limit: 2g

  aider:
    build:
      context: ./aider
      dockerfile: Dockerfile
    container_name: aider-daemon
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_KEY}
      - AIDER_MODEL=claude-sonnet-4-20250514
    volumes:
      - /opt/workspace:/workspace
      - aider_cache:/root/.aider
    stdin_open: true
    tty: true
    restart: unless-stopped
    mem_limit: 1g

volumes:
  openhands_state:
  aider_cache:

Setup OpenHands qua Nginx reverse proxy để truy cập web UI từ xa:

# /etc/nginx/sites-available/agent
server {
    listen 443 ssl;
    server_name agent.yourdomain.com;
    
    ssl_certificate /etc/letsencrypt/live/agent.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/agent.yourdomain.com/privkey.pem;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 600s;  # agent làm việc lâu
    }
    
    # IP whitelist — chỉ bạn truy cập được
    allow YOUR_HOME_IP;
    deny all;
}
💡 Mẹo: Dùng Tailscale hoặc Cloudflare Tunnel thay vì mở port public. An toàn hơn và không cần IP whitelist. Tôi dùng Tailscale — cài 2 dòng, truy cập agent qua agent.tailnet.ts.net, không cần mở port nào.

Workflow Hàng Ngày: Từ Task Đến PR Tự Động

Kiến trúc làm việc của tôi sau 6 tháng:

9:00 AM — Tôi viết task vào Notion/GitHub Issue
         │
         ▼
9:05 — Webhook gửi task → VPS agent
         │
         ▼
9:05-10:30 — Claude Code (agent 1): phân tích, refactor, test
          │  OpenHands (agent 2): tạo PR description, changelog
         │
         ▼
10:30 — Agent commit + push lên GitHub, gửi Slack/Telegram notification
         │
         ▼
10:35 — Tôi review PR, merge (hoặc yêu cầu sửa)
         │
         ▼
11:00 — Done. Bắt đầu task tiếp theo.

Code automation cho Telegram notification:

#!/bin/bash
# notify.sh — gửi notification khi agent hoàn thành task

BOT_TOKEN="your-bot-token"
CHAT_ID="your-chat-id"

# Lắng nghe kết quả từ agent
while true; do
  if [ -f /tmp/agent-result.txt ]; then
    RESULT=$(cat /tmp/agent-result.txt)
    curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
      -d "chat_id=${CHAT_ID}" \
      -d "text=🤖 Agent done: ${RESULT}"
    rm /tmp/agent-result.txt
  fi
  sleep 10
done

Chi Phí Thực Tế: VPS vs Laptop vs Dịch Vụ

Phương ÁnChi Phí/ThángUptimeKhả Năng Mở Rộng
VPS 4GB + API Claude250K + 500K API = 750K24/7Team 3 người dùng chung
Laptop cá nhân + API0 + 500K API = 500KKhi bật máy1 người
GitHub Copilot Business$19/user x 3 = $57 (~1.4M)24/7Theo user
Cursor Pro$20/user x 3 = $60 (~1.5M)24/7Theo user
Claude Code Max ($100/tháng)$100 x 3 = $300 (~7.5M)24/7Theo user

Self-host agent trên VPS rẻ hơn 50-80% so với Copilot/Cursor cho team. Quan trọng hơn: bạn không bị rate limit, không bị giới hạn request/ngày, mô hình xịn nhất (Claude 4 Sonnet) thay vì mô hình rút gọn như Copilot free tier.

⚠️ Bẫy #2: "Chạy agent 24/7 không giới hạn, để nó refactor cả repo" — Tôi từng làm thế. Kết quả: Claude Code refactor 3,000 dòng, phá 12 test case, và tôi mất 2 ngày sửa lại. Hóa đơn API tháng đó: 1.8 triệu cho một tuần "tự động hóa". Luôn giới hạn scope mỗi task: 1 file/feature/task. Không bao giờ giao "refactor toàn bộ codebase" cho agent.

Bảo Mật Cho AI Agent — Đừng Để Nó "Nổi Loạn"

AI agent có quyền đọc/ghi file, chạy lệnh terminal, push code. Nếu không khóa đúng cách, nó có thể xóa database, leak API key, hoặc push secret lên public repo. Những gì tôi làm:

# 1. Tạo user riêng cho agent (KHÔNG chạy bằng root)
useradd -m -s /bin/bash agent
usermod -aG docker agent  # nếu cần Docker

# 2. Giới hạn quyền ghi — chỉ workspace được chỉ định
chown agent:agent /opt/workspace
chmod 755 /opt/workspace

# 3. Read-only toàn bộ hệ thống ngoài workspace
# Trong Docker: mount :ro cho mọi volume không phải workspace

# 4. API key trong .env (KHÔNG hardcode)
# /opt/workspace/.env — 400 permission
# Agent chỉ đọc qua biến môi trường

# 5. Git config — KHÔNG push tự động lên main
# Agent chỉ push lên branch riêng: agent/task-{id}
# Require PR review trước khi merge

# 6. Telegram alert cho mọi git push
# Nếu agent push gì lạ → alert ngay
🔴 Bẫy #3: Agent auto-merge vào main branch — Đã có case thực tế: agent "tối ưu" code bằng cách xóa toàn bộ error handling "vì code chạy cũng được". Auto-merge vào main → production die trong 4 tiếng. Luôn luôn: agent push lên feature branch → human review PR → merge.

So Sánh Các AI Agent Platform

Tiêu ChíClaude CodeAiderOpenHandsCline
Giao diệnTerminal CLITerminal CLIWeb UI (Docker)VS Code extension
Đa modelChỉ ClaudeMọi modelMọi OpenAI-compatibleClaude, Gemini, OpenAI
Git tích hợpTự commitTự commit + map repoTự commitQua VS Code
Tự chạy nền❌ (cần terminal mở)✅ (qua daemon)✅ (Docker)❌ (cần VS Code mở)
MCP support
Sandbox execution❌ (chạy trực tiếp)✅ (Docker sandbox)
Phù hợp VPS 24/7⭐ Cần tmux/screen⭐⭐⭐ Tốt⭐⭐⭐⭐⭐ Tốt nhất⭐ Cần VS Code server

Tôi dùng OpenHands cho task lớn (multi-file refactor, test generation) và Aider cho task nhỏ (fix bug 1 dòng, thêm feature đơn giản). Claude Code dùng khi cần MCP integration (database query, API call).

Câu Hỏi Thường Gặp

API key có bị lộ khi agent chạy trên VPS không?

Nếu setup đúng (env variable, 400 permissions, user riêng) thì không. Vấn đề là agent có thể tự đọc file .env nếu bạn không giới hạn quyền. Giải pháp: đặt API key ở Docker secrets hoặc trên RAM disk, không lưu trong workspace của agent.

Mỗi tháng tốn bao nhiêu tiền API?

Tùy workload. Tôi dùng trung bình ~$20/tháng cho Claude API (500K VNĐ). Ngày cao điểm (refactor lớn) có thể lên $5/ngày. Ngày ít việc $0.5-1/ngày. Budget trung bình an toàn: 500K-1M/tháng cho cá nhân active, 2-3M cho team 3 người.

Agent có tự "điên" và phá code không?

Có thể. Từng có lần Aider quyết định "tối ưu" bằng cách đổi tất cả async/await thành .then() chain vì "ngắn hơn". Luôn review PR từ agent. Luôn chạy test suite trước khi merge. Agent là junior dev rất nhanh nhưng cũng rất dại — đừng trust 100%.

Có cần GPU không?

Không, trừ khi bạn muốn chạy model local (Ollama, Llama.cpp). Agent gọi API cloud — VPS chỉ chạy runtime nhẹ. VPS CPU 4GB RAM là tiêu chuẩn vàng.

Tổng Kết

Sau 6 tháng chạy AI agent trên VPS, productivity của tôi tăng khoảng 40% — không phải vì agent code hay hơn tôi, mà vì nó code được lúc tôi không code. Task gửi lúc 10h tối, sáng ra đã có PR. Task gửi trước khi đi họp, về đã xong.

Công thức tối ưu: VPS 4GB (250K) + Claude API (500K) + OpenHands + Aider = 750K/tháng. Rẻ hơn một suất Copilot, mạnh hơn gấp 5 lần, và bạn hoàn toàn kiểm soát.

Bắt đầu với: Cài Docker trên VPS, Bảo mật VPS với WireGuard, và Hardening VPS cơ bản.

🤖 VPS Cho AI Agent — Từ 100K/Tháng

VPS NVMe SSD, 2C/4GB RAM, deploy Docker trong 5 phút. Chạy Claude Code, Aider, OpenHands 24/7.

VPS Netihot — Từ 47K Tino Group — Hourly Billing

Kinh nghiệm thực tế 6 tháng. Giá API có thể thay đổi theo thời điểm. Luôn kiểm tra pricing page của Anthropic/OpenAI để có số liệu mới nhất.