Railshot
AI deployment & operations platform
Paikallisesti rakennettu verkkosovellus käyttöön valmisteltuihin pilvi- ja on-premises-ympäristöihin ja ylläpitoon.
AI-pohjainen käyttöönotto- ja ylläpitoalusta, joka vie paikallisesti rakennetun verkkosovelluksen valmisteltuihin pilvi- tai on-premises-ympäristöihin ja pitää sen käynnissä.
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
Verkkonäkymä ja käyttäjän oma agentti pyytävät käyttöönottoa saman tuote-API:n kautta.
Tuote hyväksytystä käyttöönottopyynnöstä CI-tarkistusten ja levykuvan julkaisun kautta Git-konfiguraatioon ja Argo CD -vientiin rekisteröityyn kohteeseen sekä julkisen HTTPS:n todentamiseen. Onnistuminen kirjataan vain, kun sekä sovellettu revisio että julkinen tarkistus ovat olemassa; lopputulos, jota ei voi tietää, jää tuntemattomaksi.
Projektin voi lähettää verkkonäkymästä tai MCP:llä yhdistetystä omasta AI-agentista, ja alusta hoitaa käyttöönottotiedostojen valmistelun, epäonnistumisten korjauksen, levykuvan julkaisun, ympäristöön viennin ja julkisen URL:n todentamisen; käyttöönoton jälkeen samassa näkymässä näkyvät historia ja lokit, ja siellä hallitaan päivitykset, pysäytykset, jatkamiset ja poistot. Tiimiprojekti.
Kilpailun kehitysjakso 28.9.2026–4.10.2026
Hackathonin aikana rakennetut verkkonäkymä ja MCP-palvelin. Etä-MCP kirjautuu OAuthilla lähettääkseen; paikalliset kansiot lähetetään paikallisen MCP:n kautta.
Lähetys → vastaanotto
Verkkonäkymä, etä-MCP ja paikallinen MCP kutsuvat samaa tuote-API:a, joka kirjaa tarkistetun pyynnön tilaan queued ja vastaa 202.
Selaimen käyttäjädata: kansio · ZIP · GitHub-URLverkkonäkymä · historia · Insights
apps/dashboardLähde ja rekisteröity ympäristö valitaan verkkonäkymässä.
verkkonäkymä · historia · Insights
apps/dashboarddata: sama tuote-API · /api/v1validointi · kohde · 202 vastaanotettuapps/apiVerkkonäkymä kutsuu tuote-API:a samasta alkuperästä.
MCP-asiakasdata: OAuth · deploy_repositoryOAuth MCP · deploy_repository
agent/remote-mcp.jsEtä-MCP yhdistää OAuthilla ja ottaa syötteeksi julkisen GitHub-repositorion.
OAuth MCP · deploy_repository
agent/remote-mcp.jsdata: sama tuote-APIvalidointi · kohde · 202 vastaanotettuapps/apiEtä-MCP-palvelin kutsuu samaa käyttöönotto-API:a sisäisen API-asiakkaansa kautta.
railshot-local MCPdata: ZIP-lataus · deploy_local_projectvalidointi · kohde · 202 vastaanotettu
apps/apiKäyttäjän tietokoneen stdio-MCP pakkaa kansion ZIP-tiedostoksi ja lataa sen. Sen istuntoa ei jaeta etä-OAuth-istunnon kanssa.
validointi · kohde · 202 vastaanotettu
apps/apidata: kirjattu tilaan queued · 202operaation tila · ajon sidontaapi/product-store.jsSyöte, rekisteröity kohde, kapasiteetti ja idempotenssiavain tarkistetaan; operaatio kirjataan tilaan queued ja siihen vastataan 202. 202 tarkoittaa vastaanotettua, ei käyttöönotettua.
operaation tila · ajon sidonta
api/product-store.jsdata: jonojärjestyskäyttöönottojono · 3 kerrallaanapps/apiOtetaan vastaanottojärjestyksessä samanaikaisten käyttöönottojen rajan sisällä (oletuksena 3).
operaation tila · ajon sidonta
api/product-store.jshavainnointi: käyttöönoton tila · historiaverkkonäkymä · historia · Insightsapps/dashboardVerkkonäkymä ja MCP-työkalut lukevat samoja operaatiokirjauksia. Viimeisin yritys ja nykyinen todennettu käyttöönotto näytetään erikseen, eikä valmis AI-tehtävä ole käyttöönoton onnistuminen.
CI-tarkistukset → levykuvan julkaisu
Kiinnitetty alustakoodi tarkistaa lähetetyn commitin, antaa vain korjattavat virheet AI:lle ja julkaisee vain levykuvat, jotka läpäisivät samat tarkistukset uudelleen.
käyttöönottojono · 3 kerrallaan
apps/apidata: source commitlähdecommit · traileritapps/<tenant>/<app>Lähetetystä lähteestä tulee commit yksityiseen apps-repositorioon (Railshot-Request- ja Railshot-Target-trailereilla), ja haara päivitetään ilman forcea.
käyttöönottojono · 3 kerrallaan
apps/apisuoritus · toimeenpano: workflow_dispatchsilmukka · perustarkistukset L0–L3railshot-deploy.ymlPyytää ajoa arvoilla tenant, app, source_commit ja target_id. Jos vastaus katoaa, sitä ei lähetetä uudelleen; sen sijaan haetaan saman commitin ajot.
lähdecommit · trailerit
apps/<tenant>/<app>data: lähetetty commitsilmukka · perustarkistukset L0–L3railshot-deploy.ymlVain lähetetty commit ja kiinnitetty alustakoodi (PLATFORM_REF) haetaan työkopioon.
SDK-korjaus · vain korjattavat virheet
railshot-deploy.ymldata: korjauspyyntö · ehdollinenAI SDK providerKutsutaan vain korjattavissa olevissa virheluokissa, ja pysäytetään, kun sama virhe toistuu tai yritysten raja saavutetaan. Läpäisystä tai hylkäyksestä päättävät tarkistukset, eivät LLM.
release · julkaisu GHCR:ään · sidonta
railshot-deploy.ymldata: tarkistettujen levykuvien julkaisuGHCRTarkistukset läpäisseen paketin todentamisen jälkeen samat levykuvat julkaistaan GHCR:ään. Mitään ei rakenneta uudelleen.
CI-ajon sidonta · havainnointi
apps/apihavainnointi: ajo · julkaisun lukurailshot-deploy.ymlJulkaisu lasketaan vain, kun sen run id, lähdecommit, kohde ja sovellus vastaavat vastaanotettua kirjausta.
CI-ajon sidonta · havainnointi
apps/apiepäonnistuminen · tuntematon lopputulos: failed · publication_unverifiedoperaation tila · ajon sidontaapi/product-store.jsCI-virhe tai todentamaton julkaisu kirjataan diagnostiikan kanssa eikä sitä välitetä CD:lle.
Toimeenpano → julkinen tarkistus
Toimeenpanee config Gitin ja Argo CD:n kautta vain, kun julkaisu vastaa rekisteröityä kohdetta, ja kirjaa onnistumisen vasta, kun rekisteröity julkinen HTTPS-osoite on tarkistettu.
release · julkaisu GHCR:ään · sidonta
railshot-deploy.ymldata: images.json · spec · verdict · manifestcd.js · deployPublishedapps/apiCD lukee julkaisukirjauksen tiedostot luotetun lataajan kautta. CI itse ei luo klusteriresurssia, URL:ia eikä käyttöönoton onnistumista.
cd.js · deployPublished
apps/apisuoritus · toimeenpano: toimeenpano · rekisteröity kohdeluotettu konfiguraatio · rekisteröity kohdegitops/bridge.pyAjaa gitops/bridge.py:n luotetulla konfiguraatiolla vain, kun rekisteröity sovellus ja tenant vastaavat julkaisukirjausta.
commit · push · etäpään uudelleenluku
gitops/bridge.pydata: workload commit · pushConfig Git -repositorioCommitoi vain workload.jsonin erillisen haaran rekisteröityyn polkuun, kirjaa ensin push-aikomuksen, pushaa ja lukee etärevision takaisin. Epävarmaa pushia ei toisteta.
Config Git -repositoriodata: revisionApplication · AppProject-tarkistus
Argo CDConfig-repositorion revisio, johon Argo CD Application osoittaa.
Argo-synkronointi · havainnointi
gitops/bridge.pysuoritus · toimeenpano: synkronointi · havainnointiApplication · AppProject-tarkistusArgo CDPyytää synkronointia AppProjectin tarkistuksen jälkeen; havainnointi vain lukee ilman synkronointia.
Application · AppProject-tarkistus
Argo CDsuoritus · toimeenpano: toimeenpanoworkload · ServiceK3s-sovellusklusteriVie työkuorman rekisteröityyn kohdeklusteriin.
workload · Service
K3s-sovellusklusteridata: levykuvan haku · tiivisteGHCRHakee julkaistun tiivisteen. Yksityinen GHCR tarvitsee oman pull-tunnistetiedon.
julkinen HTTPS-koetin
gitops/bridge.pyhavainnointi: HTTPS healthJulkinen HTTPS-URLTarkistaa vain operaattorin rekisteröimän HTTPS-health-osoitteen ilman uudelleenohjauksia: vastaako se 200 (ja odotetun JSONin, jos asetettu).
Julkinen HTTPS-URLdata: julkinen polkuworkload · Service
K3s-sovellusklusteriJulkinen polku (LB, NodePort, varmenne) vaihtelee toimittajan ja rekisteröidyn kohteen mukaan.
cd.js · deployPublished
apps/apidata: succeeded · revision · URLoperaation tila · ajon sidontaapi/product-store.jsKirjataan tilaan succeeded vain, kun on cd.deployed, revisio, onnistunut julkinen HTTPS-tarkistus, sen aika ja kelvollinen URL.
cd.js · deployPublished
apps/apiepäonnistuminen · tuntematon lopputulos: unknown · vaatii täsmäytystäoperaation tila · ajon sidontaapi/product-store.jsLopputulos, jota ei voi tietää, jää tilaan unknown; samaa toimeenpanoa ei lähetetä uudelleen eikä peruta.
Havainnointi · ei tuomio
Mittarit ja koettimet eivät päätä käyttöönoton onnistumisesta. Puuttuvat, vanhentuneet ja epäonnistuneet arvot näytetään sellaisinaan.
metrics observer
apps/apihavainnointi: PromQL-kyselyPrometheusLukee up-, probe_success- ja Pod-sarjoja. Puuttuvat, vanhentuneet tai epäonnistuneet arvot näytetään siinä tilassa eikä niitä koskaan muuteta arvoksi 0.
Prometheushavainnointi: scrape · probeworkload · Service
K3s-sovellusklusteriExporterien scrape ja HTTP-koetin. Näitä mittareita ei käytetä käyttöönoton onnistumisen päättämiseen.
operaation tila · ajon sidonta
api/product-store.jshavainnointi: käyttöönoton tila · historiaverkkonäkymä · historia · Insightsapps/dashboardVerkkonäkymä ja MCP-työkalut lukevat samoja operaatiokirjauksia. Viimeisin yritys ja nykyinen todennettu käyttöönotto näytetään erikseen, eikä valmis AI-tehtävä ole käyttöönoton onnistuminen.
julkinen HTTPS-koetin
gitops/bridge.pyhavainnointi: HTTPS healthJulkinen HTTPS-URLTarkistaa vain operaattorin rekisteröimän HTTPS-health-osoitteen ilman uudelleenohjauksia: vastaako se 200 (ja odotetun JSONin, jos asetettu).
Kaikki yhteydet samalla painolla. Valitse virta, niin vain sen polku korostuu numeroiduin vaihein.
- Yhtenäinen · lähteen, levykuvien ja pyyntöjen kulkusuunta
- Katkoviiva · ajopyyntö, toimeenpano tai synkronointi
- Pitkä pistekatkoviiva · tilan luvut, koettimet ja mittarit, erillään tuomiosta
- Lyhyt katko · kirjattu epäonnistuminen tai tuntematon lopputulos
- Paksu musta viiva · valittu virta; numerot kertovat järjestyksen
- Laatikko · omistava raja, lähdepolku otsakkeessa
- Sisälaatta · komponentti rajan sisällä
- Katkoviivalaatikko · alustan ulkopuolella
- Oranssi ääriviiva · kohta, jossa malli päättää
- Tuote-API
- Käyttöönottokirjaukset
- CD:n suoritusraja
- Sisääntulo · CI · kohde
Tiedoston docs/architecture/README.md kuva lokakuun 2. päivältä (bc61a5a) on toteutushistoriaa; tämä arkkitehtuuri noudattaa koodia 645e28a. Toimittajat ja verkkopolut vaihtelevat rekisteröidyn kohteen mukaan, eikä tämä tarkoita, että jokainen toimittaja olisi aina päällä.