RAILSHOT.
العودة إلى القاعة

Railshot

AI deployment & operations platform

نشر تطبيق ويب مبني محليًا على بيئات سحابية ومحلية مُعدّة، ثم تشغيله.

منصة نشر وتشغيل بالذكاء الاصطناعي تنقل تطبيق ويب مبنيًا محليًا إلى بيئات سحابية أو محلية مُعدّة وتواصل تشغيله.

2026.09.28 — 2026.10.04 · مكتمل

مشروع جماعي · دوري: تخطيط CI وتطبيقه، وعناقيد CSP وواجهة Ansible، والتشغيل، ومراجعة شيفرة الفريق والتكامل

SoftBank Hackathon 2026 powered by KOREC & Progateمشارك في التصفيات · يُعلن اختيار النهائيات في 2026.10.26 (حتى 2026.10.07)

  • الويبمُطبَّق · هاكاثون
  • خادم MCPمُطبَّق · بعيد · محلي

Railshot vocabulary

Lens
Deployment
Delivery
Endpoint Verification
Evidence
Artifact Identity
Reconciliation
  1. intake
  2. checks
  3. repair
  4. publish
  5. rollout
  1. route
  2. probe
  1. source commit
  2. digest
  3. binding
  1. unknown
  2. resume
  3. 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

تطلب شاشة الويب والوكيل الخاص النشرَ عبر API المنتج نفسه.

المنتج من طلب نشر مقبول، مرورًا بفحوص CI ونشر الصورة، وصولًا إلى إعداد Git وطرح Argo CD على هدف مسجّل والتحقق من HTTPS العام. ولا يُسجَّل النجاح إلا بوجود revision مطبّقة وفحص عام معًا، والنتيجة التي يتعذر معرفتها تبقى unknown.

يُقدَّم المشروع من شاشة الويب أو من وكيل ذكاء اصطناعي خاص متصل عبر MCP، فتمضي المنصة عبر تحضير ملفات النشر، وإصلاح الإخفاقات، ونشر الصورة، والطرح في البيئة، والتحقق من عنوان URL العام، وبعد النشر تعرض الشاشة نفسها تاريخ النشر والسجلات وتدير التحديثات والإيقاف والاستئناف والحذف. مشروع جماعي.

فترة التطوير في المسابقة September 28, 2026 to October 4, 2026

شاشة الويب وخادم MCP المبنيان خلال الهاكاثون. يسجّل MCP البعيد الدخول عبر OAuth للإرسال، وتُرسل المجلدات المحلية عبر MCP المحلي.

بنية المنتج · مرسومة من مسارات الشيفرة عند الإيداع العام 645e28a
بنية منتج Railshotمكونات منتج Railshot وصلاته. تطلب شاشة الويب وOAuth MCP البعيد وMCP المحلي على حاسوب المستخدم النشرَ عبر API المنتج نفسه، الذي يسجّل إيداع المصدر وتشغيل CI. ويحسم CI بفحوص ثابتة وينشر الصور المفحوصة إلى GHCR. ولا يطبّق محوّل CD عبر config Git وArgo CD إلا حين يطابق الهدف المسجّل سجل النشر، ثم يفحص عنوان HTTPS العام المسجّل ويسجّل النتيجة. والمقاييس ملاحظة منفصلة عن الحكم.مستخدم المتصفحمجلد · ZIP · GitHub URLعميل MCPChatGPT · Codex · Clauderailshot-local MCPحاسوب المستخدم · stdioGHCRصور بحسب digestAI SDK providerCodex · Claude SDKمستودع Git للإعدادworkload.json المسجّلعنوان HTTPS URL العاممسار health المسجّلPrometheusVM التحكم في التشغيل · قراءةapps/dashboardشاشة الويب · السجل · Insightsagent/remote-mcp.jsOAuth MCP · deploy_repositoryapps/apiالتحقق · الهدف · قبول 202طابور النشر · 3 في وقت واحدربط تشغيل CI · مراقبةcd.js · deployPublishedmetrics observerapi/product-store.jsحالة operation · ربط rungitops/bridge.pyconfig موثوق · هدف مسجّلcommit · push · قراءة بعيدة للتحققArgo sync · مراقبةprobe لـ HTTPS العامArgo CDفحص Application · AppProjectapps/<tenant>/<app>إيداع المصدر · trailersrailshot-deploy.ymlloop · الفحوص الأساسية L0–L3إصلاح SDK · الإخفاقات القابلة للإصلاح فقطالفحوص نفسها → bundle مُختبَرrelease · النشر إلى GHCR · الربطعنقود تطبيقات K3sworkload · Serviceمنصة Railshotعنقود التشغيل · AWSGitHubمستودع apps خاص · Actionsالهدف المسجّلمسار عام لكل مزوّد1 مجلد · ZIP · GitHub URL · مستخدم المتصفح → شاشة الويب · السجل · Insights12API المنتج نفسه · /api/v13 OAuth · deploy_repository · عميل MCP → OAuth MCP · deploy_repository34API المنتج نفسه5 رفع ZIP · deploy_local_project · railshot-local MCP → التحقق · الهدف · قبول 20256 سُجّل queued · 202 · التحقق · الهدف · قبول 202 → حالة operation · ربط run67 ترتيب الطابور · حالة operation · ربط run → طابور النشر · 3 في وقت واحد78حالة النشر · السجل1source commit2workflow_dispatch3الإيداع المُرسَل4طلب إصلاح · مشروط5نشر الصور المفحوصة6التشغيل · قراءة النشر7 failed · publication_unverified · ربط تشغيل CI · مراقبة → حالة operation · ربط run71images.json · spec · verdict · manifest2تطبيق · هدف مسجّل3workload commit · push4revision5sync · مراقبة6تطبيق7سحب الصورة · digest8HTTPS health9 المسار العام · عنوان HTTPS URL العام → workload · Service910 succeeded · revision · URL · cd.js · deployPublished → حالة operation · ربط run1011 unknown · يحتاج إلى مطابقة · cd.js · deployPublished → حالة operation · ربط run111استعلام PromQL2scrape · probe3حالة النشر · السجل4HTTPS health

