RAILSHOT.
Späť do sály

Railshot

AI deployment & operations platform

Nasadiť lokálne vytvorenú webovú aplikáciu do pripravených cloudových a on-premises prostredí a potom ju prevádzkovať.

Platforma AI na nasadenie a prevádzku, ktorá prevedie lokálne vytvorenú webovú aplikáciu do pripravených cloudových alebo on-premises prostredí a ďalej ju prevádzkuje.

2026.09.28 — 2026.10.04 · Ukončené

Tímový projekt · môj podiel: plánovanie a implementácia CI, klastre CSP a rozhranie Ansible, prevádzka, revízia kódu tímu a integrácia

SoftBank Hackathon 2026 powered by KOREC & ProgateÚčastník predkola · výber finalistov bude oznámený 2026.10.26 (stav k 2026.10.07)

  • WebImplementované · hackathon
  • Server MCPImplementované · vzdialene · lokálne

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

Webová obrazovka aj vlastný agent žiadajú o nasadenie cez to isté API produktu.

Produkt od prijatej požiadavky na nasadenie cez kontroly CI a publikovanie obrazu až po konfiguráciu Git a nasadenie cez Argo CD na registrovanom cieli a overenie verejného HTTPS. Úspech sa zaznamená len s aplikovanou revíziou aj verejnou kontrolou; výsledok, ktorý sa nedá zistiť, zostáva unknown.

Projekt odoslaný z webovej obrazovky alebo z vlastného agenta AI pripojeného cez MCP prejde prípravou súborov na nasadenie, opravou zlyhaní, publikovaním obrazu, nasadením do prostredia a overením verejnej URL; po nasadení tá istá obrazovka ukazuje históriu a logy a spravuje aktualizácie, zastavenie, obnovenie a zmazanie. Tímový projekt.

Vývojové obdobie súťaže September 28, 2026 to October 4, 2026

Webová obrazovka a server MCP vytvorené počas hackathonu. Vzdialené MCP sa prihlasuje cez OAuth a odosiela projekt; lokálne priečinky sa odosielajú cez lokálne MCP.

Architektúra produktu · nakreslené podľa ciest kódu vo verejnom commite 645e28a
Architektúra produktu RailshotKomponenty a spojenia produktu Railshot. Webová obrazovka, vzdialené MCP s OAuth a lokálne MCP na počítači používateľa žiadajú o nasadenie cez to isté API produktu, ktoré zaregistruje zdrojový commit a beh CI. CI rozhoduje pevnými kontrolami a skontrolované obrazy publikuje do GHCR. Adaptér CD aplikuje zmeny cez config Git a Argo CD len vtedy, keď registrovaný cieľ zodpovedá záznamu o publikovaní, potom overí registrovanú verejnú adresu HTTPS a zaznamená výsledok. Metriky sú pozorovanie, oddelené od rozhodnutia.Používateľ prehliadačapriečinok · ZIP · URL GitHubKlient MCPChatGPT · Codex · Clauderailshot-local MCPpočítač používateľa · stdioGHCRobrazy podľa digestuAI SDK providerCodex · Claude SDKRepozitár Git s konfiguráciouregistrovaný workload.jsonVerejná adresa HTTPSregistrovaná cesta healthPrometheusprevádzková riadiaca VM · čítanieapps/dashboardwebová obrazovka · história · Insightsagent/remote-mcp.jsOAuth MCP · deploy_repositoryapps/apivalidácia · cieľ · prijatie 202front nasadení · 3 súčasneväzba behu CI · pozorovaniecd.js · deployPublishedmetrics observerapi/product-store.jsstav operácie · väzba behugitops/bridge.pydôveryhodná konfigurácia · registrovaný cieľcommit · push · vzdialené spätné čítaniesynchronizácia Argo · pozorovanieverejná sonda HTTPSArgo CDkontrola Application · AppProjectapps/<tenant>/<app>zdrojový commit · traileryrailshot-deploy.ymlslučka · základné kontroly L0–L3oprava cez SDK · len opraviteľné zlyhaniarovnaké kontroly → skontrolovaný bundlevydanie · publikovanie do GHCR · väzbaAplikačný klaster K3sworkload · ServicePlatforma Railshotprevádzkový klaster · AWSGitHubsúkromný repozitár apps · ActionsRegistrovaný cieľverejná cesta pre každého poskytovateľa1 priečinok · ZIP · URL GitHub · Používateľ prehliadača → webová obrazovka · história · Insights12to isté API produktu · /api/v13 OAuth · deploy_repository · Klient MCP → OAuth MCP · deploy_repository34to isté API produktu5 nahranie ZIP · deploy_local_project · railshot-local MCP → validácia · cieľ · prijatie 20256 zaznamenané ako queued · 202 · validácia · cieľ · prijatie 202 → stav operácie · väzba behu67 poradie vo fronte · stav operácie · väzba behu → front nasadení · 3 súčasne78stav nasadenia · história1source commit2workflow_dispatch3odoslaný commit4žiadosť o opravu · podmienečne5publikovanie skontrolovaných obrazov6čítanie behu · publikovania7 failed · publication_unverified · väzba behu CI · pozorovanie → stav operácie · väzba behu71images.json · spec · verdict · manifest2aplikácia · registrovaný cieľ3workload commit · push4revision5 synchronizácia · pozorovanie · synchronizácia Argo · pozorovanie → kontrola Application · AppProject56aplikácia7stiahnutie obrazu · digest8HTTPS health9 verejná cesta · Verejná adresa HTTPS → workload · Service910 succeeded · revision · URL · cd.js · deployPublished → stav operácie · väzba behu1011 unknown · potrebné zosúladenie · cd.js · deployPublished → stav operácie · väzba behu111dopyt PromQL2scrape · probe3stav nasadenia · história4HTTPS health

