Fast Byte - Thuê VPS Giá Rẻ
Hướng dẫn chung

Cách Cài Dokku Trên VPS Ubuntu Tự Host PaaS Thay Heroku A-Z

Cách cài Dokku trên VPS Ubuntu là chủ đề được nhiều lập trình viên và doanh nghiệp SME quan tâm khi mệt mỏi vì phải tự tay cấu hình Nginx, SSL, Dockerfile và cả quy trình CI/CD cho từng ứng dụng nhỏ. Dokku chính là giải pháp giúp bạn biến một chiếc VPS Ubuntu bình […]

Ảnh đại diện Thanh Lam NguyễnThanh Lam Nguyễn12 phút đọc

Cách cài Dokku trên VPS Ubuntu là chủ đề được nhiều lập trình viên và doanh nghiệp SME quan tâm khi mệt mỏi vì phải tự tay cấu hình Nginx, SSL, Dockerfile và cả quy trình CI/CD cho từng ứng dụng nhỏ. Dokku chính là giải pháp giúp bạn biến một chiếc VPS Ubuntu bình thường thành nền tảng PaaS cá nhân, deploy ứng dụng chỉ với một lệnh git push. Trong bài viết này, hãy cùng ThueVPSGiaRe.vn thực hiện toàn bộ quy trình từ A đến Z theo từng bước cụ thể, kèm lệnh mẫu bạn có thể chạy ngay.

1. Dokku là gì? Tại sao nên chọn Dokku cho dự án cá nhân và doanh nghiệp?

Dokku là một nền tảng PaaS (Platform-as-a-Service) mã nguồn mở siêu nhẹ, hoạt động dựa trên container Docker nhằm biến một máy chủ ảo đơn lẻ thành hệ thống triển khai ứng dụng tương tự Heroku. Hệ thống tự động xử lý toàn diện từ cấu hình reverse proxy Nginx, phân bổ cổng mạng, cấp chứng chỉ SSL đến tự động hóa quy trình CI/CD.

Dokku
Dokku

Khi phát triển phần mềm, việc tự quản trị cơ sở hạ tầng phức tạp thường làm phân tán nguồn lực của lập trình viên. Dokku mang lại sự cân bằng hoàn hảo giữa tính linh hoạt của máy chủ vật lý/VPS và sự tiện lợi của điện toán đám mây:

  • Tiết kiệm ngân sách vượt trội: Thay vì chi trả hàng chục đến hàng trăm USD cho mỗi dyno hoặc gói RAM giới hạn trên Heroku, bạn hoàn toàn có thể chạy đồng thời nhiều microservices hoặc website trên một gói VPS giá rẻ cấu hình vừa phải.
  • Trải nghiệm Git Push quen thuộc: Bạn không cần viết quy trình deploy thủ công. Chỉ cần gõ lệnh git push dokku main từ máy cá nhân, Dokku sẽ tự phát hiện ngôn ngữ, đóng gói image và chạy dịch vụ.
  • Hệ sinh thái Plugin đa dạng: Khởi tạo các dịch vụ bổ trợ như PostgreSQL, MySQL, Redis, MongoDB hay cấu hình SSL hoàn toàn tự động chỉ với một vài dòng lệnh.
  • Bảo vệ dữ liệu và tránh Vendor Lock-in: Mọi mã nguồn, cơ sở dữ liệu và cấu hình đều nằm trọn vẹn trong quyền kiểm soát của bạn trên hạ tầng máy chủ riêng, loại bỏ phụ thuộc vào các chính sách thay đổi đột ngột từ nhà cung cấp dịch vụ bên ngoài.

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Hạ tầng tối ưu để tự host PaaS Dokku

Khởi tạo VPS cài đặt hệ điều hành Ubuntu 22.04 hoặc 24.04 sạch sẽ, đường truyền trong nước tốc độ cao và ổ đĩa SSD NVMe giúp quá trình build container diễn ra mượt mà nhất.

Tham khảo VPS giá rẻ

2. Yêu cầu chuẩn bị trước khi cài đặt Dokku trên Ubuntu VPS

