---
title: "Hướng Dẫn Triển Khai OpenClaw Trên Ubuntu 24 Với Nginx + HTTPS"
description: "## Tóm tắt Hướng dẫn triển khai OpenClaw trên Ubuntu 24 theo chuẩn production: gateway chạy nội bộ (127.0.0.1), Nginx reverse proxy và HTTPS với Let’s Encrypt. Đồng thời xử lý các lỗi phổ biến như `origin not allowed`, `gateway token missing` và `pairing required` để hệ thống hoạt động ổn định, bảo mật."
url: https://cloudfly.vn/huong-dan-trien-khai-openclaw-tren-ubuntu-24-voi-nginx-https
image: https://media.cloudfly.vn/posts/Hướng_Dẫn_Triển_Khai_OpenClaw_Trên_Ubuntu_24_Với_Nginx__HTTPS_xydPPOu.jpg
---

# Hướng Dẫn Triển Khai OpenClaw Trên Ubuntu 24 Với Nginx + HTTPS

# 1. Chuẩn Bị Server & Domain

## 1.1 Yêu cầu hệ thống

- Ubuntu 24.x LTS (64-bit)
- Có quyền root
- Một domain/subdomain đã trỏ A-record về IP server

Ví dụ:

### n3tworks.io.vn → 103.166.185.xxx

## 1.2 Cập nhật hệ thống & cài Nginx

apt update && sudo apt upgrade -y

