Railshot
AI deployment & operations platform
Triển khai một ứng dụng web xây dựng cục bộ lên các môi trường đám mây và on-premises đã chuẩn bị, rồi vận hành nó.
Một nền tảng AI triển khai và vận hành, đưa ứng dụng web xây dựng cục bộ lên các môi trường đám mây hoặc on-premises đã chuẩn bị và tiếp tục vận hành nó.
Railshot vocabulary
- intake
- checks
- repair
- publish
- rollout
- route
- probe
- source commit
- digest
- binding
- unknown
- resume
- observation
Intake: deploy_repository · deploy_local_project · OAUTH MCP · Idempotency-Key · IDEMPOTENCY_CONFLICT · 202 ACCEPTED · EXECUTOR_BUSY · CAPACITY_EXCEEDED · maxConcurrentDeployments · workflow_dispatch · TARGET ALLOWLIST · reconciliation_required · CI_DISPATCH_UNCONFIRMEDChecks: package.policy · package.spec · source.quality · image.build · image.runtime · image.scan · GATE_ORDER · verdict.json · release_eligible · GATE VERDICT · SECRET SCAN · --cap-drop=ALL · source_change_allowed · verify_imagesAI Repair: GATE VERDICT · FIXABLE · give_up · PROMPT INJECTION · FAILURE SIGNATURE · REPAIR_SCOPE · MAX_REPAIR_ATTEMPTS · claude-agent-sdk · openai-codex · fixer · lessons.md · source_change_allowed · SDK_OUTCOME_UNKNOWNPublish: release_eligible · GHCR · images.json · EXACT TESTED BUNDLE · GITHUB-HOSTED RELEASE · published · publication_unverified · MANIFEST INSPECT · REGISTRY_VISIBILITY · publish-journal · railshot-release · containerd-snapshotter · images.tar · handoff.jsonRollout: bridge.py · workload.json · CONFIG GIT · pushing · REMOTE READBACK · ARGO CD · Synced · Healthy · targetRevision · sync_requested · NO PRUNE, NO FORCE · NetworkPolicy · readinessProbe · observed_images · NEVER BLINDLY RETRYPublic Route: routing · SHARED ALB · aws_lb_listener_rule · aws_lb_target_group · aws_route53_record · NodePort · LISTENER OWNERSHIP · GCP_ROUTE_APPLY_TIMEOUT · GCP_CERTIFICATE_DNS_FAILED · WireGuardHealth Probe: public_probe · site_probe · railshot-health/1 · NO PROXY, NO REDIRECT · expected_json · HTTPS 200 · verified_at · public_http · health_path · readinessProbe · probe_successSource Commit: workflow_dispatch · targetRevision · Railshot-Request · Railshot-Target · source_commit · source_parent · force: false · source_digest · snapshot.json · GITHUB_SHA · PLATFORM_REF · harness_sha256 · SUBMITTED SOURCE CHANGED · source_preparedImage Digest: GHCR · images.json · MANIFEST INSPECT · source_digest · IMMUTABLE GHCR DIGEST · images_sha256 · observed_images · PULL BY DIGEST · imagePullSecrets · containerd-snapshotter · RESUME_PUBLICATION_CHANGED · verify_images · images.tarRun Binding: Idempotency-Key · published · Railshot-Request · Railshot-Target · handoff.json · producer_attempt · bundle_artifact_id · run_id · state.bindings · CI_BINDING_MISMATCH · DEPLOYMENT BINDING CONFLICT · config_sha256 · TARGET ALLOWLIST · registered_applicationUnknown Outcome: publication_unverified · pushing · GCP_ROUTE_APPLY_TIMEOUT · outcome_unknown · CD_RECONCILE_REQUIRED · reconciliation_required · CD_OUTCOME_UNKNOWN · SDK_OUTCOME_UNKNOWN · unknown_timeout · CI_DISPATCH_UNCONFIRMED · NEVER BLINDLY RETRY · after_reconcile · reconcile_remote · CI_DISPATCH_NOT_IDENTIFIED · READ-ONLY OBSERVEResume: publish-journal · source_parent · RESUME_PUBLICATION_CHANGED · --resume · state.sqlite3 · resumePrepared · findDeployment · recoverDispatch · source_prepared · CI_DISPATCH_NOT_IDENTIFIED · resume_count · SAME WORKFLOW RUN · INTERRUPTEDObservation: observationRetry · next_retry_at · consecutive_failures · no_data · stale · collection_failed · NOT A SUCCESS GATE · probe_success · PROMETHEUS · BLACKBOX EXPORTER · READ-ONLY OBSERVE
Màn hình web và tác nhân của chính bạn yêu cầu triển khai qua cùng một API sản phẩm.
Sản phẩm từ một yêu cầu triển khai đã được tiếp nhận, qua kiểm tra CI và phát hành image, đến cấu hình Git và đưa lên bằng Argo CD trên một đích đã đăng ký và kiểm chứng HTTPS công khai. Thành công chỉ được ghi khi có cả revision đã áp dụng và một lần kiểm tra công khai; kết quả không thể biết được giữ là unknown.
Gửi dự án từ màn hình web, hoặc từ tác nhân AI của chính bạn kết nối qua MCP, và nền tảng sẽ đi suốt từ chuẩn bị tệp triển khai, sửa lỗi, phát hành image, đưa lên môi trường đến kiểm chứng URL công khai; sau khi triển khai, cùng màn hình đó hiển thị lịch sử và log, quản lý cập nhật, dừng, tiếp tục và xóa. Một dự án nhóm.
Thời gian phát triển của sự kiện September 28, 2026 đến October 4, 2026
Màn hình web và máy chủ MCP được xây dựng trong hackathon. MCP remote đăng nhập bằng OAuth để gửi; thư mục cục bộ được gửi qua MCP cục bộ.
Gửi → tiếp nhận
Màn hình web, MCP remote và MCP cục bộ gọi cùng một API sản phẩm, API này ghi yêu cầu đã kiểm tra là queued và trả lời 202.
Người dùng trình duyệtdữ liệu: thư mục · ZIP · URL GitHubmàn hình web · lịch sử · Insights
apps/dashboardNguồn và một môi trường đã đăng ký được chọn trên màn hình web.
màn hình web · lịch sử · Insights
apps/dashboarddữ liệu: cùng API sản phẩm · /api/v1xác thực · đích · tiếp nhận 202apps/apiMàn hình web gọi API sản phẩm từ cùng origin.
Client MCPdữ liệu: OAuth · deploy_repositoryOAuth MCP · deploy_repository
agent/remote-mcp.jsMCP remote kết nối qua OAuth và nhận một kho GitHub công khai làm đầu vào.
OAuth MCP · deploy_repository
agent/remote-mcp.jsdữ liệu: cùng API sản phẩmxác thực · đích · tiếp nhận 202apps/apiMáy chủ MCP remote gọi cùng API triển khai qua client API nội bộ của nó.
railshot-local MCPdữ liệu: tải lên ZIP · deploy_local_projectxác thực · đích · tiếp nhận 202
apps/apiMCP stdio trên máy người dùng nén một thư mục thành ZIP và tải lên. Phiên của nó không dùng chung với phiên OAuth remote.
xác thực · đích · tiếp nhận 202
apps/apidữ liệu: ghi là queued · 202trạng thái operation · gắn runapi/product-store.jsĐầu vào, đích đã đăng ký, dung lượng và khóa idempotency được kiểm tra; operation được ghi là queued và trả lời bằng 202. 202 nghĩa là đã tiếp nhận, không phải đã triển khai.
trạng thái operation · gắn run
api/product-store.jsdữ liệu: thứ tự hàng đợihàng đợi triển khai · 3 cùng lúcapps/apiĐược lấy theo thứ tự tiếp nhận, trong giới hạn số lần triển khai đồng thời (mặc định 3).
trạng thái operation · gắn run
api/product-store.jsquan sát: trạng thái triển khai · lịch sửmàn hình web · lịch sử · Insightsapps/dashboardMàn hình web và các công cụ MCP đọc cùng các bản ghi operation. Lần thử gần nhất và lần triển khai đã kiểm chứng hiện tại được hiển thị riêng, và một tác vụ AI đã xong không phải là triển khai thành công.
Kiểm tra CI → phát hành image
Mã nền tảng cố định kiểm tra commit đã gửi, chỉ giao lỗi sửa được cho AI, và chỉ phát hành image đã qua lại cùng các kiểm tra.
hàng đợi triển khai · 3 cùng lúc
apps/apidữ liệu: source commitcommit nguồn · trailerapps/<tenant>/<app>Nguồn được gửi trở thành một commit trong kho apps riêng tư (kèm trailer Railshot-Request và Railshot-Target), và nhánh được cập nhật mà không dùng force.
hàng đợi triển khai · 3 cùng lúc
apps/apichạy · áp dụng: workflow_dispatchvòng lặp · kiểm tra cơ bản L0–L3railshot-deploy.ymlYêu cầu một lượt chạy với tenant, app, source_commit và target_id. Nếu phản hồi bị mất, yêu cầu không được gửi lại; thay vào đó các lượt chạy của cùng commit được tìm kiếm.
commit nguồn · trailer
apps/<tenant>/<app>dữ liệu: commit đã gửivòng lặp · kiểm tra cơ bản L0–L3railshot-deploy.ymlChỉ commit đã gửi và mã nền tảng cố định (PLATFORM_REF) được checkout.
sửa bằng SDK · chỉ lỗi sửa được
railshot-deploy.ymldữ liệu: yêu cầu sửa · có điều kiệnAI SDK providerChỉ được gọi với các loại lỗi sửa được, và dừng khi cùng một lỗi lặp lại hoặc đạt giới hạn số lần thử. Đạt hay không do các bước kiểm tra quyết định, không phải LLM.
release · phát hành GHCR · gắn kết
railshot-deploy.ymldữ liệu: phát hành image đã kiểm traGHCRSau khi xác minh bundle đã qua kiểm tra, cùng các image đó được phát hành lên GHCR. Không có gì được build lại.
gắn lượt chạy CI · quan sát
apps/apiquan sát: lượt chạy · đọc bản phát hànhrailshot-deploy.ymlMột bản phát hành chỉ được tính khi run id, source commit, target và app khớp với bản ghi đã tiếp nhận.
gắn lượt chạy CI · quan sát
apps/apilỗi · kết quả không xác định: failed · publication_unverifiedtrạng thái operation · gắn runapi/product-store.jsLỗi CI hoặc bản phát hành chưa được xác minh được ghi lại cùng chẩn đoán và không chuyển sang CD.
Áp dụng → kiểm tra công khai
Chỉ áp dụng qua config Git và Argo CD khi bản phát hành khớp với đích đã đăng ký, và chỉ ghi thành công sau khi địa chỉ HTTPS công khai đã đăng ký vượt qua kiểm tra.
release · phát hành GHCR · gắn kết
railshot-deploy.ymldữ liệu: images.json · spec · verdict · manifestcd.js · deployPublishedapps/apiCD đọc các tệp của bản ghi phát hành qua một loader tin cậy. Bản thân CI không tạo tài nguyên cụm, URL hay thành công triển khai nào.
cd.js · deployPublished
apps/apichạy · áp dụng: apply · đích đã đăng kýconfig tin cậy · đích đã đăng kýgitops/bridge.pyChạy gitops/bridge.py với config tin cậy chỉ khi app và tenant đã đăng ký khớp với bản ghi phát hành.
commit · push · đọc lại remote
gitops/bridge.pydữ liệu: workload commit · pushKho config GitChỉ commit workload.json tại đường dẫn đã đăng ký của một nhánh riêng, ghi ý định push trước, push, rồi đọc lại revision ở remote. Một lần push không chắc chắn sẽ không được lặp lại.
Kho config Gitdữ liệu: revisionApplication · kiểm tra AppProject
Argo CDRevision của kho config mà Argo CD Application trỏ tới.
Argo sync · quan sát
gitops/bridge.pychạy · áp dụng: sync · quan sátApplication · kiểm tra AppProjectArgo CDYêu cầu sync sau khi kiểm tra AppProject; quan sát chỉ đọc, không sync.
Application · kiểm tra AppProject
Argo CDchạy · áp dụng: áp dụngworkload · ServiceCụm ứng dụng K3sÁp dụng workload lên cụm đích đã đăng ký.
workload · Service
Cụm ứng dụng K3sdữ liệu: kéo image · digestGHCRKéo digest đã phát hành. GHCR riêng tư cần một thông tin xác thực pull riêng.
probe HTTPS công khai
gitops/bridge.pyquan sát: HTTPS healthURL HTTPS công khaiChỉ kiểm tra địa chỉ health HTTPS do người vận hành đăng ký, không theo redirect, để xem có 200 (và JSON mong đợi nếu được đặt).
URL HTTPS công khaidữ liệu: đường công khaiworkload · Service
Cụm ứng dụng K3sĐường công khai (LB, NodePort, chứng chỉ) khác nhau theo nhà cung cấp và đích đã đăng ký.
cd.js · deployPublished
apps/apidữ liệu: succeeded · revision · URLtrạng thái operation · gắn runapi/product-store.jsChỉ ghi là succeeded khi có cd.deployed, một revision, một lần kiểm tra HTTPS công khai thành công, thời điểm của nó và một URL hợp lệ.
cd.js · deployPublished
apps/apilỗi · kết quả không xác định: unknown · cần đối soáttrạng thái operation · gắn runapi/product-store.jsKết quả không thể biết được giữ là unknown; cùng lần apply đó không được gửi lại cũng không được hoàn tác.
Quan sát · không phải phán định
Chỉ số và probe không quyết định việc triển khai thành công. Giá trị thiếu, cũ và thu thập thất bại được hiển thị đúng như vậy.
metrics observer
apps/apiquan sát: Truy vấn PromQLPrometheusĐọc các chuỗi up, probe_success và Pod. Giá trị thiếu, cũ hoặc thu thập thất bại được hiển thị đúng trạng thái đó và không bao giờ bị biến thành 0.
Prometheusquan sát: scrape · probeworkload · Service
Cụm ứng dụng K3sScrape exporter và HTTP probe. Các chỉ số này không được dùng để quyết định triển khai thành công.
trạng thái operation · gắn run
api/product-store.jsquan sát: trạng thái triển khai · lịch sửmàn hình web · lịch sử · Insightsapps/dashboardMàn hình web và các công cụ MCP đọc cùng các bản ghi operation. Lần thử gần nhất và lần triển khai đã kiểm chứng hiện tại được hiển thị riêng, và một tác vụ AI đã xong không phải là triển khai thành công.
probe HTTPS công khai
gitops/bridge.pyquan sát: HTTPS healthURL HTTPS công khaiChỉ kiểm tra địa chỉ health HTTPS do người vận hành đăng ký, không theo redirect, để xem có 200 (và JSON mong đợi nếu được đặt).
Mọi kết nối có cùng độ đậm. Chọn một luồng để chỉ làm nổi bật đường đi của nó, kèm các bước được đánh số.
- Nét liền · hướng đi của nguồn, image và yêu cầu
- Nét đứt · yêu cầu chạy, áp dụng hoặc sync
- Nét gạch chấm dài · đọc trạng thái, probe và chỉ số, tách khỏi phán định
- Nét gạch ngắn · lỗi đã ghi hoặc kết quả không xác định
- Nét đen đậm · luồng được chọn; số chỉ thứ tự
- Hộp · một ranh giới sở hữu, đường dẫn nguồn ở phần đầu
- Chip bên trong · một thành phần trong ranh giới đó
- Hộp nét đứt · bên ngoài nền tảng
- Viền cam · nơi một mô hình quyết định
- API sản phẩm
- Bản ghi triển khai
- Ranh giới thực thi CD
- Đầu vào · CI · đích
Hình October 2 (bc61a5a) trong docs/architecture/README.md là lịch sử hiện thực; kiến trúc này theo mã 645e28a. Nhà cung cấp và đường mạng khác nhau theo đích đã đăng ký, và điều này không có nghĩa mọi nhà cung cấp luôn được bật.