RAILSHOT.
Salona dön

Railshot

AI deployment & operations platform

Yerelde geliştirilen bir web uygulamasını hazır bulut ve şirket içi ortamlara dağıtmak, sonra işletmek.

Yerelde geliştirilen bir web uygulamasını hazır bulut ya da şirket içi ortamlara taşıyan ve işletmeyi sürdüren bir yapay zekâ dağıtım ve operasyon platformu.

2026.09.28 — 2026.10.04 · Tamamlandı

Ekip projesi · benim payım: CI planlama ve uygulaması, CSP kümeleri ve Ansible arayüzü, operasyonlar, ekip kod incelemesi ve entegrasyon

SoftBank Hackathon 2026 powered by KOREC & ProgateÖn eleme katılımcısı · final seçimi 2026.10.26 tarihinde açıklanacak (2026.10.07 itibarıyla)

  • WebUygulandı · hackathon
  • MCP sunucusuUygulandı · uzak · yerel

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

Web ekranı ve kişisel ajan, dağıtımı aynı ürün API'si üzerinden ister.

Kabul edilen bir dağıtım isteğinden CI kontrolleri ve image yayımına, oradan kayıtlı bir hedefte Git yapılandırması ve Argo CD yayılımına ve herkese açık HTTPS doğrulamasına uzanan ürün. Başarı yalnızca hem uygulanmış bir revision hem de herkese açık bir kontrol varsa kaydedilir; bilinemeyen bir sonuç unknown olarak kalır.

Bir proje web ekranından ya da MCP ile bağlanan kişisel bir yapay zekâ ajanından gönderilir; platform dağıtım dosyalarının hazırlanmasından hata onarımına, image yayımlamaya, ortama yayılıma ve herkese açık URL doğrulamasına kadar ilerler. Dağıtımdan sonra aynı ekran geçmişi ve günlükleri gösterir; güncelleme, durdurma, sürdürme ve silmeyi yönetir. Bir ekip projesi.

Etkinlik geliştirme dönemi September 28, 2026 to October 4, 2026

Hackathon sırasında yapılan web ekranı ve MCP sunucusu. Uzak MCP göndermek için OAuth ile oturum açar; yerel klasörler yerel MCP üzerinden gönderilir.

Ürün mimarisi · herkese açık 645e28a commit'indeki kod yollarından çizildi
Railshot ürün mimarisiRailshot ürününün bileşenleri ve bağlantıları. Web ekranı, uzak OAuth MCP ve kullanıcının bilgisayarındaki yerel MCP, dağıtımı aynı ürün API'si üzerinden ister; API bir kaynak commit'i ve bir CI çalıştırmasını kaydeder. CI sabit kontrollerle karar verir ve kontrol edilmiş image'ları GHCR'a yayımlar. CD adaptörü yalnızca kayıtlı hedef yayın kaydıyla eşleştiğinde config Git ve Argo CD üzerinden uygular, ardından kayıtlı herkese açık HTTPS adresini kontrol eder ve sonucu kaydeder. Metrikler hükümden ayrı bir gözlemdir.Tarayıcı kullanıcısıklasör · ZIP · GitHub URLMCP istemcisiChatGPT · Codex · Clauderailshot-local MCPkullanıcının bilgisayarı · stdioGHCRdigest'e göre image'larAI SDK providerCodex · Claude SDKConfig Git deposukayıtlı workload.jsonHerkese açık HTTPS URL'sikayıtlı health yoluPrometheusoperasyon kontrol VM'i · okumaapps/dashboardweb ekranı · geçmiş · Insightsagent/remote-mcp.jsOAuth MCP · deploy_repositoryapps/apidoğrulama · hedef · 202 kabuldağıtım kuyruğu · aynı anda 3CI çalıştırması bağlama · gözlemcd.js · deployPublishedmetrics observerapi/product-store.jsoperation durumu · run bağlamagitops/bridge.pygüvenilir config · kayıtlı hedefcommit · push · uzaktan geri okumaArgo sync · gözlemherkese açık HTTPS probe'uArgo CDApplication · AppProject kontrolüapps/<tenant>/<app>kaynak commit · trailer'larrailshot-deploy.ymlloop · temel kontroller L0–L3SDK onarımı · yalnızca düzeltilebilir hatalaraynı kontroller → test edilmiş bundlerelease · GHCR yayını · bağlamaK3s uygulama kümesiworkload · ServiceRailshot platformuoperasyon kümesi · AWSGitHubözel apps deposu · ActionsKayıtlı hedefsağlayıcı başına herkese açık yol1 klasör · ZIP · GitHub URL · Tarayıcı kullanıcısı → web ekranı · geçmiş · Insights12aynı ürün API'si · /api/v13 OAuth · deploy_repository · MCP istemcisi → OAuth MCP · deploy_repository34aynı ürün API'si5 ZIP yükleme · deploy_local_project · railshot-local MCP → doğrulama · hedef · 202 kabul56 queued kaydedildi · 202 · doğrulama · hedef · 202 kabul → operation durumu · run bağlama67 kuyruk sırası · operation durumu · run bağlama → dağıtım kuyruğu · aynı anda 378dağıtım durumu · geçmiş1source commit2workflow_dispatch3gönderilen commit4onarım isteği · koşullu5kontrol edilmiş image'ları yayımla6çalıştırma · yayın okuma7 failed · publication_unverified · CI çalıştırması bağlama · gözlem → operation durumu · run bağlama71images.json · spec · verdict · manifest2apply · kayıtlı hedef3workload commit · push4revision5sync · gözlem6uygula7image pull · digest8HTTPS health9 herkese açık yol · Herkese açık HTTPS URL'si → workload · Service910 succeeded · revision · URL · cd.js · deployPublished → operation durumu · run bağlama1011 unknown · mutabakat gerekli · cd.js · deployPublished → operation durumu · run bağlama111PromQL sorgusu2scrape · probe3dağıtım durumu · geçmiş4HTTPS health

Gönder → kabul

Web ekranı, uzak MCP ve yerel MCP aynı ürün API'sini çağırır; API kontrol edilmiş bir isteği queued olarak kaydeder ve 202 yanıtı verir.

  1. Tarayıcı kullanıcısıveri: klasör · ZIP · GitHub URLweb ekranı · geçmiş · Insightsapps/dashboard

    Kaynak ve kayıtlı bir ortam web ekranında seçilir.

  2. web ekranı · geçmiş · Insightsapps/dashboardveri: aynı ürün API'si · /api/v1doğrulama · hedef · 202 kabulapps/api

    Web ekranı ürün API'sini aynı kökenden çağırır.

  3. MCP istemcisiveri: OAuth · deploy_repositoryOAuth MCP · deploy_repositoryagent/remote-mcp.js

    Uzak MCP OAuth ile bağlanır ve girdi olarak herkese açık bir GitHub deposu alır.

  4. OAuth MCP · deploy_repositoryagent/remote-mcp.jsveri: aynı ürün API'sidoğrulama · hedef · 202 kabulapps/api

    Uzak MCP sunucusu aynı dağıtım API'sini kendi iç API istemcisiyle çağırır.

  5. railshot-local MCPveri: ZIP yükleme · deploy_local_projectdoğrulama · hedef · 202 kabulapps/api

    Kullanıcının bilgisayarındaki stdio MCP bir klasörü ZIP'leyip yükler. Oturumu uzak OAuth oturumuyla paylaşılmaz.

  6. doğrulama · hedef · 202 kabulapps/apiveri: queued kaydedildi · 202operation durumu · run bağlamaapi/product-store.js

    Girdi, kayıtlı hedef, kapasite ve idempotency anahtarı kontrol edilir; operation queued olarak kaydedilir ve 202 ile yanıtlanır. 202 kabul anlamına gelir, dağıtıldı anlamına gelmez.

  7. operation durumu · run bağlamaapi/product-store.jsveri: kuyruk sırasıdağıtım kuyruğu · aynı anda 3apps/api

    Eşzamanlı dağıtım sınırı (varsayılan 3) içinde kabul sırasına göre alınır.

  8. operation durumu · run bağlamaapi/product-store.jsgözlem: dağıtım durumu · geçmişweb ekranı · geçmiş · Insightsapps/dashboard

    Web ekranı ve MCP araçları aynı operation kayıtlarını okur. Son deneme ile güncel doğrulanmış dağıtım ayrı gösterilir; tamamlanmış bir yapay zekâ görevi dağıtım başarısı değildir.