apt install -y curl git nginx\
![](https://media.cloudfly.vn/posts/mceclip0_fKnnTZl.png)

Nếu dùng firewall UFW:

ufw allow OpenSSH

ufw allow "Nginx Full"

ufw enable

🎯 Mục tiêu:

- Chỉ mở 22 (SSH), 80, 443
- Không mở port 18789

# 2. Cài Đặt OpenClaw

## 2.1 Cài bằng installer script (khuyến nghị)

curl -fsSL https://openclaw.ai/install.sh | bash\
![](https://media.cloudfly.vn/posts/mceclip2_yh8l9Ko.png)

Script sẽ:

- Cài OpenClaw CLI ( đến đây cần chờ khoảng 10p thi thoảng enter cái cho nó chạy cho nhanh :D )
- Setup gateway dưới dạng systemd service
- Cấu hình mặc định để chạy ngay\
  ![](https://media.cloudfly.vn/posts/mceclip3_wN0CFyg.png)\
  **OpenClaw onboarding – xác nhận cảnh báo bảo mật**.\
  **Chọn `Yes` rồi nhấn Enter** để tiếp tục.\
  ![](https://media.cloudfly.vn/posts/mceclip4_PUvFKWw.png)\
  **QuickStart (khuyên dùng)** – cấu hình nhanh, có thể chỉnh lại sau\
  Bạn nên chọn `QuickStart` rồi nhấn Enter.\
  \
  ![](https://media.cloudfly.vn/posts/mceclip5_1ewdhLW.png)

  Ở bước này nó đang hỏi bạn chọn **Model / auth provider** (nhà cung cấp model + cách xác thực).

  Vì bạn đang deploy gateway trước (chưa cần cấu hình model ngay), cách an toàn và nhanh nhất là:

  👉 **Chọn: `Skip for now` rồi nhấn Enter.\
  ![](https://media.cloudfly.vn/posts/mceclip6_XveSdEU.png)\**

  Ở bước này nó đang hỏi:

  **Filter models by provider**\
  (vì bạn đã chọn *Skip for now* ở bước trước)

  ---

  👉 Bạn tiếp tục chọn: **`All providers`** rồi nhấn **Enter**.

  Không cần chọn provider cụ thể ở đây.\
  ![](https://media.cloudfly.vn/posts/mceclip7_oeDtdSR.png)\
  Chọn **Keep current** rồi nhấn Enter.

  **![](https://media.cloudfly.vn/posts/mceclip8_Pm0ZTRy.png)\**

\
![](https://media.cloudfly.vn/posts/mceclip9_Ek9tfEb.png)

👉 **Chọn: `Skip for now (Continue without installing dependencies)`**

Cách làm:

- Dùng phím ↑ ↓ di chuyển đến dòng **Skip for now**
- Nhấn **Space** để chọn (hiện dấu ✔)
- Nhấn **Enter** để submit\
  \
  Với mục tiêu deploy qua Nginx + domain\
  👉 **Chọn: `Do this later` rồi nhấn Enter.**\
  ![](https://media.cloudfly.vn/posts/mceclip10_exsHBrJ.png)

## 2.2 Kiểm tra sau khi cài

openclaw doctor\
![](https://media.cloudfly.vn/posts/mceclip11_IUbYjKa.png)

openclaw status\
![](https://media.cloudfly.vn/posts/mceclip12_SKwp2Ic.png)

openclaw gateway status\
![](https://media.cloudfly.vn/posts/mceclip13_5FQV0VB.png)

Bạn cần thấy:

Gateway: running

Listening: 127.0.0.1:18789

## QUAN TRỌNG: Không đổi gateway.bind

Sai lầm phổ biến:

openclaw config set gateway.bind 0.0.0.0

Điều này sẽ gây lỗi config.

Nếu cần reset đúng cấu hình:

openclaw config set gateway.mode local

systemctl --user restart openclaw-gateway.service

Kiểm tra lại:

openclaw gateway status

sudo ss -lntp | grep 18789

Gateway phải chỉ listen trên:

127.0.0.1:18789

# 3. Cấu Hình Nginx Reverse Proxy

Giả sử domain:

### n3tworks.io.vn

## 3.1 Tạo file cấu hình

sudo nano /etc/nginx/sites-available/openclaw.conf

Nội dung:

server {

   listen 80;

   server\_name assistant.example.com;

   location / {

       proxy\_pass http://127.0.0.1:18789;

       proxy\_set\_header Host $host;

       proxy\_set\_header X-Real-IP $remote\_addr;

       proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for;

       proxy\_set\_header X-Forwarded-Proto $scheme;

       proxy\_http\_version 1.1;

       proxy\_set\_header Upgrade $http\_upgrade;

       proxy\_set\_header Connection "upgrade";

       proxy\_read\_timeout 3600s;

       proxy\_send\_timeout 3600s;

   }

}

## 3.2 Kích hoạt site

sudo ln -s /etc/nginx/sites-available/openclaw.conf /etc/nginx/sites-enabled/openclaw.conf

sudo nginx -t

sudo systemctl reload nginx

Test HTTP:

curl -I http://assistant.example.com

Phải nhận được 200 OK hoặc 302.

# 4. Cấp HTTPS Với Let’s Encrypt

## 4.1 Cài Certbot

sudo apt install -y certbot python3-certbot-nginx

## 4.2 Cấp chứng chỉ

sudo certbot --nginx -d assistant.example.com

Chọn:

Redirect HTTP to HTTPS

Kiểm tra lại:

sudo nginx -t

sudo systemctl reload nginx

Truy cập:

https://assistant.example.com

# 5. Fix Lỗi “origin not allowed”

## Nguyên nhân

Control UI chạy qua HTTPS/domain khác origin với gateway, nhưng chưa được whitelist.

## Cách sửa

openclaw config set gateway.controlUi.allowedOrigins '["https://assistant.example.com"]'

Kiểm tra:

openclaw config get gateway.controlUi

Restart gateway:

openclaw gateway restart

Nếu gặp lỗi:

Config path not found: gateway.controlUi

Không sao — config set sẽ tự tạo key.

# 6. Fix Lỗi “gateway token missing”

## Nguyên nhân

Gateway bật auth mode nhưng Control UI chưa gửi token.

## 6.1 Kiểm tra token hiện tại

openclaw config get gateway.auth.token

Nếu có token → dùng luôn.

## 6.2 Tạo token mới (nếu chưa có)

Cách 1:

openclaw doctor --generate-gateway-token

Cách 2:

TOKEN=$(openssl rand -hex 32)

openclaw config set gateway.auth.token "$TOKEN"

Sau đó:

openclaw config get gateway.auth.token

Copy token.

# 7. Dán Token Vào Control UI

1. Mở:\
   https://assistant.example.com
2. Vào Settings (icon bánh răng)
3. Dán token vào mục Gateway Token
4. Save

UI sẽ reconnect WebSocket.

# 8. Fix Lỗi “pairing required” / disconnected (1008)

## Nguyên nhân

Gateway bật device pairing.\
Mỗi browser cần approve 1 lần.

## 8.1 Xem pairing request

Giữ dashboard đang mở.

Trên server:

openclaw pairing list --channel web

Hoặc:

openclaw devices list

Bạn sẽ thấy:

req\_abc123: Control UI from https://assistant.example.com

## 8.2 Approve

openclaw pairing approve req\_abc123 --channel web

Sau đó browser sẽ tự reconnect.

Mỗi browser chỉ cần approve 1 lần.

## Nếu không thấy request

openclaw logs --follow | grep -i pair

# 9. Checklist Từ Trắng Đến Chạy OK

### 1️⃣ Cài hệ thống

sudo apt update && sudo apt upgrade -y

sudo apt install -y curl git nginx

### 2️⃣ Cài OpenClaw

curl -fsSL https://openclaw.ai/install.sh | bash

openclaw gateway status

Check: 127.0.0.1:18789

### 3️⃣ Cấu hình Nginx

- Tạo openclaw.conf
- Reload nginx

### 4️⃣ Cấp HTTPS

sudo certbot --nginx -d assistant.example.com

### 5️⃣ Set allowedOrigins

openclaw config set gateway.controlUi.allowedOrigins '["https://assistant.example.com"]'

openclaw gateway restart

### 6️⃣ Set token

openclaw doctor --generate-gateway-token

Dán vào UI.

### 7️⃣ Approve pairing (nếu cần)

openclaw pairing list --channel web

openclaw pairing approve <requestId> --channel web

# 10. Các Cạm Bẫy Phổ Biến & Cách Tránh

| Lỗi | Nguyên nhân | Cách tránh |
| --- | --- | --- |
| gateway.bind 0.0.0.0 | Expose gateway trực tiếp | Luôn dùng Nginx reverse proxy |
| origin not allowed | Chưa set allowedOrigins | Set đúng domain HTTPS |
| gateway token missing | Chưa dán token | Generate token và paste vào Settings |
| pairing required | Chưa approve device | Approve bằng CLI 1 lần |

# Kết Luận

Triển khai chuẩn production cho OpenClaw cần:

- Gateway chạy local (127.0.0.1)
- Nginx làm reverse proxy
- HTTPS bằng Let’s Encrypt
- Whitelist origin
- Cấu hình token
- Approve pairing
