Hướng dẫn triển khai NocoBase trên Cloud Server từ A-Z

25 Th09 2026
Xem Markdown

description image

NocoBase là gì?

NocoBase là nền tảng no-code/low-code mã nguồn mở, cho phép xây dựng các ứng dụng quản lý và hệ thống nội bộ mà không cần phát triển toàn bộ từ đầu.

Một ưu điểm của NocoBase là khả năng self-host. Doanh nghiệp có thể triển khai NocoBase trên máy chủ riêng thay vì phụ thuộc hoàn toàn vào một nền tảng SaaS.

Trong bài viết này, CloudFly sẽ hướng dẫn cách triển khai NocoBase trên Cloud Server bằng Docker, từ bước chuẩn bị máy chủ đến cấu hình domain, HTTPS và một số lưu ý khi vận hành thực tế.

Hướng dẫn triển khai NocoBase trên Cloud Server

Phần 1: Chuẩn bị Cloud Server

Bước 1: Chuẩn bị Cloud Server

Cloud Server cần:

  • Hệ điều hành Linux 64-bit (khuyến nghị Ubuntu LTS hoặc Debian)
  • Quyền root hoặc sudo
  • Public IPv4
  • Có thể mở port 13000 trong giai đoạn kiểm tra

Cấu hình phần cứng theo khuyến nghị của NocoBase (chỉ tính riêng ứng dụng NocoBase):

Mức CPU RAM Phù hợp
Tối thiểu 1 core 2 GB Dùng thử, POC, môi trường test
Khuyến nghị 2 core ≥ 4 GB Production quy mô nhỏ và vừa

Trong bài này, PostgreSQL chạy chung trên cùng Cloud Server với NocoBase, vì vậy nên chọn cấu hình cao hơn mức khuyến nghị (ví dụ 2 core / 4–8 GB RAM) để hệ thống vận hành ổn định.

Bước 2: SSH vào Cloud Server

ssh root@YOUR_SERVER_IP

Kiểm tra user:

whoami

Kết quả mong đợi:

root

Kiểm tra CPU:

nproc

Kiểm tra RAM:

free -h

Kiểm tra disk:

df -h

Nếu thông tin trả về đúng với cấu hình đã chọn, chuyển sang bước tiếp theo.

Phần 2: Cài Docker và chuẩn bị NocoBase

Bước 3: Cài Docker

Cập nhật hệ thống:

apt update && apt upgrade -y

Cài Docker Engine và Docker Compose plugin bằng script chính thức của Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Nếu muốn kiểm soát chi tiết hơn, bạn có thể cài theo hướng dẫn cài qua kho apt chính thức của Docker tại docs.docker.com, tương ứng với phiên bản Ubuntu/Debian đang chạy.

Sau khi cài xong, kiểm tra:

docker --version
docker compose version

Kiểm tra trạng thái Docker:

systemctl status docker

Nếu Docker chưa chạy, khởi động và bật tự chạy cùng hệ thống:

systemctl enable --now docker

Bước 4: Tạo thư mục NocoBase

mkdir -p /opt/nocobase
cd /opt/nocobase

Kiểm tra:

pwd

Kết quả:

/opt/nocobase

Bước 5: Tạo file docker-compose.yml

Tạo file:

nano docker-compose.yml

Sử dụng cấu hình Docker Compose với NocoBase và PostgreSQL:

networks:
  nocobase:
    driver: bridge

services:
  app:
    image: nocobase/nocobase:latest-full
    restart: always
    networks:
      - nocobase
    depends_on:
      - postgres
    environment:
      - APP_KEY=YOUR_RANDOM_SECRET_KEY
      - DB_DIALECT=postgres
      - DB_HOST=postgres
      - DB_PORT=5432
      - DB_DATABASE=nocobase
      - DB_USER=nocobase
      - DB_PASSWORD=YOUR_STRONG_DB_PASSWORD
      - TZ=Asia/Ho_Chi_Minh
    volumes:
      - ./storage:/app/nocobase/storage
    ports:
      - "13000:80"

  postgres:
    image: postgres:16
    restart: always
    command: postgres -c wal_level=logical
    environment:
      POSTGRES_USER: nocobase
      POSTGRES_DB: nocobase
      POSTGRES_PASSWORD: YOUR_STRONG_DB_PASSWORD
    volumes:
      - ./storage/db/postgres:/var/lib/postgresql/data
    networks:
      - nocobase

Giải thích cấu hình

NocoBase:

image: nocobase/nocobase:latest-full