الإرسال → القبول

تستدعي شاشة الويب وMCP البعيد وMCP المحلي API المنتج نفسه، الذي يسجّل الطلب المفحوص بوصفه queued ويجيب بـ 202.

  1. مستخدم المتصفحبيانات: مجلد · ZIP · GitHub URLشاشة الويب · السجل · Insightsapps/dashboard

    يُختار المصدر وبيئة مسجّلة على شاشة الويب.

  2. شاشة الويب · السجل · Insightsapps/dashboardبيانات: API المنتج نفسه · /api/v1التحقق · الهدف · قبول 202apps/api

    تستدعي شاشة الويب API المنتج من الأصل نفسه.

  3. عميل MCPبيانات: OAuth · deploy_repositoryOAuth MCP · deploy_repositoryagent/remote-mcp.js

    يتصل MCP البعيد عبر OAuth ويأخذ مستودع GitHub عامًا مُدخلًا.

  4. OAuth MCP · deploy_repositoryagent/remote-mcp.jsبيانات: API المنتج نفسهالتحقق · الهدف · قبول 202apps/api

    يستدعي خادم MCP البعيد API النشر نفسه عبر عميل API الداخلي الخاص به.

  5. railshot-local MCPبيانات: رفع ZIP · deploy_local_projectالتحقق · الهدف · قبول 202apps/api

    يضغط stdio MCP على حاسوب المستخدم مجلدًا في ZIP ويرفعه. ولا تُشارك جلسته مع جلسة OAuth البعيدة.

  6. التحقق · الهدف · قبول 202apps/apiبيانات: سُجّل queued · 202حالة operation · ربط runapi/product-store.js

    تُفحص المُدخلات والهدف المسجّل والسعة ومفتاح idempotency، وتُسجَّل operation بوصفها queued ويُجاب بـ 202. و202 يعني القبول، لا النشر.

  7. حالة operation · ربط runapi/product-store.jsبيانات: ترتيب الطابورطابور النشر · 3 في وقت واحدapps/api

    تُؤخذ بترتيب القبول، ضمن حد النشر المتزامن (3 افتراضيًا).

  8. حالة operation · ربط runapi/product-store.jsملاحظة: حالة النشر · السجلشاشة الويب · السجل · Insightsapps/dashboard

    تقرأ شاشة الويب وأدوات MCP سجلات operation نفسها. وتُعرض أحدث محاولة والنشر المُتحقَّق منه الحالي كلٌّ على حدة، واكتمال مهمة الذكاء الاصطناعي ليس نجاحًا للنشر.

