Cài Uptime Kuma trên VPS bằng Docker và HTTPS: giám sát website tự host
Hướng dẫn cài Uptime Kuma trên VPS bằng Docker, chạy sau nginx với HTTPS, cảnh báo, trang trạng thái và sao lưu, hoặc cài một chạm bằng ZoPanel.

Ý chính
- Uptime Kuma là công cụ giám sát miễn phí, giấy phép MIT, chạy từ một image Docker với một volume dữ liệu.
- Hãy chạy nó trên server khác với các website cần giám sát, nếu không nó sập cùng lúc và không báo được.
- Chỉ mở cổng 3001 trên 127.0.0.1 và đặt nginx có HTTPS cùng header WebSocket phía trước.
- Toàn bộ monitor, cảnh báo và lịch sử nằm trong /app/data, nên hãy sao lưu thư mục này ra ngoài server.
Để cài Uptime Kuma, bạn chạy image Docker chính thức louislam/uptime-kuma:2 với một volume cho /app/data, chỉ mở cổng 3001 trên 127.0.0.1, rồi đặt nginx có HTTPS (kèm header WebSocket) phía trước cho một tên miền con như status.example.com. Một VPS nhỏ 1 GB RAM là đủ cho số lượng monitor thông thường, và VPS đó nên khác với server bạn cần giám sát. Nếu VPS đã có ZoPanel, Uptime Kuma cài một chạm từ Kho ứng dụng, SSL tự động, kèm khoá thiết lập để tài khoản admin chắc chắn là của bạn.
Bài này gồm: Uptime Kuma là gì, cài thủ công bằng Docker, cài bằng ZoPanel, sao lưu và cập nhật, và chi phí so với dịch vụ giám sát có sẵn. Nếu bạn làm công ty hosting và muốn có trang trạng thái cho khách, đọc tiếp bài giám sát uptime và trang trạng thái cho nhà cung cấp hosting.
Uptime Kuma là gì?
Uptime Kuma là công cụ giám sát mã nguồn mở, tự host, phát hành theo giấy phép MIT. Theo README của dự án, nó kiểm tra HTTP(s), TCP, HTTP(s) theo từ khoá và JSON query, WebSocket, ping, bản ghi DNS, push monitor, game server và container Docker, với chu kỳ ngắn nhất 20 giây. Nó gửi cảnh báo qua Telegram, Discord, Slack, email (SMTP) và hơn 90 dịch vụ thông báo khác, hỗ trợ xác thực hai lớp và cho tạo nhiều trang trạng thái, mỗi trang có thể gắn tên miền riêng.
Tại thời điểm viết (tháng 10/2026), bản mới nhất là 2.5.6, phát hành ngày 9/10/2026. Bản 2.0 ổn định từ tháng 10/2025 và có thay đổi không tương thích; bản 1.x cuối cùng, 1.23.17, ra cùng ngày đó. Trên server mới, bạn nên cài bản 2.
Một điểm cần biết trước: Uptime Kuma chỉ có một tài khoản admin. Nó dành cho một người vận hành hoặc một nhóm nhỏ dùng chung tài khoản, không phải cho nhiều người dùng với quyền khác nhau.
Nên chạy Uptime Kuma ở đâu?
Monitor nằm cùng server với website nó giám sát sẽ sập cùng website. Khi VPS hết RAM hoặc nhà cung cấp gặp sự cố, không còn gì để gửi cảnh báo. Hãy đặt Uptime Kuma trên một VPS nhỏ riêng, tốt nhất ở nhà cung cấp khác hoặc trung tâm dữ liệu khác, để nó nhìn server chính từ bên ngoài. Ví dụ website chạy ở một nhà cung cấp VPS trong nước thì đặt Uptime Kuma ở một nhà cung cấp khác.
Cài Uptime Kuma cần bao nhiêu RAM?
Tài liệu của Uptime Kuma không ghi mức tối thiểu. Để tham khảo, ZoPanel chạy nó với giới hạn 512 MB RAM và 1 CPU. VPS 1 GB còn chỗ cho hệ điều hành và nginx. RAM và database SQLite tăng theo số monitor, chu kỳ kiểm tra và thời gian lưu lịch sử, nên hãy rút ngắn Settings → Monitor History nếu database phình to. README cảnh báo không hỗ trợ hệ thống file mạng như NFS, nên hãy để dữ liệu trên ổ đĩa cục bộ.
Uptime Kuma so với dịch vụ giám sát có sẵn: chi phí
Uptime Kuma không có bản cloud chính thức, nên phép so sánh thường gặp là với dịch vụ như UptimeRobot. Giá dưới đây lấy từ trang giá của UptimeRobot tại thời điểm viết (tháng 10/2026), thanh toán theo năm.
| Uptime Kuma (tự host) | UptimeRobot Free | UptimeRobot Solo | UptimeRobot Team | |
|---|---|---|---|---|
| Giá | Phần mềm miễn phí, bạn trả tiền một VPS nhỏ | 0 $ | 9 $/tháng | 35 $/tháng |
| Số monitor | Tuỳ tài nguyên server | 50 | 10 hoặc 50 | 100 |
| Chu kỳ ngắn nhất | 20 giây | 5 phút | 60 giây | 30 giây |
| Ai vận hành | Bạn: cập nhật, sao lưu, giữ monitor luôn chạy | Nhà cung cấp | Nhà cung cấp | Nhà cung cấp |
Dịch vụ có sẵn thắng ở chỗ không phải bảo trì và kiểm tra từ nhiều nơi. Uptime Kuma thắng ở chu kỳ ngắn, không giới hạn monitor và dữ liệu nằm trên server của bạn. Hãy kiểm tra giá hiện hành của UptimeRobot trước khi quyết định.
Cách 1: Cài Uptime Kuma bằng ZoPanel (một chạm)
Nếu VPS giám sát chạy ZoPanel, Uptime Kuma có trong Kho ứng dụng (hướng dẫn đầy đủ):
- Mở Kho ứng dụng. Nếu thấy Cần cài Docker, bấm Cài Docker trước.
- Trên thẻ Uptime Kuma, bấm Cài đặt.
- Nhập Tên miền (ví dụ
status.example.com, không cóhttp://). Quản trị viên chọn thêm Chủ sở hữu, tức tài khoản hosting có giới hạn gói được áp dụng. Giữ bật SSL miễn phí (Let's Encrypt). - Bấm Cài đặt và theo dõi nhật ký tác vụ đến dòng
Uptime Kuma is available at http://<domain>. Nếu thấySSL could not be issued yet, trỏ tên miền về server rồi bấm Cấp chứng chỉ ở tab SSL của website.
Khoá thiết lập. Người đầu tiên mở Uptime Kuma mới cài sẽ tạo tài khoản admin duy nhất, nên ZoPanel cho người khác thấy trang "đang được thiết lập" cho đến khi bạn xong:
- Ở tab Docker của website, chờ trạng thái
running. - Trong thẻ Đang khoá thiết lập, bấm Mở ứng dụng (chỉ mình tôi).
- Ở màn hình Create your admin account, chọn ngôn ngữ, nhập tên đăng nhập và mật khẩu, bấm Create.
- Quay lại tab Docker, bấm Đã thiết lập xong — mở công khai. Trang trạng thái thành công khai; bảng điều khiển vẫn cần đăng nhập.
ZoPanel cấu hình gì cho bạn (theo tài liệu Kho ứng dụng): giới hạn 512 MB RAM và 1 CPU, cổng chỉ mở trên 127.0.0.1 sau nginx có SSL và hỗ trợ WebSocket, user namespace, dữ liệu trong /var/lib/zopanel-apps/<instance>/data/ chỉ root và container đọc được. Khách của công ty hosting tự cài được khi gói cho phép ứng dụng Docker.
Giới hạn cần biết. Container nằm sau tường lửa container của ZoPanel, nên những gì nó kiểm tra được như sau:
| Mục tiêu | Uptime Kuma trên ZoPanel kiểm tra được? |
|---|---|
| Website và API trên Internet (HTTP(s), từ khoá, DNS, TCP) | Có |
| Website trên cùng server qua tên miền công khai | Có |
| Cổng mail của server này (25, 465, 587) | Có |
| SSH, MariaDB, PostgreSQL, Redis hay panel của server này | Không, luôn hiện là down |
| Mạng nội bộ và loopback | Không |
| Monitor kiểu Docker Container | Không, không có quyền vào Docker socket |
Một điểm nữa cần nói thẳng: catalog của ZoPanel dùng tag image 1, nên nó cài và cập nhật trong dòng 1.x của Uptime Kuma, không phải dòng 2.x hiện hành. Nếu bạn cần tính năng của bản 2 ngay bây giờ, hãy cài thủ công như dưới đây.
Cách 2: Cài Uptime Kuma thủ công bằng Docker
Cách này dành cho VPS chưa có control panel, chạy Ubuntu 24.04 hoặc Debian 12. Cài Docker Engine từ kho chính thức của Docker, các lệnh chi tiết có trong bài cài n8n trên VPS.
Bước 1: File Compose
sudo mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
sudo nano compose.yaml
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
README chính thức mở 3001:3001 trên mọi địa chỉ và có ghi chú cách giới hạn về localhost bằng 127.0.0.1:3001:3001. Hãy làm vậy: luật cổng của Docker đi vòng qua UFW, nên ghi 3001:3001 là để lộ bảng điều khiển qua HTTP không mã hoá. Ghim một phiên bản cụ thể (ví dụ 2.5.6) thay vì 2 nếu bạn muốn tự chọn lúc cập nhật.
sudo docker compose up -d
sudo docker compose logs -f
Bước 2: nginx và HTTPS
sudo apt install nginx certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/uptime-kuma.conf
server {
listen 80;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Hai header Upgrade và Connection là bắt buộc: giao diện nói chuyện với server qua WebSocket, thiếu chúng sẽ liên tục báo mất kết nối.
sudo ln -s /etc/nginx/sites-available/uptime-kuma.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d status.example.com
Bản ghi A phải trỏ về VPS trước, xem bài trỏ tên miền về VPS. Sau đó mở https://status.example.com và tạo tài khoản admin ngay, vì người vào đầu tiên sẽ nhận tài khoản này.
Bước 3: Thiết lập đầu tiên
- Settings → Security: bật xác thực hai lớp.
- Settings → Reverse Proxy → Trust Proxy: chọn Yes để log hiện đúng IP người truy cập.
- Settings → Notifications: thêm Telegram hoặc email (SMTP cổng 587 hoặc 465), tích Default enabled, bấm Test.
- Với mỗi monitor HTTP(s), đặt Retries là 1 hoặc 2 để không bị báo động vì một lần phản hồi chậm, và bật cảnh báo chứng chỉ sắp hết hạn.
Sao lưu Uptime Kuma
Mọi thứ nằm trong /app/data: file SQLite kuma.db chứa monitor, cấu hình thông báo, trang trạng thái, lịch sử và tài khoản, cùng ảnh đã tải lên.
Cài thủ công: dừng container một lát để database nhất quán, nén thư mục rồi chép ra ngoài server.
cd /opt/uptime-kuma
sudo docker compose stop
sudo tar czf /root/uptime-kuma-$(date +%F).tar.gz -C /opt/uptime-kuma data
sudo docker compose start
ZoPanel: dữ liệu ứng dụng không nằm trong bản sao lưu tài khoản. Dùng thẻ Sao lưu ở tab Docker của website: Sao lưu ngay, và với quản trị viên có thêm Lịch hằng ngày hoặc hằng tuần cùng số bản Giữ lại (mặc định 7). Container tạm dừng vài giây khi sao chép. File nằm ở /var/backups/zopanel-apps/<instance>/; hãy chép các bản quan trọng ra ngoài server và mã hoá, vì chúng chứa thông tin đăng nhập của kênh thông báo. Xem thêm bài chiến lược sao lưu website.
Cập nhật Uptime Kuma
- Sao lưu trước.
- Đọc ghi chú phát hành. Lên từ 1.x sang 2.x có hướng dẫn chuyển đổi riêng, và lần chạy đầu của bản 2 sẽ chuyển đổi database, có thể mất khá lâu nếu dữ liệu lớn.
- Đổi tag nếu bạn đã ghim, rồi chạy
sudo docker compose pull && sudo docker compose up -d.
Trên ZoPanel, nút Cập nhật bản mới ở tab Docker kéo image của catalog và giữ nguyên monitor cùng lịch sử. Bản cập nhật vẫn nằm trong dòng 1.x.
Kết luận
Cài Uptime Kuma chỉ cần một container, một volume và một reverse proxy HTTPS. Những điều quyết định là chạy nó ở đâu (không phải trên server nó giám sát), cổng 3001 không bao giờ mở ra ngoài, và /app/data được sao lưu ở nơi khác. Nếu không muốn tự cấu hình nginx, SSL và cách ly container, ZoPanel cài nó một chạm và Kho ứng dụng có sẵn trong gói Free, miễn phí cho tối đa 3 tài khoản hosting. Xem tính năng ứng dụng và bảng giá, hoặc cài trên VPS mới bằng:
curl -fsSL https://get.zopanel.net | sudo bash
Câu hỏi thường gặp
Uptime Kuma có miễn phí không?
Có. Uptime Kuma phát hành theo giấy phép MIT và không có bản trả phí. Bạn chỉ trả tiền server, và tự lo cập nhật cùng sao lưu.
Uptime Kuma có giám sát được chính server nó đang chạy không?
Được, nhưng không nên là monitor duy nhất cho server đó. Khi server sập, Uptime Kuma sập theo và không gửi được cảnh báo. Hãy chạy nó trên một VPS riêng, tốt nhất ở nhà cung cấp khác.
Uptime Kuma có hỗ trợ nhiều người dùng không?
Không. Nó chỉ có một tài khoản admin. Các nhóm thường dùng chung tài khoản này, hoặc chia sẻ thông tin qua trang trạng thái công khai.
Quên mật khẩu Uptime Kuma thì làm sao?
Mở shell trong container (docker exec -it <container> bash), chạy npm run reset-password và làm theo hướng dẫn. Trên ZoPanel, container có tên zp-app-<instance>.
Uptime Kuma có tốt hơn UptimeRobot không?
Hai công cụ giải cùng một bài toán theo cách khác nhau. UptimeRobot không cần bảo trì và kiểm tra từ mạng của nhà cung cấp; Uptime Kuma cho chu kỳ 20 giây và không giới hạn monitor với giá một VPS nhỏ, nhưng bạn phải tự vận hành. Nhiều nhóm dùng cả hai: một dịch vụ có sẵn để giám sát server Uptime Kuma, và Uptime Kuma cho mọi thứ còn lại.
Đọc tiếp

Cài Gitea trên VPS: Git server tự host với Docker, HTTPS và sao lưu
Hướng dẫn cài Gitea trên VPS bằng Docker, chạy sau nginx với HTTPS, clone qua SSH hoặc HTTPS, sao lưu bằng gitea dump, hoặc cài một chạm bằng ZoPanel.

Cài Metabase trên VPS: Docker, PostgreSQL và user chỉ đọc
Hướng dẫn cài Metabase trên VPS bằng Docker với PostgreSQL làm database ứng dụng, HTTPS, user database chỉ đọc, cấu hình RAM và sao lưu, hoặc cài bằng ZoPanel.

Chạy ứng dụng Docker trên VPS an toàn: 9 việc cần làm đúng
Cách chạy ứng dụng Docker trên VPS an toàn - cổng chỉ mở nội bộ, user namespace, giới hạn RAM, cách ly mạng, SSL - kèm cấu hình mẫu và cách làm với ZoPanel.