Cài đặt Docker (Caddy bên ngoài)
Trong cách triển khai này, container ứng dụng NocoBase và container Caddy chạy tách rời nhau. Bạn có thể bắt đầu từ Cài đặt Docker (Nginx tích hợp), rồi chuyển điểm vào sang container Caddy bên ngoài.
Khi nào nên dùng cách này
- Bạn muốn tách riêng NocoBase và web server
- Bạn muốn đơn giản hóa cấu hình reverse proxy và HTTPS với Caddy
- Bạn chỉ muốn đưa container proxy ra mạng công khai
Ví dụ docker-compose.yml
Nếu bạn cần image full, hãy thay latest-no-nginx bằng latest-full-no-nginx.
Mapping 13000:80 chỉ dùng để tiện kiểm thử local, tránh chiếm trực tiếp các cổng chuẩn của host. Trong production, thường không tiếp tục dùng 13000:80; thay vào đó, container Caddy bên ngoài sẽ map trực tiếp tới các cổng 80 và 443 c ủa host.
Điểm chính
NOCOBASE_EXTRACT_CLIENT_ASSETS=truedùng để tách tài nguyên client và tạo cấu hình proxyNOCOBASE_PROXY_PROVIDER=caddycho biết cần tạo cấu hình CaddyNOCOBASE_PROXY_UPSTREAM_HOST=appcho phép container Caddy truy cập dịch vụappqua mạng Compose./storagecần được mount vào cảappvàcaddyđể cùng dùng cấu hình proxy, tài nguyên tĩnh và tệp tải lên- Container
caddycần chờnocobase.caddyđược tạo xong, sau đó dùngln -sfliên kết nó tới/etc/caddy/Caddyfile - Cấu hình được tạo tự động chuyển tiếp cả route
/files/dướiAPP_PUBLIC_PATHvà route/files/ở root đến NocoBase để xử lý xem trước và tải file có xác thực - Chỉ cần publish cổng của container Caddy ra host. Khi kiểm thử, bạn có thể bắt đầu với
13000:80; trong production, thường mở trực tiếp các cổng80và443của host, còn dịch vụappkhông cần mở cổng ra host
Nếu dùng Caddy cài trực tiếp trên máy host
Nếu Caddy của bạn được cài trực tiếp trên máy host thay vì chạy trong container Docker, bạn nên dùng một docker-compose.yml riêng. Trong cách này, dịch vụ app cần publish cổng ra host, và các biến proxy phải dùng giá trị theo góc nhìn của host.
Bạn có thể dùng docker-compose.yml như sau:
Trong biến thể này:
NOCOBASE_PROXY_STORAGE_PATHcần là đường dẫn tuyệt đối của thư mụcstoragetrên hostNOCOBASE_PROXY_UPSTREAM_HOSTcần là127.0.0.1- Dịch vụ
appcần giữports, để Caddy trên host có thể truy cập ứng dụng qua127.0.0.1:13000
Sau khi container app khởi động, hãy chờ file cấu hình được tạo rồi liên kết nó vào đường dẫn cấu hình Caddy trên host:
Nếu Caddy trên host của bạn không dùng /etc/caddy/Caddyfile, hãy thay đường dẫn đích bằng đường dẫn cấu hình thực tế của bạn. Thông thường, giữ nocobase.caddy như file đầu vào chính sẽ an toàn hơn là chép thủ công nội dung của nó.
Nếu bạn tự quản lý Caddy thay vì dùng cấu hình được tạo tự động, hãy bảo đảm /files/* và route tương ứng dưới APP_PUBLIC_PATH được chuyển tiếp đến NocoBase trước các rule fallback SPA. Xem Proxy ngược Caddy để tham khảo ví dụ đầy đủ.
Liên kết liên quan
- Cài đặt Docker (Nginx tích hợp) — Bắt đầu từ mô hình một container
- Proxy tài nguyên tĩnh với Caddy — Tìm hiểu thêm về cấu hình Caddy được tạo ra