Odoslanie → prijatie

Webová obrazovka, vzdialené MCP aj lokálne MCP volajú to isté API produktu, ktoré skontrolovanú požiadavku zaznamená ako queued a odpovie 202.

  1. Používateľ prehliadačadáta: priečinok · ZIP · URL GitHubwebová obrazovka · história · Insightsapps/dashboard

    Zdroj a registrované prostredie sa volia na webovej obrazovke.

  2. webová obrazovka · história · Insightsapps/dashboarddáta: to isté API produktu · /api/v1validácia · cieľ · prijatie 202apps/api

    Webová obrazovka volá API produktu z toho istého originu.

  3. Klient MCPdáta: OAuth · deploy_repositoryOAuth MCP · deploy_repositoryagent/remote-mcp.js

    Vzdialené MCP sa pripája cez OAuth a ako vstup prijíma verejný repozitár GitHub.

  4. OAuth MCP · deploy_repositoryagent/remote-mcp.jsdáta: to isté API produktuvalidácia · cieľ · prijatie 202apps/api

    Vzdialený server MCP volá to isté API nasadenia cez svojho interného klienta API.

  5. railshot-local MCPdáta: nahranie ZIP · deploy_local_projectvalidácia · cieľ · prijatie 202apps/api

    MCP stdio na počítači používateľa zabalí priečinok do ZIP a nahrá ho. Jeho relácia sa so vzdialenou reláciou OAuth nezdieľa.

  6. validácia · cieľ · prijatie 202apps/apidáta: zaznamenané ako queued · 202stav operácie · väzba behuapi/product-store.js

    Kontroluje sa vstup, registrovaný cieľ, kapacita a kľúč idempotencie; operácia sa zaznamená ako queued a odpoveďou je 202. 202 znamená prijatie, nie nasadenie.

  7. stav operácie · väzba behuapi/product-store.jsdáta: poradie vo frontefront nasadení · 3 súčasneapps/api

    Odoberá sa v poradí prijatia, v rámci limitu súbežných nasadení (predvolene 3).

  8. stav operácie · väzba behuapi/product-store.jspozorovanie: stav nasadenia · históriawebová obrazovka · história · Insightsapps/dashboard

    Webová obrazovka aj nástroje MCP čítajú rovnaké záznamy operácií. Posledný pokus a aktuálne overené nasadenie sa zobrazujú osobitne a dokončená úloha AI neznamená úspešné nasadenie.

Kontroly CI → publikovanie obrazu