Trước khi bắt đầu, bạn cần chuẩn bị một môi trường máy chủ đáp ứng đúng các tiêu chí kỹ thuật nhằm tránh các lỗi phát sinh trong quá trình thiết lập tự động.

  • Hệ điều hành: VPS chạy bản phân phối Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS mới nguyên bản với địa chỉ IPv4 công khai. Hướng dẫn này, sử dụng Ubuntu 24.04 LTS.
  • Cấu hình phần cứng: Tối thiểu 1 GB RAM vật lý. Nếu sử dụng các máy chủ dung lượng nhỏ, bạn cần kích hoạt thêm 1 GB bộ nhớ tạm để quá trình build source không bị gián đoạn; bạn có thể tham khảo phương pháp thiết lập bộ nhớ ảo Swap cho hệ thống.
  • Quyền quản trị: Bạn cần tài khoản root và nắm vững phương thức kết nối máy chủ qua giao thức SSH an toàn.
  • Cấu hình tên miền (DNS): Một tên miền hoặc subdomain đã tạo bản ghi Wildcard A (ví dụ: *.apps.example.com) trỏ về địa chỉ IP của VPS. Hãy tham khảo hướng dẫn cấu hình trỏ bản ghi tên miền về máy chủ để thao tác chính xác.
  • Môi trường máy cá nhân (Local): Đã cài đặt sẵn công cụ Git và sở hữu một cặp khóa bảo mật SSH Key (public key & private key).

Lưu ý quan trọng: Dokku không phải là một Docker container đơn thuần. Nó là một gói ứng dụng được quản lý qua apt, tự động cài đặt Docker Engine như một dependency. Bạn hãy khởi đầu với một máy chủ hoàn toàn trắng: tuyệt đối không tự cài đặt trước Docker, Nginx hay bất cứ công cụ container nào để tránh xung đột quyền điều khiển cổng mạng.

3. Hướng dẫn từng bước cài đặt Dokku trên VPS Ubuntu từ A-Z

Thực hiện cài đặt Dokku một cách tuần tự theo các bước kỹ thuật chuẩn hóa để đảm bảo toàn bộ thành phần phụ thuộc được cấu hình chính xác.

cài đặt Dokku trên VPS Ubuntu
Cài đặt Dokku trên VPS Ubuntu

Bước 1: Kết nối VPS và chuẩn bị hệ điều hành

Trước hết, truy cập vào VPS thông qua SSH, cập nhật danh sách kho gói và đồng bộ tên máy chủ khớp với tên miền quản trị của bạn:

ssh root@SERVER_IP
apt update && apt upgrade -y
hostnamectl set-hostname dokku.example.com

Sau khi cập nhật, kiểm tra xem tên máy chủ đã nhận chính xác chưa và đảm bảo cổng 80, 443 chưa bị ứng dụng nào chiếm dụng bằng công cụ dòng lệnh ss trên Linux:

ss -ltnp

Nếu trong danh sách nâng cấp có phiên bản kernel mới, hãy khởi động lại VPS (lệnh reboot), sau đó đăng nhập lại để tiếp tục bước cài đặt.

Kiểm tra cổng 80, 443
Kiểm tra cổng 80, 443

Bước 2: Tải và thực thi script bootstrap chính thức của Dokku

Tải tệp cài đặt bootstrap chỉ định phiên bản ổn định (ở đây là v0.38.25) và thực thi script trực tiếp. Dokku sẽ tự động kéo Docker Engine tương thích về máy chủ:

wget -NP . https://dokku.com/install/v0.38.25/bootstrap.sh
sudo DOKKU_TAG=v0.38.25 bash bootstrap.sh

Thao tác trên giao diện màn hình xanh (debconf): Trong quá trình script hoạt động, màn hình cấu hình màu xanh sẽ xuất hiện để yêu cầu bạn điền các thông tin khởi tạo:

  • Global domain: Nhập tên miền gốc của bạn, ví dụ apps.example.com.
  • SSH key: Tạm thời để trống mục này. Khóa SSH sẽ được gán thủ công và chuẩn hóa ở bước kế tiếp.

Sử dụng phím Tab để di chuyển giữa các trường lựa chọn và bấm Enter để xác nhận. Nếu bạn vô tình bỏ qua bảng thông báo này, có thể mở lại bất cứ lúc nào bằng lệnh sudo dpkg-reconfigure dokku.

Khi tiến trình cài đặt hoàn tất, kiểm tra trạng thái hoạt động của Dokku, phiên bản Docker và dịch vụ hệ thống:

dokku version
docker version
sudo systemctl status dokku

Dokku được tích hợp sẵn một instance Nginx riêng biệt để quản trị lưu lượng, vì vậy hai cổng kết nối web 80 và 443 từ thời điểm này sẽ do Dokku toàn quyền kiểm soát.

4. Đăng ký SSH Key và thiết lập Domain hệ thống

Đăng ký SSH Key là mắt xích quan trọng nhất trong quá trình thiết lập. Nếu máy chủ không được đăng ký public key đúng cách, hệ thống Dokku sẽ từ chối mọi thao tác git push từ máy trạm của bạn.

Bạn có thể trích xuất trực tiếp public key đang dùng từ tệp authorized_keys của tài khoản root để cấp quyền triển khai cho người dùng quản trị (ví dụ đặt tên là admin):

cat ~/.ssh/authorized_keys | sudo dokku ssh-keys:add admin

Tiếp theo, chỉ định phạm vi tên miền toàn cục (global domain). Cấu hình này giúp bất kỳ ứng dụng nào khi được tạo mới cũng sẽ tự động gán hostname tương ứng dưới dạng subdomain:

sudo dokku domains:set-global apps.example.com

Kiểm tra lại danh sách khóa SSH đã ghi nhận cũng như thông tin tên miền toàn cục vừa cấu hình:

dokku ssh-keys:list
dokku domains:report --global

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Chạy Dokku mượt mà cần một hạ tầng đủ tài nguyên

Dokku tự vận hành Nginx, Docker và có thể chạy nhiều ứng dụng cùng lúc trên một máy chủ, vì vậy RAM và ổ đĩa tốc độ cao là yếu tố quyết định đến tốc độ build và deploy. Một chiếc VPS Ubuntu 22.04/24.04 với SSD NVMe, quyền root toàn quyền sẽ giúp bạn thực hiện toàn bộ quy trình trong bài này dễ dàng hơn hẳn.

Tham khảo VPS giá rẻ

5. Triển khai ứng dụng đầu tiên bằng Git Push và bật SSL Let’s Encrypt

Sau khi hạ tầng Dokku đã sẵn sàng, bạn có thể triển khai dự án đầu tiên lên máy chủ một cách tức thì theo quy trình chuẩn của PaaS.

Khởi tạo ứng dụng và thực hiện đẩy code

Đầu tiên, tạo định danh ứng dụng mới (ví dụ tên là hello) trực tiếp trên máy chủ VPS:

dokku apps:create hello

Sau đó, chuyển sang máy tính cá nhân (local workstation) của bạn tại thư mục mã nguồn dự án, thêm remote repository chỉ định về Dokku server và thực hiện đẩy mã nguồn lên nhánh chính:

git remote add dokku [email protected]:hello
git push dokku main

Dokku sẽ tự động phân tích cấu trúc dự án (thông qua Dockerfile hoặc buildpack của dự án), tiến hành build image, khởi chạy container cô lập và tự động sinh bản ghi định tuyến trên Nginx. Khi tiến trình hoàn thành, ứng dụng đã có thể truy cập ngay tại đường dẫn http://hello.apps.example.com.

Bạn có thể theo dõi tiến trình chạy và nhật ký ứng dụng trên VPS bằng các câu lệnh:

dokku ps:report hello
dokku logs hello -t

Bảo mật ứng dụng với chứng chỉ SSL Let’s Encrypt tự động

Mặc định, ứng dụng mới triển khai chưa được tích hợp HTTPS. Để tăng tính an toàn, bạn nên kích hoạt chứng chỉ bảo mật SSL miễn phí bằng plugin Let’s Encrypt chính thức dành cho Dokku:

sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git

Khai báo địa chỉ email quản trị toàn cục để nhận thông báo gia hạn từ tổ chức phát hành:

dokku config:set --global [email protected]

Kích hoạt chứng chỉ mã hóa cho ứng dụng hello:

dokku letsencrypt:enable hello

Sau bước này, website sẽ phục vụ qua giao thức mã hóa https://hello.apps.example.com. Để đảm bảo chứng chỉ luôn được làm mới tự động trước khi hết hạn, kích hoạt lịch trình cronjob tự động kiểm tra:

dokku letsencrypt:cron-job --add

