Repo có sẵn docker-compose.coolify.yml cho loại resource Docker Compose của Coolify. File gồm ứng dụng và PostgreSQL 16, dữ liệu nằm trong named volume nên redeploy không bao giờ chạm tới chúng.
Các bước
Phần tiêu đề “Các bước”- Trong Coolify: New Resource → Docker Compose, chọn repo
https://github.com/kdigivn/kdigi-cms-open(hoặc bản fork của bạn), đặt Docker Compose Location là/docker-compose.coolify.yml. - Thêm biến môi trường
PAYLOAD_SECRETbằng một chuỗi ngẫu nhiên từ 32 ký tự trở lên (openssl rand -hex 32). Đây là biến bắt buộc duy nhất. Coolify tự sinh tên miền, chứng chỉ TLS và mật khẩu database. - Gán tên miền cho dịch vụ
app(cổng 3000). Nếu dùng tên miền riêng, đặt thêmPAYLOAD_PUBLIC_SERVER_URL=https://cms.example.com, nếu không trang đăng nhập và URL ảnh sẽ dùng tên miền do Coolify sinh. - Deploy. Lần khởi động đầu tiên áp dụng toàn bộ migration. Mở
https://cms.example.com/adminvà tạo tài khoản đầu tiên, tài khoản này trở thành super admin.
Tạo tài khoản đầu tiên ngay sau khi deploy. Khi database còn trống, ai truy cập được
/adminđều có thể gửi form tạo người dùng đầu tiên và trở thành super admin.
Dùng PostgreSQL ngoài thay cho bản đi kèm: đặt DATABASE_URI, rồi bỏ dịch vụ db cùng mục depends_on của app.
Biến tuỳ chọn
Phần tiêu đề “Biến tuỳ chọn”File compose chuyển tiếp các biến R2_OFF, ENABLE_JOBS_AUTORUN, FRONTEND_BASE_URL, DEEPSEEK_API_KEY, DEEPSEEK_MODEL, RECAPTCHA_SECRET, MODERATION_WEBHOOK_URL, OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_ENDPOINT, SEED_DEMO và SKIP_MIGRATIONS. Biến không có trong khối environment: của compose sẽ không vào container, nên cần thêm vào đó nếu bạn dùng biến khác. Không đặt SEED_DEMO=true trên bản chạy thật: nó tạo site và nội dung demo.
Media và tác vụ nền
Phần tiêu đề “Media và tác vụ nền”- Ảnh mặc định lưu ở volume
media_data(/app/media). Muốn đưa ảnh ra ngoài máy chủ, cấu hình Cloudflare R2 cho từng site. Xem Thư viện media. - Mỗi lần lưu nội dung, CMS xếp một job "revalidate frontend" để website của bạn làm mới cache. Job chỉ chạy khi
ENABLE_JOBS_AUTORUN=true, và biến này phải bật trên đúng một instance.
Sao lưu
Phần tiêu đề “Sao lưu”Sao lưu cả database và media, và giữ lại PAYLOAD_SECRET đang dùng. Bật lịch sao lưu database của Coolify cho volume postgres_data, đưa media_data vào bản sao lưu máy chủ.
Hướng dẫn đầy đủ về triển khai, sao lưu và xử lý sự cố ở Deploy (tiếng Anh).
dat day dang dong dau duoc deu di do dinh dua de dung du