Pripnutý kód platformy skontroluje odoslaný commit, AI odovzdá len opraviteľné zlyhania a publikuje len obrazy, ktoré znova prešli rovnakými kontrolami.

  1. front nasadení · 3 súčasneapps/apidáta: source commitzdrojový commit · traileryapps/<tenant>/<app>

    Odoslaný zdroj sa stane commitom v súkromnom repozitári apps (s trailermi Railshot-Request a Railshot-Target) a vetva sa aktualizuje bez force.

  2. front nasadení · 3 súčasneapps/apispustenie · aplikácia: workflow_dispatchslučka · základné kontroly L0–L3railshot-deploy.yml

    Požiada o beh s tenant, app, source_commit a target_id. Ak sa odpoveď stratí, znova sa neposiela; namiesto toho sa vyhľadajú behy pre ten istý commit.

  3. zdrojový commit · traileryapps/<tenant>/<app>dáta: odoslaný commitslučka · základné kontroly L0–L3railshot-deploy.yml

    Checkoutuje sa len odoslaný commit a pripnutý kód platformy (PLATFORM_REF).

  4. oprava cez SDK · len opraviteľné zlyhaniarailshot-deploy.ymldáta: žiadosť o opravu · podmienečneAI SDK provider

    Volá sa len pre opraviteľné triedy zlyhaní a zastaví sa, keď sa rovnaké zlyhanie opakuje alebo sa dosiahne limit pokusov. O úspechu či neúspechu rozhodujú kontroly, nie LLM.

  5. vydanie · publikovanie do GHCR · väzbarailshot-deploy.ymldáta: publikovanie skontrolovaných obrazovGHCR

    Po overení bundlu, ktorý prešiel kontrolami, sa tie isté obrazy publikujú do GHCR. Nič sa znova nezostavuje.

  6. väzba behu CI · pozorovanieapps/apipozorovanie: čítanie behu · publikovaniarailshot-deploy.yml

    Publikovanie sa počíta len vtedy, keď jeho run id, zdrojový commit, cieľ a aplikácia zodpovedajú prijatému záznamu.

  7. väzba behu CI · pozorovanieapps/apizlyhanie · neznámy výsledok: failed · publication_unverifiedstav operácie · väzba behuapi/product-store.js

    Zlyhanie CI alebo neoverené publikovanie sa zaznamená s diagnostikou a do CD sa neodovzdá.

Aplikácia → verejná kontrola

Zmeny aplikuje cez config Git a Argo CD len vtedy, keď publikovanie zodpovedá registrovanému cieľu, a úspech zaznamená až po úspešnej kontrole registrovanej verejnej adresy HTTPS.

  1. vydanie · publikovanie do GHCR · väzbarailshot-deploy.ymldáta: images.json · spec · verdict · manifestcd.js · deployPublishedapps/api

    CD číta súbory záznamu o publikovaní cez dôveryhodný loader. Samotné CI nevytvára žiadny prostriedok klastra, URL ani úspech nasadenia.

  2. cd.js · deployPublishedapps/apispustenie · aplikácia: aplikácia · registrovaný cieľdôveryhodná konfigurácia · registrovaný cieľgitops/bridge.py

    Spustí gitops/bridge.py s dôveryhodnou konfiguráciou len vtedy, keď registrovaná aplikácia a tenant zodpovedajú záznamu o publikovaní.

  3. commit · push · vzdialené spätné čítaniegitops/bridge.pydáta: workload commit · pushRepozitár Git s konfiguráciou

    Commituje len workload.json v registrovanej ceste vyhradenej vetvy, najprv zaznamená zámer push, vykoná push a spätne prečíta vzdialenú revíziu. Neistý push sa neopakuje.

  4. Repozitár Git s konfigurácioudáta: revisionkontrola Application · AppProjectArgo CD

    Revízia repozitára konfigurácie, na ktorú ukazuje Application v Argo CD.

  5. synchronizácia Argo · pozorovaniegitops/bridge.pyspustenie · aplikácia: synchronizácia · pozorovaniekontrola Application · AppProjectArgo CD

    Po kontrole AppProject požiada o synchronizáciu; pozorovanie len číta, bez synchronizácie.

  6. kontrola Application · AppProjectArgo CDspustenie · aplikácia: aplikáciaworkload · ServiceAplikačný klaster K3s

    Aplikuje workload na registrovaný cieľový klaster.

  7. workload · ServiceAplikačný klaster K3sdáta: stiahnutie obrazu · digestGHCR

    Stiahne publikovaný digest. Súkromné GHCR vyžaduje vyhradené prihlasovacie údaje na sťahovanie.

  8. verejná sonda HTTPSgitops/bridge.pypozorovanie: HTTPS healthVerejná adresa HTTPS

    Kontroluje len operátorom registrovanú adresu HTTPS health, bez presmerovaní, na 200 (a očakávaný JSON, ak je nastavený).

  9. Verejná adresa HTTPSdáta: verejná cestaworkload · ServiceAplikačný klaster K3s

    Verejná cesta (LB, NodePort, certifikát) sa líši podľa poskytovateľa a registrovaného cieľa.

  10. cd.js · deployPublishedapps/apidáta: succeeded · revision · URLstav operácie · väzba behuapi/product-store.js

    Zaznamená sa ako succeeded len s cd.deployed, revíziou, úspešnou verejnou kontrolou HTTPS, jej časom a platnou URL.

  11. cd.js · deployPublishedapps/apizlyhanie · neznámy výsledok: unknown · potrebné zosúladeniestav operácie · väzba behuapi/product-store.js

    Výsledok, ktorý sa nedá zistiť, zostáva unknown; tá istá aplikácia sa znova neposiela ani nevracia späť.

