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.
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:
| Agent | Mô tả | Model cần | RAM |
|---|---|---|---|
| Claude Code | Anthropic official CLI agent, dùng terminal để sửa code đa file | Claude 4 Sonnet | 1-2GB |
| Aider | Open-source, multi-model, tự động map repo + sửa multi-file | Claude/GPT-4o/DeepSeek | 1GB |
| OpenHands | Agent tự host qua Docker, có web UI, sandbox execution | Bất kỳ OpenAI-compatible | 2-3GB |
| Cline | VS Code extension, MCP support, browser automation | Claude 4/Gemini | 1GB |
| Continue.dev | Open-source Copilot alternative, local + cloud model | Bấ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ình | Chạy Được | Giá (Netihot) | Phù Hợp |
|---|---|---|---|
| 1C/1GB/20GB | Aider CLI cơ bản (single task) | 100K/tháng | Cá nhân, test thử |
| 2C/2GB/40GB | Claude Code + Aider (2 agent) | 150K/tháng | Cá nhân dùng hàng ngày |
| 2C/4GB/60GB | OpenHands + Claude Code + Aider | 250K/tháng | Team 2-3 dev |
| 4C/8GB/100GB | Multi-agent + local LLM (Ollama) | 500K/tháng | Team 5+ dev, CI/CD agent |
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;
}
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 Án | Chi Phí/Tháng | Uptime | Khả Năng Mở Rộng |
|---|---|---|---|
| VPS 4GB + API Claude | 250K + 500K API = 750K | 24/7 | Team 3 người dùng chung |
| Laptop cá nhân + API | 0 + 500K API = 500K | Khi bật máy | 1 người |
| GitHub Copilot Business | $19/user x 3 = $57 (~1.4M) | 24/7 | Theo user |
| Cursor Pro | $20/user x 3 = $60 (~1.5M) | 24/7 | Theo user |
| Claude Code Max ($100/tháng) | $100 x 3 = $300 (~7.5M) | 24/7 | Theo 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ả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
So Sánh Các AI Agent Platform
| Tiêu Chí | Claude Code | Aider | OpenHands | Cline |
|---|---|---|---|---|
| Giao diện | Terminal CLI | Terminal CLI | Web UI (Docker) | VS Code extension |
| Đa model | Chỉ Claude | Mọi model | Mọi OpenAI-compatible | Claude, Gemini, OpenAI |
| Git tích hợp | Tự commit | Tự commit + map repo | Tự commit | Qua 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 BillingKinh 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.