CI kontrolleri → image yayını

Sabitlenmiş platform kodu gönderilen commit'i kontrol eder, yalnızca düzeltilebilir hataları yapay zekâya devreder ve yalnızca aynı kontrollerden yeniden geçen image'ları yayımlar.

  1. dağıtım kuyruğu · aynı anda 3apps/apiveri: source commitkaynak commit · trailer'larapps/<tenant>/<app>

    Gönderilen kaynak, özel apps deposunda bir commit'e dönüşür (Railshot-Request ve Railshot-Target trailer'larıyla) ve dal force olmadan güncellenir.

  2. dağıtım kuyruğu · aynı anda 3apps/apiçalıştırma · uygulama: workflow_dispatchloop · temel kontroller L0–L3railshot-deploy.yml

    tenant, app, source_commit ve target_id ile bir çalıştırma ister. Yanıt kaybolursa yeniden gönderilmez; bunun yerine aynı commit'in çalıştırmaları aranır.

  3. kaynak commit · trailer'larapps/<tenant>/<app>veri: gönderilen commitloop · temel kontroller L0–L3railshot-deploy.yml

    Yalnızca gönderilen commit ve sabitlenmiş platform kodu (PLATFORM_REF) checkout edilir.

  4. SDK onarımı · yalnızca düzeltilebilir hatalarrailshot-deploy.ymlveri: onarım isteği · koşulluAI SDK provider

    Yalnızca düzeltilebilir hata sınıflarında çağrılır; aynı hata tekrarlandığında ya da deneme sınırına ulaşıldığında durdurulur. Geçti ya da kaldı kararını LLM değil, kontroller verir.

  5. release · GHCR yayını · bağlamarailshot-deploy.ymlveri: kontrol edilmiş image'ları yayımlaGHCR

    Kontrollerden geçen bundle doğrulandıktan sonra aynı image'lar GHCR'a yayımlanır. Hiçbir şey yeniden derlenmez.

  6. CI çalıştırması bağlama · gözlemapps/apigözlem: çalıştırma · yayın okumarailshot-deploy.yml

    Bir yayın, ancak run id, source commit, target ve app kabul edilen kayıtla eşleştiğinde sayılır.

  7. CI çalıştırması bağlama · gözlemapps/apihata · bilinmeyen sonuç: failed · publication_unverifiedoperation durumu · run bağlamaapi/product-store.js

    Bir CI hatası ya da doğrulanmamış bir yayın tanılamalarla kaydedilir ve CD'ye aktarılmaz.

Uygula → herkese açık kontrol

