Blog
18 tháng 3, 2026-15 luot xem
Triển khai ClawBot với Claude Subscription dễ dàng bằng Docker Compose

Triển khai ClawBot với Claude Subscription dễ dàng bằng Docker Compose

Hướng dẫn từng bước triển khai AI chatbot Telegram sử dụng OpenClaw + Claude Max subscription qua Docker Compose - không cần API key, không tốn thêm chi phí.

Nguyễn Đỗ Cao Sơn

Nguyễn Đỗ Cao Sơn

Triển khai ClawBot với Claude Subscription dễ dàng bằng Docker Compose

Bạn đang trả $20-200/tháng cho Claude subscription (Pro/Max) nhưng chỉ dùng qua giao diện web? Bài viết này hướng dẫn bạn biến subscription đó thành một con AI chatbot chạy 24/7 trên Telegram, phục vụ bạn hoặc cả team - mà không tốn thêm đồng
nào.

Chỉ cần Docker và khoảng 15 phút.


Tại sao lại cần làm thế này?

Claude subscription (Pro $20/tháng hoặc Max $100-200/tháng) cho bạn truy cập các model Claude (Opus, Sonnet, Haiku).
Nhưng bạn chỉ dùng được qua claude.ai (web) hoặc Claude Code CLI (terminal).

Muốn tích hợp Claude vào chatbot hay ứng dụng riêng? Anthropic bắt bạn mua API key, tính phí theo token - hoàn toàn tách biệt với subscription đang trả.

Giải pháp: Dùng một proxy để chuyển request API thành lệnh CLI, tận dụng quota subscription.

Cách hoạt động

┌──────────┐    ┌─── Docker Compose ──────────────────────────────────────┐
│ Telegram │───▶│                                                         │
│ (User)   │◀───│  ┌──────────┐   ┌──────────────────┐   ┌────────────┐   │
└──────────┘    │  │ OpenClaw │──▶│ Claude Proxy (Go)│──▶│ Claude CLI │   │
                │  │ :18789   │   │ :8080            │   │ (claude -p)│   │
┌──────────┐    │  │ AI Agent │   │ OpenAI-compatible│   │ OAuth Max  │   │
│ Dashboard│───▶│  │ Telegram │   │ FlexContent patch│   └─────┬──────┘   │
│ (Browser)│    │  └──────────┘   └──────────────────┘         │          │
└──────────┘    │                                              │          │
                │                                    ┌─────────▼───────┐  │
                │                                    │ Anthropic API   │  │
                │                                    │ (Claude Max     │  │
                │                                    │  quota, no API$)│  │
                │                                    └─────────────────┘  │
                └─────────────────────────────────────────────────────────┘
                                      │
                               mount: ~/.claude/
                          (OAuth token từ host)

Flow rất đơn giản:

  1. Bạn nhắn tin cho bot trên Telegram
  2. OpenClaw (AI Agent) nhận tin, gửi request tới Claude Proxy
  3. Proxy chuyển request thành lệnh claude -p (Claude Code CLI)
  4. CLI dùng OAuth token từ Claude Max subscription để gọi Anthropic
  5. Response trả ngược về Telegram cho bạn

Tất cả gói trong Docker Compose, chỉ cần docker compose up -d.


Chuẩn bị

Thứ cần có Ghi chú
Docker + Docker Compose v2 Cài sẵn trên máy
Claude subscription Pro ($20), Max ($100/$200)
Tài khoản Telegram Để tạo bot

Bước 1: Cài Claude Code CLI và đăng nhập

Container Docker sẽ mount thư mục ~/.claude/ từ máy host (read-only) để dùng OAuth token. Nên bạn cần đăng nhập CLI trên máy trước.

Cài đặt:

# Linux / macOS
curl -fsSL https://claude.ai/install.sh | bash

# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex

Đăng nhập:

claude login

Terminal hiện một URL - copy URL đó, mở trên browser, đăng nhập tài khoản Claude (Pro hoặc Max), nhấn Authorize. Terminal tự nhận.

Test thử:

claude -p "Xin chào, trả lời ngắn gọn"

Thấy response là OK. Token lưu tại ~/.claude/, tự động refresh, không cần đăng nhập lại.


Bước 2: Tạo Telegram Bot

Mở Telegram, tìm @BotFather (có tick xanh xác thực), làm theo các bước:

  1. Nhắn /newbot
  2. Nhập tên hiển thị: My AI Bot
  3. Nhập username (kết thúc bằng bot): my_ai_claw_bot
  4. BotFather trả về token:
7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Lưu token này lại - dùng ngay bước sau.

Cấu hình thêm (tuỳ chọn, nhắn cho @BotFather):

  • /setdescription - mô tả bot
  • /setuserpic - ảnh đại diện
  • /setprivacyDisable - cho bot đọc tin group mà không cần @mention

Bước 3: Cấu hình

cd docker/
cp .env.example .env

Sửa file .env:

# Bot token từ @BotFather
TELEGRAM_BOT_TOKEN=7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Port proxy
PROXY_PORT=8080