Pozorovanie · nie rozhodnutie

Metriky a sondy o úspechu nasadenia nerozhodujú. Chýbajúce, zastarané a neúspešné hodnoty sa zobrazujú tak, ako sú.

  1. metrics observerapps/apipozorovanie: dopyt PromQLPrometheus

    Číta série up, probe_success a podov. Chýbajúce, zastarané alebo neúspešné hodnoty sa zobrazujú v tomto stave a nikdy sa nemenia na 0.

  2. Prometheuspozorovanie: scrape · probeworkload · ServiceAplikačný klaster K3s

    Scrape exportéra a sonda HTTP. Tieto metriky sa nepoužívajú na rozhodnutie o úspechu nasadenia.

  3. stav operácie · väzba behuapi/product-store.jspozorovanie: stav nasadenia · históriawebová obrazovka · história · Insightsapps/dashboard

    Webová obrazovka aj nástroje MCP čítajú rovnaké záznamy operácií. Posledný pokus a aktuálne overené nasadenie sa zobrazujú osobitne a dokončená úloha AI neznamená úspešné nasadenie.

  4. verejná sonda HTTPSgitops/bridge.pypozorovanie: HTTPS healthVerejná adresa HTTPS

    Kontroluje len operátorom registrovanú adresu HTTPS health, bez presmerovaní, na 200 (a očakávaný JSON, ak je nastavený).

Každé spojenie s rovnakou váhou. Výber toku zvýrazní len jeho cestu s očíslovanými krokmi.

  • Plná čiara · smer toku zdrojov, obrazov a požiadaviek
  • Prerušovaná čiara · požiadavka na spustenie, aplikácia alebo synchronizácia
  • Dlhá bodkočiarkovaná · čítanie stavu, sondy a metriky, oddelené od rozhodnutia
  • Krátka čiarka · zaznamenané zlyhanie alebo neznámy výsledok
  • Hrubá čierna čiara · zvolený tok; čísla udávajú poradie
  • Rámček · hranica vlastníctva, cesta k zdroju v hlavičke
  • Vnútorný štítok · komponent vnútri tejto hranice
  • Prerušovaný rámček · mimo platformy
  • Oranžový obrys · miesto, kde rozhoduje model
  • API produktu
  • Záznamy nasadení
  • Hranica vykonávania CD
  • Vstup · CI · cieľ

Obrázok z October 2 (bc61a5a) v docs/architecture/README.md je históriou implementácie; táto architektúra zodpovedá kódu 645e28a. Poskytovatelia a sieťové cesty sa líšia podľa registrovaného cieľa, čo neznamená, že je každý poskytovateľ vždy zapnutý.