Yalnızca yayın kayıtlı hedefle eşleştiğinde config Git ve Argo CD üzerinden uygular; başarıyı ancak kayıtlı herkese açık HTTPS adresi kontrolden geçtikten sonra kaydeder.

  1. release · GHCR yayını · bağlamarailshot-deploy.ymlveri: images.json · spec · verdict · manifestcd.js · deployPublishedapps/api

    CD, yayın kaydının dosyalarını güvenilir bir loader ile okur. CI'ın kendisi hiçbir küme kaynağı, URL ya da dağıtım başarısı oluşturmaz.

  2. cd.js · deployPublishedapps/apiçalıştırma · uygulama: apply · kayıtlı hedefgüvenilir config · kayıtlı hedefgitops/bridge.py

    gitops/bridge.py'ı güvenilir config ile yalnızca kayıtlı app ve tenant yayın kaydıyla eşleştiğinde çalıştırır.

  3. commit · push · uzaktan geri okumagitops/bridge.pyveri: workload commit · pushConfig Git deposu

    Ayrılmış bir dalın kayıtlı yoluna yalnızca workload.json'u commit'ler, önce push niyetini kaydeder, push eder ve uzak revision'ı geri okur. Belirsiz bir push tekrarlanmaz.

  4. Config Git deposuveri: revisionApplication · AppProject kontrolüArgo CD

    Argo CD Application'ın işaret ettiği config deposu revision'ı.

  5. Argo sync · gözlemgitops/bridge.pyçalıştırma · uygulama: sync · gözlemApplication · AppProject kontrolüArgo CD

    AppProject'i kontrol ettikten sonra sync ister; gözlem sync olmadan yalnızca okur.

  6. Application · AppProject kontrolüArgo CDçalıştırma · uygulama: uygulaworkload · ServiceK3s uygulama kümesi

    Workload'u kayıtlı hedef kümeye uygular.

  7. workload · ServiceK3s uygulama kümesiveri: image pull · digestGHCR

    Yayımlanan digest'i çeker. Özel bir GHCR için ayrılmış bir pull kimlik bilgisi gerekir.

  8. herkese açık HTTPS probe'ugitops/bridge.pygözlem: HTTPS healthHerkese açık HTTPS URL'si

    Yalnızca operatörün kaydettiği HTTPS health adresini, yönlendirme olmadan, 200 (ve ayarlanmışsa beklenen JSON) için kontrol eder.

  9. Herkese açık HTTPS URL'siveri: herkese açık yolworkload · ServiceK3s uygulama kümesi

    Herkese açık yol (LB, NodePort, sertifika) sağlayıcıya ve kayıtlı hedefe göre değişir.

  10. cd.js · deployPublishedapps/apiveri: succeeded · revision · URLoperation durumu · run bağlamaapi/product-store.js

    Yalnızca cd.deployed, bir revision, başarılı bir herkese açık HTTPS kontrolü, zamanı ve geçerli bir URL varsa succeeded olarak kaydedilir.

  11. cd.js · deployPublishedapps/apihata · bilinmeyen sonuç: unknown · mutabakat gereklioperation durumu · run bağlamaapi/product-store.js

    Bilinemeyen bir sonuç unknown olarak kalır; aynı apply ne yeniden gönderilir ne de geri alınır.

Gözlem · hüküm değil

Metrikler ve probe'lar dağıtım başarısına karar vermez. Eksik, eski ve başarısız değerler olduğu gibi gösterilir.

  1. metrics observerapps/apigözlem: PromQL sorgusuPrometheus

    up, probe_success ve Pod serilerini okur. Eksik, eski ya da başarısız değerler o durumlarıyla gösterilir ve asla 0'a çevrilmez.

  2. Prometheusgözlem: scrape · probeworkload · ServiceK3s uygulama kümesi

    Exporter scrape'i ve HTTP probe'u. Bu metrikler dağıtım başarısına karar vermek için kullanılmaz.

  3. operation durumu · run bağlamaapi/product-store.jsgözlem: dağıtım durumu · geçmişweb ekranı · geçmiş · Insightsapps/dashboard

    Web ekranı ve MCP araçları aynı operation kayıtlarını okur. Son deneme ile güncel doğrulanmış dağıtım ayrı gösterilir; tamamlanmış bir yapay zekâ görevi dağıtım başarısı değildir.

  4. herkese açık HTTPS probe'ugitops/bridge.pygözlem: HTTPS healthHerkese açık HTTPS URL'si

    Yalnızca operatörün kaydettiği HTTPS health adresini, yönlendirme olmadan, 200 (ve ayarlanmışsa beklenen JSON) için kontrol eder.

Her bağlantı aynı kalınlıkta. Yalnızca yolunu numaralı adımlarla vurgulamak için bir akış seçin.

  • Düz çizgi · kaynağın, image'ların ve isteklerin akış yönü
  • Kesikli · çalıştırma isteği, uygulama ya da sync
  • Uzun çizgi-nokta · durum okumaları, probe'lar ve metrikler, hükümden ayrı
  • Kısa kesik · kaydedilmiş bir hata ya da unknown sonuç
  • Kalın siyah çizgi · seçilen akış; numaralar sırayı verir
  • Kutu · sahip olan bir sınır, başlığında kaynak yolu
  • İç çip · o sınırın içindeki bir bileşen
  • Kesikli kutu · platformun dışı
  • Turuncu çerçeve · bir modelin karar verdiği yer
  • Ürün API'si
  • Dağıtım kayıtları
  • CD yürütme sınırı
  • Giriş · CI · hedef

docs/architecture/README.md'deki October 2 (bc61a5a) çizimi uygulama geçmişidir; bu mimari 645e28a kodunu izler. Sağlayıcılar ve ağ yolları kayıtlı hedefe göre değişir; bu, her sağlayıcının her zaman açık olduğu anlamına gelmez.