Image full có sẵn client PostgreSQL/MySQL/Oracle phục vụ plugin sao lưu và di chuyển dữ liệu, cùng LibreOffice phục vụ in mẫu PDF.

Với production, nên pin một version cụ thể (ví dụ nocobase/nocobase:<VERSION>-full) thay vì dùng latest để tránh bị nâng cấp ngoài ý muốn. Danh sách version xem tại Docker Hub: nocobase/nocobase.

APP_KEY:

APP_KEY=YOUR_RANDOM_SECRET_KEY

Tạo key ngẫu nhiên:

openssl rand -hex 32

Sau đó thay YOUR_RANDOM_SECRET_KEY bằng kết quả nhận được.

APP_KEY dùng để mã hóa token người dùng và các thông tin nhạy cảm. Nếu đổi APP_KEY, toàn bộ token cũ sẽ mất hiệu lực. Hãy tạo một lần, lưu lại ở nơi an toàn cùng với bản backup và không để lộ ra ngoài.

Database:

NocoBase kết nối PostgreSQL thông qua tên service:

postgres

Do đó:

DB_HOST=postgres

Mật khẩu PostgreSQL phải giống nhau ở:

DB_PASSWORD=YOUR_STRONG_DB_PASSWORD

và:

POSTGRES_PASSWORD: YOUR_STRONG_DB_PASSWORD

Không sử dụng mật khẩu đơn giản trong production.

Bước 6: Kiểm tra Docker Compose

Sau khi lưu file:

docker compose config

Nếu không có lỗi cấu hình, chuyển sang bước tiếp theo.

Phần 3: Khởi chạy NocoBase

Bước 7: Tải Docker image

docker compose pull

Docker sẽ tải các image được khai báo trong docker-compose.yml.

Bước 8: Khởi chạy NocoBase

docker compose up -d

Ở lần chạy đầu tiên, NocoBase sẽ tự động cài đặt database và dữ liệu hệ thống.

Kiểm tra:

docker compose ps

Bạn cần thấy các service chính:

app
postgres

đang ở trạng thái chạy.

Bước 9: Kiểm tra log NocoBase

docker compose logs -f app

Khi thấy dòng tương tự dưới đây là NocoBase đã khởi động xong:

🚀 NocoBase server running at: http://localhost:13000/

Nếu cần kiểm tra PostgreSQL:

docker compose logs -f postgres

Thoát log bằng:

Ctrl + C

Container vẫn tiếp tục chạy sau khi thoát log, đây là hành vi bình thường.

Phần 4: Truy cập NocoBase

Bước 10: Kiểm tra port 13000

Docker Compose đang mapping:

Cloud Server port 13000
        ↓
NocoBase container port 80

Lưu ý quan trọng về firewall: Docker tự thêm rule iptables cho các port được publish, vì vậy port 13000 sẽ truy cập được từ Internet kể cả khi UFW không cho phép. Không cần chạy ufw allow 13000, và cũng không thể dùng UFW để chặn port này. Cách đóng port 13000 đúng là bind nó về 127.0.0.1 (xem Bước 15).

Nếu Cloud Server có tường lửa ở tầng hạ tầng (Security Group / Firewall trên trang quản trị), hãy đảm bảo port 13000 được mở trong giai đoạn kiểm tra.

Bước 11: Truy cập và đăng nhập NocoBase

Mở trình duyệt:

http://YOUR_SERVER_IP:13000

NocoBase sẽ hiển thị màn hình đăng nhập. Đăng nhập bằng tài khoản quản trị mặc định:

Email:    admin@nocobase.com
Mật khẩu: admin123

Sau khi đăng nhập:

  1. Đổi mật khẩu tài khoản admin ngay lập tức (nhấn vào avatar góc trên bên phải → Đổi mật khẩu).
  2. Cập nhật email và thông tin cá nhân của tài khoản quản trị.
  3. Kiểm tra giao diện quản trị.

Không đổi mật khẩu mặc định là rủi ro bảo mật nghiêm trọng, vì bất kỳ ai truy cập được port 13000 đều có thể đăng nhập với quyền quản trị.

Đến đây, NocoBase đã được triển khai thành công trên Cloud Server.

Phần 5: Domain và HTTPS

Bước 12: Trỏ domain

Ví dụ sử dụng:

nocobase.example.com

Tạo DNS record:

Type: A
Name: nocobase
Value: YOUR_SERVER_IP

Sau khi DNS cập nhật, domain sẽ trỏ về Cloud Server. Kiểm tra bằng:

ping nocobase.example.com

Bước 13: Cài và cấu hình Nginx

apt update
apt install nginx -y

Nếu Cloud Server có bật UFW, mở port SSH, HTTP và HTTPS (phải cho phép SSH trước khi bật UFW để không bị mất kết nối):

ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable
ufw status

Nếu có Security Group / Firewall ở tầng hạ tầng, cũng cần mở port 80 và 443.

Tạo file cấu hình:

nano /etc/nginx/sites-available/nocobase

Thêm:

server {
    listen 80;
    server_name nocobase.example.com;

    # Cho phép upload file lớn (mặc định Nginx chỉ cho 1 MB)
    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:13000;
        proxy_http_version 1.1;

        # Hỗ trợ WebSocket (NocoBase dùng /ws)
        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;

        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        proxy_read_timeout 600;
        send_timeout 600;
        proxy_buffering off;
    }
}

Thay nocobase.example.com bằng domain thực tế. Có thể điều chỉnh client_max_body_size theo dung lượng file tối đa bạn muốn cho phép upload.

Kích hoạt cấu hình:

ln -s /etc/nginx/sites-available/nocobase /etc/nginx/sites-enabled/

Kiểm tra:

nginx -t

Nếu kết quả:

syntax is ok
test is successful

reload Nginx:

systemctl reload nginx

Truy cập:

http://nocobase.example.com

Bước 14: Cấu hình HTTPS

Cài Certbot:

apt install certbot python3-certbot-nginx -y

Chạy:

certbot --nginx -d nocobase.example.com

Certbot sẽ tự cấp chứng chỉ Let's Encrypt, cập nhật cấu hình Nginx và thiết lập gia hạn tự động. Kiểm tra gia hạn:

certbot renew --dry-run

Sau khi hoàn tất:

https://nocobase.example.com

là địa chỉ truy cập NocoBase.

Bước 15: Đóng port 13000 ra Internet

Sau khi truy cập được qua HTTPS, không nên để port 13000 public nữa. Mở lại file compose:

cd /opt/nocobase
nano docker-compose.yml

Sửa phần ports của service app thành:

    ports:
      - "127.0.0.1:13000:80"

Áp dụng thay đổi:

docker compose up -d

Lúc này port 13000 chỉ truy cập được từ chính Cloud Server (qua Nginx). Kiểm tra từ máy tính cá nhân, địa chỉ http://YOUR_SERVER_IP:13000 sẽ không còn truy cập được, trong khi https://nocobase.example.com vẫn hoạt động bình thường.

Phần 6: Kiểm tra và vận hành Production

Bước 16: Kiểm tra container

docker compose ps

Bước 17: Kiểm tra log

docker compose logs --tail=100 app

Bước 18: Kiểm tra tài nguyên

Tài nguyên sử dụng của từng container:

docker stats --no-stream

RAM:

free -h

Disk:

df -h

Cấu hình Nginx:

nginx -t

Phần 7: Các lệnh Docker thường dùng

Chạy các lệnh sau trong thư mục /opt/nocobase.

Khởi động

docker compose up -d

Dừng

docker compose down

Dữ liệu nằm trong thư mục ./storage nên không bị mất khi chạy docker compose down.

Restart

docker compose restart

Xem container

docker compose ps

Xem log

docker compose logs -f app

Xem 100 dòng log gần nhất

docker compose logs --tail=100 app

Phần 8: Backup NocoBase

NocoBase storage (file upload, plugin, cấu hình) được mount tại:

./storage:/app/nocobase/storage

Dữ liệu PostgreSQL được lưu tại:

./storage/db/postgres:/var/lib/postgresql/data

Không sao chép trực tiếp thư mục ./storage/db/postgres khi database đang chạy. Bản sao chép lúc này có thể không nhất quán và không restore được. Hãy dùng pg_dump như hướng dẫn dưới đây.

Backup database

cd /opt/nocobase
mkdir -p backups
docker compose exec -T postgres pg_dump -U nocobase -d nocobase -Fc > backups/nocobase_db_$(date +%F).dump

Backup storage và file cấu hình

tar --exclude=./storage/db -czf backups/nocobase_storage_$(date +%F).tar.gz ./storage docker-compose.yml

Nên backup định kỳ:

  • PostgreSQL database (file .dump)
  • Thư mục storage (file upload, plugin)
  • docker-compose.yml và APP_KEY
  • Cấu hình Nginx trong /etc/nginx/sites-available/nocobase