فحوص CI → نشر الصورة

تفحص شيفرة المنصة المثبّتة الإيداعَ المُرسَل، ولا تُسلّم إلى الذكاء الاصطناعي إلا الإخفاقات القابلة للإصلاح، ولا تنشر إلا الصور التي اجتازت الفحوص نفسها مجددًا.

  1. طابور النشر · 3 في وقت واحدapps/apiبيانات: source commitإيداع المصدر · trailersapps/<tenant>/<app>

    يصبح المصدر المُرسَل إيداعًا في مستودع apps الخاص (مع Railshot-Request وRailshot-Target بوصفهما trailers)، ويُحدَّث الفرع دون force.

  2. طابور النشر · 3 في وقت واحدapps/apiتشغيل · تطبيق: workflow_dispatchloop · الفحوص الأساسية L0–L3railshot-deploy.yml

    يطلب تشغيلًا بـ tenant وapp وsource_commit وtarget_id. وإن فُقدت الاستجابة لا يُعاد الإرسال، بل يُبحث عن تشغيلات الإيداع نفسه.

  3. إيداع المصدر · trailersapps/<tenant>/<app>بيانات: الإيداع المُرسَلloop · الفحوص الأساسية L0–L3railshot-deploy.yml

    لا يُجلب في checkout إلا الإيداع المُرسَل وشيفرة المنصة المثبّتة (PLATFORM_REF).

  4. إصلاح SDK · الإخفاقات القابلة للإصلاح فقطrailshot-deploy.ymlبيانات: طلب إصلاح · مشروطAI SDK provider

    لا يُستدعى إلا لفئات الإخفاق القابلة للإصلاح، ويتوقف حين يتكرر الإخفاق نفسه أو يُبلغ حد المحاولات. والفحوص هي التي تحسم النجاح أو الإخفاق، لا LLM.

  5. release · النشر إلى GHCR · الربطrailshot-deploy.ymlبيانات: نشر الصور المفحوصةGHCR

    بعد التحقق من bundle الذي اجتاز الفحوص، تُنشر الصور نفسها إلى GHCR. ولا يُعاد بناء أي شيء.

  6. ربط تشغيل CI · مراقبةapps/apiملاحظة: التشغيل · قراءة النشرrailshot-deploy.yml

    لا يُحتسب النشر إلا حين يطابق run id وsource commit وtarget وapp السجلَّ المقبول.

  7. ربط تشغيل CI · مراقبةapps/apiإخفاق · نتيجة غير معروفة: failed · publication_unverifiedحالة operation · ربط runapi/product-store.js

    يُسجَّل إخفاق CI أو النشر غير المُتحقَّق منه مع تشخيصات، ولا يُمرَّر إلى CD.

التطبيق → الفحص العام

لا يطبّق عبر config Git وArgo CD إلا حين يطابق النشرُ الهدفَ المسجّل، ولا يسجّل النجاح إلا بعد اجتياز عنوان HTTPS العام المسجّل للفحص.

  1. release · النشر إلى GHCR · الربطrailshot-deploy.ymlبيانات: images.json · spec · verdict · manifestcd.js · deployPublishedapps/api

    يقرأ CD ملفات سجل النشر عبر loader موثوق. ولا ينشئ CI بنفسه أي مورد عنقود أو URL أو نجاح نشر.

  2. cd.js · deployPublishedapps/apiتشغيل · تطبيق: تطبيق · هدف مسجّلconfig موثوق · هدف مسجّلgitops/bridge.py

    لا يشغّل gitops/bridge.py بالـ config الموثوق إلا حين يطابق app وtenant المسجّلان سجل النشر.

  3. commit · push · قراءة بعيدة للتحققgitops/bridge.pyبيانات: workload commit · pushمستودع Git للإعداد

    لا يودِع إلا workload.json في المسار المسجّل لفرع مخصص، ويسجّل نية push أولًا، ثم ينفّذ push ويعيد قراءة revision البعيدة للتحقق. ولا يُكرَّر push غير المؤكد.

  4. مستودع Git للإعدادبيانات: revisionفحص Application · AppProjectArgo CD

    revision مستودع config التي يشير إليها Argo CD Application.

  5. Argo sync · مراقبةgitops/bridge.pyتشغيل · تطبيق: sync · مراقبةفحص Application · AppProjectArgo CD

    يطلب sync بعد فحص AppProject، أما المراقبة فقراءة فقط، دون sync.

  6. فحص Application · AppProjectArgo CDتشغيل · تطبيق: تطبيقworkload · Serviceعنقود تطبيقات K3s

    يطبّق workload على عنقود الهدف المسجّل.

  7. workload · Serviceعنقود تطبيقات K3sبيانات: سحب الصورة · digestGHCR

    يسحب الـ digest المنشور. ويحتاج GHCR الخاص إلى بيانات اعتماد pull مخصصة.

  8. probe لـ HTTPS العامgitops/bridge.pyملاحظة: HTTPS healthعنوان HTTPS URL العام

    لا يفحص إلا عنوان HTTPS health الذي سجّله المشغّل، دون إعادة توجيه، بحثًا عن 200 (وعن JSON المتوقع إن حُدّد).

  9. عنوان HTTPS URL العامبيانات: المسار العامworkload · Serviceعنقود تطبيقات K3s

    يختلف المسار العام (LB وNodePort والشهادة) حسب المزوّد والهدف المسجّل.

  10. cd.js · deployPublishedapps/apiبيانات: succeeded · revision · URLحالة operation · ربط runapi/product-store.js

    لا يُسجَّل بوصفه succeeded إلا مع cd.deployed، وrevision، وفحص HTTPS عام ناجح، ووقته، وURL صالح.

  11. cd.js · deployPublishedapps/apiإخفاق · نتيجة غير معروفة: unknown · يحتاج إلى مطابقةحالة operation · ربط runapi/product-store.js

    النتيجة التي يتعذر معرفتها تبقى unknown، ولا يُعاد إرسال التطبيق نفسه ولا يُتراجع عنه.

ملاحظة · ليست الحكم

لا تحسم المقاييس وprobes نجاح النشر. وتُعرض القيم المفقودة والقديمة والفاشلة كما هي.

  1. metrics observerapps/apiملاحظة: استعلام PromQLPrometheus

    يقرأ سلاسل up وprobe_success وPod. وتُعرض القيم المفقودة أو القديمة أو الفاشلة على حالها، ولا تُحوَّل إلى 0 أبدًا.

  2. Prometheusملاحظة: scrape · probeworkload · Serviceعنقود تطبيقات K3s

    scrape من exporter وHTTP probe. ولا تُستخدم هذه المقاييس لحسم نجاح النشر.

  3. حالة operation · ربط runapi/product-store.jsملاحظة: حالة النشر · السجلشاشة الويب · السجل · Insightsapps/dashboard

    تقرأ شاشة الويب وأدوات MCP سجلات operation نفسها. وتُعرض أحدث محاولة والنشر المُتحقَّق منه الحالي كلٌّ على حدة، واكتمال مهمة الذكاء الاصطناعي ليس نجاحًا للنشر.

  4. probe لـ HTTPS العامgitops/bridge.pyملاحظة: HTTPS healthعنوان HTTPS URL العام

    لا يفحص إلا عنوان HTTPS health الذي سجّله المشغّل، دون إعادة توجيه، بحثًا عن 200 (وعن JSON المتوقع إن حُدّد).

كل الروابط بالسماكة نفسها. اختر مسارًا لإبراز طريقه وحده، مع خطوات مرقّمة.

  • خط متصل · اتجاه تدفق المصدر والصور والطلبات
  • خط متقطع · طلب تشغيل أو تطبيق أو sync
  • شرطة طويلة ونقطة · قراءات الحالة وprobes والمقاييس، بمعزل عن الحكم
  • شرطة قصيرة · إخفاق مسجّل أو نتيجة unknown
  • خط أسود سميك · المسار المختار، والأرقام تبيّن الترتيب
  • مربع · حدّ مالك، ومسار مصدره في الترويسة
  • شريحة داخلية · مكوّن داخل ذلك الحد
  • مربع متقطع · خارج المنصة
  • إطار برتقالي · حيث يقرر نموذج
  • API المنتج
  • سجلات النشر
  • حدود تنفيذ CD
  • الدخول · CI · الهدف

صورة October 2 (bc61a5a) في docs/architecture/README.md تاريخ تطبيق، وهذه البنية تتبع شيفرة 645e28a. وتختلف المزوّدات ومسارات الشبكة حسب الهدف المسجّل، ولا يعني هذا أن كل مزوّد يعمل دائمًا.