Các repo và cách chia code
Câu hỏi của chủ dự án (18.10.2026): nên tách Conan School thành các repo nào để nhiều app phát triển đồng thời, không phải chờ nhau.
Tiêu chí tách
Chỉ tách thành repo riêng phần không dùng chung D1 và đăng nhập với phần còn lại. Phần dùng chung mà tách repo thì một tính năng phải sửa hai repo, và code dùng chung phải thành package có số phiên bản. Conan đã trả giá đó một lần: sau khi tách conan-web, design-system phải chép thành bản thứ hai và gác check:shared-packages-sync đọc thư mục anh em nên CI phải bỏ qua.
Thứ làm các phiên chờ nhau bên trong một repo được giải bằng làn, không bằng tách repo.
Hiện trạng (18.10.2026)
| Repo | Gồm | Ghi chú |
|---|---|---|
dac2205/conanplatform | api, tokyo (com), admin, tool-plane, studio, play, các site video, docs | Lõi; dùng chung D1 conan-platform-production và cookie thành viên |
dac2205/conan-web | www, cms, api-cms, cms-docs | Tách 16.10.2026. Deploy bằng Cloudflare build từ GitHub, không qua Actions |
dac2205/conan-content | Nội dung, bộ biên dịch, 3.378 migration đã áp | Tách 17.10.2026 |
Đề xuất
| Repo | Gồm | Vì sao |
|---|---|---|
| conanplatform (giữ) | api, com, admin + admin-router, conan-tool-plane, feature-executor, packages/, docs nền tảng, harness | Chung D1, cookie, kiểu dữ liệu |
| conan-web (đã có) | Thêm kudo, content, aimaster, webai | Bốn site công khai, gọi api 0 lần, không D1, chỉ dùng token màu |
| conan-video (mới) | video, video2, video-studio; cân nhắc mam, media | Ba app video gọi api 0 lần; media chỉ gọi /api/media qua HTTP |
| conan-content (đã có) | Giữ nguyên |
Chưa tách, còn dính lõi
| App | Dính ở đâu | Gỡ gì trước |
|---|---|---|
studio.conan.school | Script ghi thẳng vào api.conan.school/migrations/ và đọc api.conan.school/content/books | Đổi sang HTTP hoặc sang conan-content |
play.conan.school | Durable Object riêng, nhưng chạy sau đường api.conan.school/play/ws | Không gấp |
Đo thế nào
Ba câu hỏi cho mỗi app, đo bằng git grep trên repo: có binding D1 của production không, có gọi api.conan.school không, có import packages/ (ngoài design-system) không. Cả ba "không" thì tách được. Thêm số file đổi trong 30 ngày để biết app nào là làn bận.