Ngoài cách dùng lệnh, bạn có thể dùng plugin Backup Manager của NocoBase (image full đã có sẵn các client database cần thiết).

Không nên chỉ lưu backup trên cùng Cloud Server production. Nên lưu một bản ở hệ thống lưu trữ độc lập (ví dụ Object Storage) và kiểm tra khả năng restore định kỳ.

Phần 9: Cập nhật NocoBase

Không nên update production một cách tùy tiện.

Thay vì:

image: nocobase/nocobase:latest-full

nên sử dụng version cụ thể:

image: nocobase/nocobase:<VERSION>-full

Quy trình nên là:

  1. Backup database (Phần 8).
  2. Backup storage (Phần 8).
  3. Kiểm tra release notes của version mới.
  4. Test trên staging nếu có.
  5. Sửa tag image trong docker-compose.yml sang version mới.
  6. Pull image mới.
  7. Khởi động lại container.
  8. Kiểm tra log.
  9. Kiểm tra chức năng.

Lệnh cho bước 6–8:

cd /opt/nocobase
docker compose pull
docker compose up -d
docker compose logs -f app

Nếu đã pin version cụ thể, docker compose pull sẽ không tự tải bản mới. Bạn phải sửa tag trong docker-compose.yml trước (bước 5).

Câu hỏi thường gặp về NocoBase

NocoBase có thể triển khai trên Cloud Server không?

Có. NocoBase hỗ trợ mô hình self-hosted và có thể triển khai trên Cloud Server với môi trường phù hợp.

Có thể cài NocoBase bằng Docker không?

Có. Docker là phương thức cài đặt được NocoBase khuyến nghị, giúp triển khai và quản lý các thành phần của ứng dụng dễ dàng.

Nên chọn Cloud Server bao nhiêu RAM để chạy NocoBase?

Theo NocoBase, riêng ứng dụng cần tối thiểu 1 core / 2 GB RAM (dùng thử, test) và khuyến nghị 2 core / từ 4 GB RAM cho production quy mô nhỏ và vừa. Nếu chạy PostgreSQL trên cùng máy chủ, nên chọn cấu hình cao hơn và tăng dần theo số lượng người dùng, dữ liệu và plugin thực tế.

Tài khoản đăng nhập mặc định của NocoBase là gì?

Tài khoản mặc định là admin@nocobase.com / admin123. Hãy đổi mật khẩu ngay sau lần đăng nhập đầu tiên.

Có thể sử dụng domain riêng cho NocoBase không?

Có. Bạn có thể trỏ domain hoặc subdomain về Cloud Server, sau đó sử dụng Nginx làm reverse proxy và cấu hình HTTPS để truy cập NocoBase an toàn hơn.

Có cần backup NocoBase không?

Có. Nên backup database (bằng pg_dump hoặc plugin Backup Manager), thư mục storage và các cấu hình quan trọng. Backup nên được lưu ở vị trí độc lập với máy chủ production.

NocoBase phù hợp với doanh nghiệp nào?

NocoBase có thể được sử dụng để xây dựng CRM, hệ thống quản lý đơn hàng, workflow, dashboard và nhiều ứng dụng nội bộ khác. Mức độ phù hợp phụ thuộc vào yêu cầu và quy mô của từng doanh nghiệp.

Kết luận

Triển khai NocoBase trên Cloud Server là một lựa chọn phù hợp cho developer, startup và doanh nghiệp muốn xây dựng ứng dụng nội bộ theo hướng no-code/low-code nhưng vẫn chủ động về hạ tầng và dữ liệu.

CLOUDFLY tự hào là đơn vị tiên phong tại Việt Nam cung cấp dịch vụ Cloud Server và Cloud Hosting tùy chỉnh cấu hình. Chúng tôi nhận được sự tin tưởng và hợp tác với hơn 50.000 khách hàng trong và ngoài nước. Sẵn sàng đồng hành và đem lại những giải pháp tối ưu nhất cho bạn.

Nếu quý khách hàng cần hỗ trợ bất cứ vấn đề gì liên quan đến chương trình ưu đãi, hãy liên hệ theo thông tin bên dưới.

CloudFly - Đơn giản hóa ứng dụng trên đám mây

HOTLINE: 0904.558.448

WEBSITE: https://cloudfly.vn/

FACEBOOK: https://www.facebook.com/cloudfly.vn

ZALO GROUPS SĂN DEAL: https://zalo.me/g/kdyf4yjbtxsiifsdzzvz

Chia sẻ
Event banner 1
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly