Bạn có thể sao lưu dữ liệu của một project Docker Compose trên TDShift PaaS thành file .tar.gz tải về máy, rồi sử dụng chính file đó để khôi phục khi cần. Bài hướng dẫn này bám sát tài liệu BACKUP_RESTORE.md của TDShift PaaS.
Phạm vi hiện tại: Backup & Restore theo file chỉ dành cho project loại Docker Compose có Docker named volumes do Compose quản lý. Các project PostgreSQL, WordPress và Odoo managed/template chưa được tính năng này hỗ trợ trực tiếp. Đối với Odoo chạy trong một project Docker Compose, dữ liệu chỉ được sao lưu nếu database và filestore thực sự nằm trong named volumes được quản lý của project.
1. Backup trên TDShift PaaS là gì?
Backup tạo bản sao dữ liệu nằm trong Docker named volumes của project thành một file tải xuống. Restore nhập lại file đó và thay thế dữ liệu trong các named volumes hiện có. Tính năng này không sao lưu Docker image, mã nguồn GitLab, secrets, biến môi trường, bind mounts, external volumes hoặc các dịch vụ dữ liệu bên ngoài.
2. Trước khi tạo bản backup
- Đăng nhập tại app.tdshift.info bằng tài khoản sở hữu project.
- Đảm bảo project có loại Docker Compose và trạng thái Sẵn sàng (ready).
- Kiểm tra các thư mục chứa dữ liệu của ứng dụng được lưu vào Docker named volumes, không chỉ nằm trong filesystem tạm của container.
- Chọn thời điểm ít người sử dụng: hệ thống tạm dừng ứng dụng khi backup và restore.
- Đảm bảo máy chủ có đủ dung lượng tạm và thiết bị nhận file có đủ bộ nhớ.
Ví dụ Docker Compose lưu cơ sở dữ liệu SQLite vào named volume:
services:
livechat:
image: registry.gitlab.com/group/livechat:develop
environment:
DATABASE_PATH: /app/data/livechat.sqlite
volumes:
- livechat_data:/app/data
restart: unless-stopped
volumes:
livechat_data:
Ví dụ chỉ minh họa cách lưu dữ liệu; không phải file Compose phải khai báo chính xác như vậy cho mọi ứng dụng.
3. Step by step: Tạo Backup và tải file
- Mở TDShift PaaS → Projects.
- Chọn project Docker Compose cần sao lưu.
- Trong chi tiết project, tìm mục Backup & Restore.
- Nhấn Tạo backup và tải file .tar.gz.
- TDShift kiểm tra named volumes, tạm dừng project, chụp dữ liệu và đóng gói file.
- Khi trình duyệt tải xuống hoàn thành, kiểm tra tên và kích thước file, ví dụ
repo-xxxxxxxxxx-backup.tar.gz. - Lưu file vào vị trí an toàn bên ngoài server đang chạy TDShift. Đối với dữ liệu quan trọng, giữ thêm một bản sao được bảo vệ ở nơi độc lập.
File .tar.gz gồm manifest.json (thông tin project, volumes, checksum SHA-256) và các archive dữ liệu 0.tar, 1.tar… ứng với từng volume. Không sửa tên file nội bộ, không chỉnh manifest và không giải nén rồi nén lại trước khi restore.
4. Step by step: Restore dữ liệu từ file backup
Cảnh báo: Restore sẽ thay thế dữ liệu hiện tại trong các named volumes của project đích. Dữ liệu phát sinh sau thời điểm backup có thể bị mất. Nên tải bản backup mới nhất trước khi khôi phục.
- Đăng nhập TDShift PaaS và mở lại đúng project Docker Compose đã tạo file backup.
- Vào Backup & Restore → Restore từ file backup.
- Chọn file
.tar.gzđã tải về. Giới hạn upload hiện tại là 1 GiB. - Nhập chính xác mã project hiển thị trên trang để xác nhận.
- Nhấn Restore dữ liệu sau khi đã kiểm tra file và chấp nhận downtime.
- Hệ thống kiểm tra manifest, project, tên volumes, kích thước, checksum và tính an toàn của archive.
- TDShift tạm dừng project, tạo snapshot dữ liệu hiện có, nạp dữ liệu backup và khởi động lại các service.
- Đợi hoàn tất rồi truy cập ứng dụng, xác minh dữ liệu và chức năng quan trọng.
Nếu việc thay thế dữ liệu gặp lỗi, TDShift thử rollback từ snapshot tạm. Điều này không bảo đảm phục hồi thành công trong mọi trường hợp, đặc biệt khi hết dung lượng hoặc mất điện.
5. Kiểm tra sau Restore
- Ứng dụng đã mở lại và đăng nhập được.
- Dữ liệu thực tế khớp thời điểm tạo backup (bản ghi, media, attachment).
- Database kết nối và hoạt động bình thường.
- File đính kèm, Odoo filestore hoặc WordPress uploads còn đầy đủ nếu chúng thuộc các named volumes đã backup.
- Cấu hình image và biến môi trường ngoài backup vẫn tương thích với dữ liệu cũ.
- Kiểm tra log triển khai nếu ứng dụng báo lỗi.
Khuyến nghị: thử restore trên dữ liệu thử nghiệm trước khi sử dụng cho production. Bản MVP hiện chỉ cho phép restore đúng project với danh sách volumes phù hợp, chưa hỗ trợ restore sang project khác.
6. Những giới hạn phải biết
- Chỉ hỗ trợ Docker Compose + Docker named volumes.
- Không bao gồm external volumes, bind mounts, images, Git source và secrets.
- Không sao lưu cơ sở dữ liệu remote, S3 hoặc dịch vụ SaaS bên ngoài.
- Backup/Restore có downtime vì ứng dụng tạm dừng.
- File backup chưa được mã hóa bằng mật khẩu riêng; phải lưu trữ an toàn.
- File restore upload tối đa 1 GiB.
- Restore có thể ghi đè dữ liệu hiện tại; rollback khi lỗi chỉ là best-effort.
7. Xử lý lỗi thường gặp
Không thấy nút Backup & Restore?
Kiểm tra project có loại Docker Compose hay không. Project Odoo/WordPress/PostgreSQL managed chưa hỗ trợ trực tiếp ở bản này.
Backup không thành công?
Kiểm tra project có named volumes hay không, ổ đĩa còn đủ trống và Docker có hoạt động bình thường hay không. Nếu bạn là quản trị viên server, kiểm tra thêm log dịch vụ PaaS.
Restore báo sai project hoặc volumes?
Chọn đúng project đã tạo backup và giữ nguyên cấu hình volume phù hợp. Không sửa manifest.json để ép khôi phục.
Restore báo checksum không hợp lệ?
File có thể bị hỏng hoặc thay đổi. Sử dụng lại bản backup gốc còn nguyên vẹn.
Backup lớn hơn 1 GiB?
Giao diện Restore MVP hiện chưa hỗ trợ upload file vượt giới hạn này. Không nên tự chia file archive để upload.
Ứng dụng không chạy sau Restore?
Kiểm tra database, filestore và logs. Dữ liệu từ named volume phải phù hợp với phiên bản image, cấu hình runtime và dịch vụ bên ngoài đang dùng.
8. Câu hỏi thường gặp
Có restore từ project A sang project B không?
Chưa. Bản hiện tại xác minh đúng mã project và danh sách volumes.
Backup có gồm source code và Docker image không?
Không. Chỉ sao lưu Docker named volumes thuộc phạm vi hỗ trợ; repository, image và các secrets cần được quản lý riêng.
Backup có tự động chạy hằng ngày không?
Tài liệu MVP đang hướng dẫn thao tác thủ công trên giao diện; không khẳng định đã có tính năng lịch backup tự động.
Có thể backup Odoo không?
Nếu Odoo được triển khai dưới dạng project Docker Compose với PostgreSQL và filestore trong named volumes được PaaS quản lý thì chúng nằm trong phạm vi backup. Project Odoo template/managed hiện chưa được nút này hỗ trợ trực tiếp.
Bắt đầu: Mở ứng dụng TDShift PaaS và chọn project Docker Compose. Tham khảo tài liệu kỹ thuật gốc để xem phạm vi cập nhật mới nhất.