Skip to content

Làm việc trên cloud, không dùng máy cá nhân ​

Repo này chạy được hoàn toàn trên Claude Code cloud sessions, phiên làm việc chạy trong máy ảo do Anthropic quản, tự clone GitHub, tự đẩy nhánh, tự mở PR. Máy cá nhân chỉ còn là một cái trình duyệt.

Nó khớp sẵn với repo này vì quy tắc triển khai vốn đã cấm deploy từ máy: mọi thứ đi qua GitHub Actions. Bỏ máy đi thì không mất gì cả.

Đừng nhầm với Claude Managed Agents on Cloudflare

Hai thứ khác hẳn nhau. Cloud sessions là chỗ ngồi làm việc. Managed Agents on Cloudflare là hạ tầng thi hành cho sản phẩm, vòng lặp agent chạy ở Anthropic, còn code execution chạy trong Cloudflare Sandbox. Xem managed-agents.

Ba mảnh cấu hình, và mảnh nào sống ở đâu ​

MảnhSống ở đâuAi chạy
Setup script, dựng MÁY: wrangler, toolchainHộp thoại môi trường ở claude.ai/code; bản gốc giữ ở scripts/cloud-setup.shChạy một lần, trước khi Claude Code khởi động, rồi đĩa bị chụp lại thành cache
SessionStart hook, dựng DỰ ÁN: npm ci.claude/settings.json → scripts/cloud-bootstrap.shChạy mỗi phiên, cả cloud lẫn máy
Network + biến môi trường + khoá APIHộp thoại môi trường,

Ranh giới giữa hai file đầu không phải chuyện gọn gàng. Chỉ setup script mới được cache thành ảnh đĩa; hook thì chạy lại mỗi lần. Đặt npm ci vào setup script thì nó không bao giờ chạy lại khi package-lock.json đổi, và phiên nào cũng khởi động với phụ thuộc cũ mà không báo lỗi gì, đúng loại hỏng mà hệ vẫn trông như đang chạy.

Dựng lần đầu ​

1. Nối GitHub ​

Một trong hai cách:

  • Chạy /web-setup trong terminal, đồng bộ token gh sẵn có sang tài khoản Claude.
  • Hoặc cài Claude GitHub App khi onboarding trên trình duyệt.

Cài GitHub App là bắt buộc nếu muốn dùng auto-fix PR (Claude tự sửa khi CI đỏ hay có review comment). Với repo này, nơi CI chính là đường deploy, auto-fix đáng bật.

2. Tạo môi trường cloud ​

Vào claude.ai/code → Add cloud environment.

Network access: Custom, tích "Also include default list of common package managers", và thêm:

api.conan.school
admin.conan.school
docs.conan.school
*.conan.school
api.cloudflare.com
*.workers.dev
*.pages.dev

Mức Trusted mặc định đã đủ để npm ci và git chạy, nhưng không cho gọi api.cloudflare.com, tức không đọc được D1, không áp được migration. Đó là lý do phải Custom.

Setup script: dán nguyên nội dung scripts/cloud-setup.sh.

3. Khoá Cloudflare ​

Có hai đường, và chúng đánh đổi khác nhau:

  • API credential (khuyến nghị), dán token vào mục API credentials, khai host api.cloudflare.com. Khoá không bao giờ vào tới máy ảo: proxy của Anthropic gắn nó vào request sau khi request đã rời phiên. Claude không đọc được khoá, và nó không nằm trong biến môi trường hay file nào.
  • Biến môi trường CLOUDFLARE_API_TOKEN, đơn giản hơn, nhưng ai dùng môi trường đó cũng đọc được. Chấp nhận được với môi trường cá nhân; tuyệt đối không dùng cho môi trường dùng chung của tổ chức.

Làm việc hằng ngày ​

Mở thẳng claude.ai/code, hoặc bắn việc từ terminal:

bash
claude --cloud "Sửa lỗi X trong api.conan.school/src/domains/course-intelligence"

Máy ảo clone remote GitHub ở nhánh hiện tại, không phải thư mục làm việc của bạn, nên phải git push trước. Kéo một phiên cloud về terminal thì claude --teleport.

Điều gì KHÔNG đổi khi lên cloud ​

Cả ba luật gốc của repo vẫn nguyên vẹn, và cloud không nới bất cứ điều nào:

  1. Không deploy từ phiên. Phiên cloud cũng là "máy" theo nghĩa của luật. Đẩy nhánh, mở PR, để CI deploy. Xem deploy.
  2. Migration D1 do CI áp, từng file một, TRƯỚC bước deploy trong cùng job. Từ phiên cloud cũng vậy: thêm file vào api.conan.school/migrations/, đặt tên YYYYMMDD<chữ>_…, push, không wrangler d1 execute --remote --file=.... Xem deploy.
  3. Nội dung khoá học ai viết cũng được (từ 03.09.2026), nhưng vào repo trước, D1 sau, qua migration trong git, rồi POST /ops/audit/:slug. Không liên quan gì tới chỗ ngồi.

Cái gì theo được lên cloud, cái gì không ​

Theo được (vì nằm trong clone): CLAUDE.md, .claude/skills/, .claude/memory/, .claude/settings.json, .claude/agents/, .claude/commands/.

Không theo được: mọi thứ trong ~/.claude/ của máy bạn, CLAUDE.md cấp người dùng, skill cá nhân, hook cấp người dùng, và trí nhớ tích luỹ qua các phiên.

Đây là cái bẫy hay gặp nhất: phiên cloud trông như thiếu trí nhớ, mà thật ra là nó chưa bao giờ thấy ~/.claude/. Ngày 01.09.2026 chuyện này đã được xử lý, 15 file trí nhớ chuyển từ ~/.claude/projects/.../memory/ vào .claude/memory/ trong repo, với MEMORY.md làm mục lục. Từ nay ghi nhớ điều gì thì viết vào đó, đừng để nó nằm lại trên máy: thứ nằm ngoài repo là thứ chỉ một cái máy biết.

Tài liệu nội bộ nền tảng Conan School.