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.
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
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.
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.
Používateľ prehliadačadáta: priečinok · ZIP · URL GitHubwebová obrazovka · história · Insights
apps/dashboardZdroj a registrované prostredie sa volia na webovej obrazovke.
webová obrazovka · história · Insights
apps/dashboarddáta: to isté API produktu · /api/v1validácia · cieľ · prijatie 202apps/apiWebová obrazovka volá API produktu z toho istého originu.
Klient MCPdáta: OAuth · deploy_repositoryOAuth MCP · deploy_repository
agent/remote-mcp.jsVzdialené MCP sa pripája cez OAuth a ako vstup prijíma verejný repozitár GitHub.
OAuth MCP · deploy_repository
agent/remote-mcp.jsdáta: to isté API produktuvalidácia · cieľ · prijatie 202apps/apiVzdialený server MCP volá to isté API nasadenia cez svojho interného klienta API.
railshot-local MCPdáta: nahranie ZIP · deploy_local_projectvalidácia · cieľ · prijatie 202
apps/apiMCP 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.
validácia · cieľ · prijatie 202
apps/apidáta: zaznamenané ako queued · 202stav operácie · väzba behuapi/product-store.jsKontroluje sa vstup, registrovaný cieľ, kapacita a kľúč idempotencie; operácia sa zaznamená ako queued a odpoveďou je 202. 202 znamená prijatie, nie nasadenie.
stav operácie · väzba behu
api/product-store.jsdáta: poradie vo frontefront nasadení · 3 súčasneapps/apiOdoberá sa v poradí prijatia, v rámci limitu súbežných nasadení (predvolene 3).
stav operácie · väzba behu
api/product-store.jspozorovanie: stav nasadenia · históriawebová obrazovka · história · Insightsapps/dashboardWebová 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.
front nasadení · 3 súčasne
apps/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.
front nasadení · 3 súčasne
apps/apispustenie · aplikácia: workflow_dispatchslučka · základné kontroly L0–L3railshot-deploy.ymlPož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.
zdrojový commit · trailery
apps/<tenant>/<app>dáta: odoslaný commitslučka · základné kontroly L0–L3railshot-deploy.ymlCheckoutuje sa len odoslaný commit a pripnutý kód platformy (PLATFORM_REF).
oprava cez SDK · len opraviteľné zlyhania
railshot-deploy.ymldáta: žiadosť o opravu · podmienečneAI SDK providerVolá 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.
vydanie · publikovanie do GHCR · väzba
railshot-deploy.ymldáta: publikovanie skontrolovaných obrazovGHCRPo overení bundlu, ktorý prešiel kontrolami, sa tie isté obrazy publikujú do GHCR. Nič sa znova nezostavuje.
väzba behu CI · pozorovanie
apps/apipozorovanie: čítanie behu · publikovaniarailshot-deploy.ymlPublikovanie sa počíta len vtedy, keď jeho run id, zdrojový commit, cieľ a aplikácia zodpovedajú prijatému záznamu.
väzba behu CI · pozorovanie
apps/apizlyhanie · neznámy výsledok: failed · publication_unverifiedstav operácie · väzba behuapi/product-store.jsZlyhanie 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.
vydanie · publikovanie do GHCR · väzba
railshot-deploy.ymldáta: images.json · spec · verdict · manifestcd.js · deployPublishedapps/apiCD číta súbory záznamu o publikovaní cez dôveryhodný loader. Samotné CI nevytvára žiadny prostriedok klastra, URL ani úspech nasadenia.
cd.js · deployPublished
apps/apispustenie · aplikácia: aplikácia · registrovaný cieľdôveryhodná konfigurácia · registrovaný cieľgitops/bridge.pySpustí gitops/bridge.py s dôveryhodnou konfiguráciou len vtedy, keď registrovaná aplikácia a tenant zodpovedajú záznamu o publikovaní.
commit · push · vzdialené spätné čítanie
gitops/bridge.pydáta: workload commit · pushRepozitár Git s konfiguráciouCommituje 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.
Repozitár Git s konfigurácioudáta: revisionkontrola Application · AppProject
Argo CDRevízia repozitára konfigurácie, na ktorú ukazuje Application v Argo CD.
synchronizácia Argo · pozorovanie
gitops/bridge.pyspustenie · aplikácia: synchronizácia · pozorovaniekontrola Application · AppProjectArgo CDPo kontrole AppProject požiada o synchronizáciu; pozorovanie len číta, bez synchronizácie.
kontrola Application · AppProject
Argo CDspustenie · aplikácia: aplikáciaworkload · ServiceAplikačný klaster K3sAplikuje workload na registrovaný cieľový klaster.
workload · Service
Aplikačný klaster K3sdáta: stiahnutie obrazu · digestGHCRStiahne publikovaný digest. Súkromné GHCR vyžaduje vyhradené prihlasovacie údaje na sťahovanie.
verejná sonda HTTPS
gitops/bridge.pypozorovanie: HTTPS healthVerejná adresa HTTPSKontroluje len operátorom registrovanú adresu HTTPS health, bez presmerovaní, na 200 (a očakávaný JSON, ak je nastavený).
Verejná adresa HTTPSdáta: verejná cestaworkload · Service
Aplikačný klaster K3sVerejná cesta (LB, NodePort, certifikát) sa líši podľa poskytovateľa a registrovaného cieľa.
cd.js · deployPublished
apps/apidáta: succeeded · revision · URLstav operácie · väzba behuapi/product-store.jsZaznamená sa ako succeeded len s cd.deployed, revíziou, úspešnou verejnou kontrolou HTTPS, jej časom a platnou URL.
cd.js · deployPublished
apps/apizlyhanie · neznámy výsledok: unknown · potrebné zosúladeniestav operácie · väzba behuapi/product-store.jsVý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ú.
metrics observer
apps/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.
Prometheuspozorovanie: scrape · probeworkload · Service
Aplikačný klaster K3sScrape exportéra a sonda HTTP. Tieto metriky sa nepoužívajú na rozhodnutie o úspechu nasadenia.
stav operácie · väzba behu
api/product-store.jspozorovanie: stav nasadenia · históriawebová obrazovka · história · Insightsapps/dashboardWebová 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.
verejná sonda HTTPS
gitops/bridge.pypozorovanie: HTTPS healthVerejná adresa HTTPSKontroluje 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ý.