6. Bảo trì hệ thống và các lưu ý vận hành PaaS an toàn

Việc làm chủ một PaaS riêng đồng nghĩa với việc bạn cần chủ động theo dõi tài nguyên và bảo trì định kỳ nhằm hạn chế downtime bất ngờ.

Quy trình cập nhật và dọn dẹp dung lượng lưu trữ

Khi nâng cấp Dokku và các plugin liên quan, bạn cần thực hiện qua trình quản lý gói apt của hệ thống. Tuyệt đối không chỉ nâng cấp riêng lẻ gói dokku mà phải cập nhật toàn diện cả Docker:

sudo apt update && sudo apt upgrade -y

Quá trình build ứng dụng nhiều lần sẽ sinh ra các image cũ và các layer trung gian không còn sử dụng. Để kiểm soát ổ cứng hiệu quả, bạn nên tham khảo giải pháp dọn dẹp Docker tránh tràn dung lượng đĩa và định kỳ chạy lệnh giải phóng bộ nhớ đệm:

docker system prune -af

Trong trường hợp máy chủ được khởi động lại sau bản vá lỗi hạt nhân (kernel), hãy đảm bảo proxy và toàn bộ ứng dụng được tải lên đồng bộ:

dokku proxy:report
dokku ps:rebuildall

Khi một bản deploy mới gặp sự cố lỗi thực thi, hãy kiểm tra logs chi tiết thay vì xóa bỏ volume lưu trữ. Bạn hoàn toàn có thể khôi phục phiên bản trước bằng lệnh dokku ps:rebuild với bản phát hành ổn định liền kề.

Các nguyên tắc quản trị cần ghi nhớ

  • Giám sát tài nguyên máy chủ: Nhiều ứng dụng cùng chia sẻ phần cứng máy chủ có thể dẫn đến hiện tượng tràn bộ nhớ. Bạn nên cài đặt hệ thống giám sát bằng Prometheus, Grafana hoặc chủ động theo dõi tài nguyên thời gian thực với htop để can thiệp kịp thời trước khi hệ thống kích hoạt OOM Killer.
  • Chiến lược sao lưu cơ sở dữ liệu: Dokku không tự động backup dữ liệu plugin. Bạn bắt buộc phải chủ động xây dựng kế hoạch sao lưu dữ liệu máy chủ định kỳ (ví dụ sử dụng lệnh dokku postgres:export kết hợp cronjob) và chuyển tệp nén lên các giải pháp lưu trữ đám mây độc lập như AWS S3.
  • Quản lý và tra cứu nhật ký (Logs): Khi ứng dụng gặp trục trặc, sử dụng lệnh dokku logs <tên-app> -t để giám sát dữ liệu log trực tiếp phục vụ việc gỡ lỗi nhanh chóng.

Làm chủ hạ tầng PaaS với Dokku trên Ubuntu VPS

Nắm vững cách cài dokku trên VPS Ubuntu là một bước chuyển biến chiến lược giúp đội ngũ phát triển tinh gọn quy trình CI/CD, tiết kiệm hàng triệu đồng chi phí hạ tầng mỗi tháng và kiểm soát hoàn toàn tài nguyên hệ thống. Hãy luôn chú trọng vào việc thiết lập bản ghi DNS chính xác, chuẩn bị đủ bộ nhớ RAM kèm Swap và định kỳ sao lưu dữ liệu để hệ thống PaaS cá nhân luôn hoạt động ổn định nhất.

Cần một VPS giá rẻ để bắt đầu?

Chọn cấu hình vừa đủ nhu cầu, ưu tiên chi phí dễ tiếp cận và khả năng quản trị riêng.

Xem bảng giá VPS

Lưu ý kỹ thuật: Nội dung bài viết mang tính chất hướng dẫn kỹ thuật tham khảo. Cú pháp câu lệnh, cấu hình phần mềm và đường dẫn cài đặt có thể thay đổi tùy thuộc vào phiên bản Dokku cũng như cập nhật của hệ điều hành Ubuntu. Quản trị viên nên thử nghiệm trên môi trường staging, tiến hành sao lưu dữ liệu đầy đủ trước khi triển khai chính thức cho các dự án quan trọng.

Chia sẻ: Facebook LinkedIn
Quay lại trang blog

Bài viết liên quan