Dự án Crove duy trì tính tương thích 100% với phiên bản gốc Postiz (gitroomhq/postiz-app). Để đảm bảo nhận được các tính năng mới, bản vá bảo mật và các provider mạng xã hội mới nhất từ upstream mà không làm hỏng các tuỳ biến thương hiệu và SSO của Crove, hệ thống triển khai chiến lược tự động hoá 2 tầng:
- Branding Guard CI: Bộ kiểm thử hợp đồng tự động xác thực tính toàn vẹn của logic branding, bảo mật URL/màu sắc và giấy phép AGPL.
- Upstream Sync Workflow: GitHub Actions tự động kéo code mới từ upstream, kiểm tra xung đột và mở Pull Request tự động.
File kịch bản scripts/branding-guard.ts thực thi các kiểm tra nghiêm ngặt:
- ✅ Default Fallback: Đảm bảo khi không cấu hình ENV, hệ thống giữ nguyên 100% giá trị mặc định của Postiz.
- ✅ Custom Branding Parser: Kiểm tra khả năng phân tích và nạp đầy đủ các tham số
BRAND_*. - ✅ Security URL Sanitization: Chặn đứng các vector tấn công XSS qua
javascript:,data:, protocol-relative//và URL chứa embedded credentials. - ✅ Color Validation: Chỉ chấp nhận mã màu hợp lệ định dạng HEX (
#RGB,#RRGGBB,#RRGGBBAA). - ✅ i18n String Interpolation: Đảm bảo từ khoá thương hiệu được thay thế chính xác theo ranh giới từ.
- ✅ AGPL-3.0 Compliance: Bắt buộc trường
sourceUrlluôn trỏ về kho mã nguồn mở gốc.
pnpm exec tsx scripts/branding-guard.ts- Kích hoạt khi có
pushhoặcpull_requestvào nhánhmainhoặcmaster. - Đảm bảo không có bất kỳ commit nào phá vỡ các quy tắc branding và bảo mật.
- Chạy tự động theo lịch Cron (03:00 UTC mỗi ngày) hoặc trigger thủ công (
workflow_dispatch). - Thao tác thực hiện:
git fetch upstream main --tagstừhttps://github.com/gitroomhq/postiz-app.git.- Tạo nhánh tự động dạng
upstream-sync-YYYYMMDD. - Merge các commit mới nhất.
- Chạy
scripts/branding-guard.tsđể kiểm tra an toàn. - Tự động mở Pull Request trên GitHub repo để đội ngũ review và merge.
- Tích hợp bước Verify Branding Guard trước khi bắt đầu build image multi-arch (
linux/amd64vàlinux/arm64). - Đẩy Docker Image thành phẩm lên GitHub Container Registry (
ghcr.io).