# Port dashboard OpenClaw
GATEWAY_PORT=18789

# Token truy cập dashboard (tạo bằng: openssl rand -hex 24)
DASHBOARD_TOKEN=your-random-token-here

# Đường dẫn tới ~/.claude trên máy host
CLAUDE_CONFIG_HOST=~/.claude

# Thư mục chia sẻ file giữa host và ClawBot
SHARED_DIR=./shared

Chỉ cần điền 2 thứ quan trọng: bot tokendashboard token. Còn lại giữ mặc định.


Bước 4: Khởi động

docker compose up -d

Lần đầu mất 2-3 phút (build proxy Go + cài Claude CLI). Kiểm tra:

docker compose ps        # xem status
docker compose logs -f   # xem log

Test nhanh proxy:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer not-needed" \
  -d '{
    "model": "claude-sonnet-4-6-20250620",
    "messages": [{"role": "user", "content": "Xin chào"}]
  }'

Nhận JSON response với câu trả lời → proxy OK.


Bước 5: Kết nối Telegram

Mở Telegram, tìm bot, nhắn tin bất kỳ. Bot trả về pairing code:

To continue, ask your admin to approve pairing code: ABC12345

Approve:

docker compose exec openclaw openclaw pairing approve telegram ABC12345

Xong! Nhắn tin cho bot - Claude AI trả lời ngay trên Telegram.


Chia sẻ file giữa host và ClawBot

Thư mục docker/shared/ được mount vào container tại /home/node/shared/. Bạn có thể:

  • Gửi file cho bot xử lý: Bỏ file vào docker/shared/ trên máy, bot đọc được
  • Nhận output từ bot: Bot ghi file ra /home/node/shared/, bạn lấy ở docker/shared/

Ví dụ: bỏ file CSV vào shared/, nhắn Telegram bảo bot "phân tích file /home/node/shared/data.csv" — bot đọc và trả kết quả.


Dashboard

OpenClaw có giao diện web quản lý:

http://localhost:18789/#token=<DASHBOARD_TOKEN>

Chọn model

Mặc định là Claude Sonnet 4.6. Bạn có thể đổi:

Model Đặc điểm
claude-sonnet-4-6-20250620 Cân bằng tốc độ + chất lượng (mặc định)
claude-opus-4-6-20250620 Mạnh nhất, phù hợp task phức tạp
claude-haiku-4-5-20251001 Nhanh nhất, phù hợp chat thông thường

Đổi model:

docker compose exec openclaw node -e "
const fs = require('fs');
const cfg = JSON.parse(fs.readFileSync('/home/node/.openclaw/openclaw.json','utf8'));
cfg.agents.defaults.model.primary = 'claude-max/claude-opus-4-6-20250620';
delete cfg.agents.defaults.models;
cfg.agents.defaults.models = {'claude-max/claude-opus-4-6-20250620': {streaming: false}};
fs.writeFileSync('/home/node/.openclaw/openclaw.json', JSON.stringify(cfg, null, 2));
console.log('Done');
"
docker compose restart openclaw

Các lỗi thường gặp và cách fix

Bot trả về [object Object]

Proxy Node.js (claude-max-api-proxy) có bug serialization. Repo này đã dùng proxy Go + patch sẵn, nên không gặp lỗi này.

HTTP 400: Invalid JSON

OpenClaw gửi content dạng array ([{"type":"text","text":"..."}]), proxy Go gốc chỉ xử lý string. Patch FlexContent trong repo đã fix - nếu gặp lại, rebuild:

docker compose build --no-cache claude-proxy
docker compose up -d

"No API key found for provider anthropic"

Config model đang dùng prefix anthropic/ thay vì claude-max/. Kiểm tra:

docker compose exec openclaw cat /home/node/.openclaw/openclaw.json | grep primary

Phải là claude-max/....

Token hết hạn (401)

claude login              # re-login trên host
docker compose restart claude-proxy

So sánh nhanh: Claude Max vs API

Subscription + Proxy Anthropic API
Chi phí $20-200/tháng (flat) Theo token (~$3-15/1M tokens)
Gói Pro $20, Max $100/$200 Pay-per-use
Setup Docker Compose + OAuth API key
Phù hợp Cá nhân, team nhỏ Production, scale lớn
Rate limit Theo subscription tier Theo API tier

Gói Pro $20/tháng cũng dùng được - rate limit thấp hơn Max nhưng đủ cho chatbot cá nhân. Nếu đã trả subscription - cách này tiết kiệm hơn nhiều so với API.


Tổng kết

5 bước, 15 phút:

  1. Cài Claude CLI + đăng nhập Max
  2. Tạo Telegram bot qua @BotFather
  3. Copy .env.example.env, điền token
  4. docker compose up -d
  5. Nhắn tin cho bot, approve pairing code

Kết quả: AI chatbot Claude chạy 24/7 trên Telegram, dùng quota subscription, có dashboard quản lý, hỗ trợ nhiều model.


Download source OpenClaw + Claude Max (Docker Compose)

© 2026 - SonNDC