Lê Gia Hoàng Thiện
Intern
Triển khai OpenClaw hoàn chỉnh trên Ubuntu (22.04 / 24.04)
Trong bài viết này, mình sẽ hướng dẫn bạn cách triển khai OpenClaw từ A → Z trên Ubuntu, bao gồm: cài đặt môi trường, cấu hình gateway, chạy bằng PM2, setup Nginx + SSL và kết nối Telegram bot.Mục tiêu cuối cùng là bạn có một hệ thống hoạt động như sau:
Mã:
[Client trong LAN]
│
▼
Nginx (HTTPS)
│
▼
OpenClaw Gateway (PM2)
│
├── Telegram Bot
└── OpenAI API
1. Cập nhật hệ thống
Trước tiên, đảm bảo server của bạn đã được cập nhật:
Mã:
sudo apt update && sudo apt upgrade -y
2. Cài đặt Node.js 22
OpenClaw yêu cầu Node.js phiên bản mới, nên chúng ta sẽ dùng Node 22:
Mã:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# Kiểm tra
node -v
npm -v
3. Cài PM2 và OpenClaw
PM2 giúp bạn chạy service ổn định và tự restart khi server reboot.
Mã:
sudo npm install -g pm2
sudo npm install -g openclaw@latest
# Kiểm tra
pm2 -v
openclaw --version
4. Chạy onboarding lần đầu
Mã:
openclaw onboard
- Nhập API key (OpenAI hoặc provider khác)
- Chọn model
- Cấu hình Telegram bot
️ 5. Cấu hình gateway
Mở file cấu hình:
Mã:
nano ~/.openclaw/openclaw.json
"gateway":
Mã:
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"trustedProxies": ["127.0.0.1"],
"controlUi": {
"allowedOrigins": [
"http://<IP_LAN>",
"https://<IP_LAN>"
],
"allowInsecureAuth": true
},
"auth": {
"mode": "token",
"token": "your-secret-token"
}
}
<IP_LAN>là IP nội bộ của server (ví dụ:10.30.192.20)- Token dùng để xác thực khi kết nối UI
6. Chạy OpenClaw với PM2
Mã:
pm2 start "openclaw gateway" --name openclaw
# Lưu config
pm2 save
# Auto start khi reboot
pm2 startup
7. Setup Nginx + HTTPS
Tạo SSL self-signed:
Mã:
sudo mkdir -p /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/openclaw.key \
-out /etc/nginx/ssl/openclaw.crt \
-subj "/CN=<IP_LAN>" \
-addext "subjectAltName=IP:<IP_LAN>"
Cài Nginx:
Mã:
sudo apt install -y nginx
Tạo config:
Mã:
sudo nano /etc/nginx/sites-available/openclaw
Mã:
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/openclaw.crt;
ssl_certificate_key /etc/nginx/ssl/openclaw.key;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 86400;
}
}
server {
listen 80;
return 301 https://$host$request_uri;
}
Kích hoạt:
Mã:
sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl enable nginx
sudo systemctl restart nginx
8. Mở firewall
Mã:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw enable
9. Pair thiết bị (Web UI)
Truy cập:
Mã:
http://<IP_LAN>/overview
| Field | Value |
|---|---|
| WebSocket URL | ws://<IP_LAN> |
| Gateway Token | token trong config |
"pairing required":
Mã:
openclaw devices list
openclaw devices approve <requestId>
10. Pair Telegram bot
- Nhắn
hellovào bot - Nhận pairing code
Mã:
openclaw pairing approve telegram <CODE>
11. Fix lỗi Telegram không phản hồi
Nếu bot không hoạt động:
Mã:
curl -s "https://api.telegram.org/bot<BOT_TOKEN>/deleteWebhook"
pm2 restart openclaw
Kết quả cuối cùng
Bạn đã có một hệ thống hoàn chỉnh:
OpenClaw chạy nền bằng PM2
Nginx reverse proxy + HTTPS
Web UI truy cập trong LAN
Telegram bot hoạt động
Tips nâng cao
- Dùng domain + Let's Encrypt thay vì IP để tránh warning SSL
- Deploy lên VPS (AWS, GCP) để dùng public
- Kết hợp với n8n để automation workflow
- Giám sát bằng PM2 logs:
Mã:
pm2 logs openclaw
Tổng kết
Việc triển khai OpenClaw không quá khó, nhưng cần hiểu rõ từng layer:- Application (OpenClaw)
- Process Manager (PM2)
- Reverse Proxy (Nginx)
- Network & Security (Firewall + SSL)
- AI assistant nội bộ
- ChatOps cho DevOps
- Automation bot cho doanh nghiệp
Được quan tâm