RAILSHOT.
Tagasi saali

Railshot

AI deployment & operations platform

Lokaalselt ehitatud veebirakendus ettevalmistatud pilve- ja kohapealsetesse keskkondadesse juurutamiseks ja käitamiseks.

AI-põhine juurutus- ja käitusplatvorm, mis viib lokaalselt ehitatud veebirakenduse ettevalmistatud pilve- või kohapealsetesse keskkondadesse ja hoiab seda töös.

28. september 2026 – 4. oktoober 2026 · Lõppenud

Meeskonnaprojekt · minu osa: CI kavandamine ja teostus, CSP klastrid ja Ansible'i liides, käitamine, meeskonna koodiülevaatus ja integreerimine

SoftBank Hackathon 2026 powered by KOREC & ProgateEelvooru osaleja · finaali valik kuulutatakse välja 26. oktoobril 2026 (seisuga 7. oktoober 2026)

  • VeebTeostatud · häkaton
  • MCP-serverTeostatud · kaug · kohalik

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

Veebivaade ja kasutaja oma agent taotlevad juurutamist sama toote API kaudu.

Toode vastu võetud juurutustaotlusest CI kontrollide ja tõmmise avaldamise kaudu Giti konfiguratsiooni ja Argo CD rakendamiseni registreeritud sihtmärgil ning avaliku HTTPS-i verifitseerimiseni. Edu salvestatakse ainult siis, kui olemas on nii rakendatud redaktsioon kui ka avalik kontroll; tulemus, mida ei saa teada, jääb tundmatuks.

Projekti saab esitada veebivaatest või MCP kaudu ühendatud oma AI-agendist ning platvorm viib läbi juurutusfailide ettevalmistamise, tõrgete parandamise, tõmmise avaldamise, keskkonda viimise ja avaliku URL-i verifitseerimise; pärast juurutamist näitab sama vaade ajalugu ja logisid ning haldab uuendusi, peatamisi, jätkamisi ja kustutamist. Meeskonnaprojekt.

Võistluse arendusperiood 28. september 2026 – 4. oktoober 2026

Häkatoni ajal ehitatud veebivaade ja MCP-server. Kaug-MCP logib esitamiseks sisse OAuthiga; kohalikud kaustad esitatakse kohaliku MCP kaudu.

Toote arhitektuur · joonistatud avaliku commiti 645e28a kooditeede põhjal
Railshoti toote arhitektuurRailshoti toote komponendid ja ühendused. Veebivaade, kaug-OAuth-MCP ja kasutaja arvutis töötav kohalik MCP taotlevad juurutamist sama toote API kaudu, mis registreerib lähte-commiti ja CI käivituse. CI otsustab fikseeritud kontrollide põhjal ja avaldab kontrollitud tõmmised GHCR-is. CD-adapter rakendab config Giti ja Argo CD kaudu ainult siis, kui registreeritud sihtmärk vastab avaldamise kirjele, seejärel kontrollib registreeritud avalikku HTTPS-aadressi ja salvestab tulemuse. Mõõdikud on vaatlus, verdiktist eraldi.Brauseri kasutajakaust · ZIP · GitHubi URLMCP-klientChatGPT · Codex · Clauderailshot-local MCPkasutaja arvuti · stdioGHCRtõmmised räsi järgiAI SDK providerCodex · Claude SDKConfig Giti repositooriumregistreeritud workload.jsonAvalik HTTPS URLregistreeritud health-teePrometheuskäituse juhtimis-VM · lugemineapps/dashboardveebivaade · ajalugu · Insightsagent/remote-mcp.jsOAuth MCP · deploy_repositoryapps/apivalideerimine · sihtmärk · 202 vastu võetudjuurutusjärjekord · 3 korragaCI käivituse sidumine · vaatluscd.js · deployPublishedmetrics observerapi/product-store.jsoperatsiooni olek · käivituse siduminegitops/bridge.pyusaldatud konfiguratsioon · registreeritud sihtmärkcommit · push · kaugtagasilugemineArgo sünkroonimine · vaatlusavalik HTTPS-sondArgo CDApplication · AppProject kontrollapps/<tenant>/<app>lähte-commit · traileridrailshot-deploy.ymltsükkel · baaskontrollid L0–L3SDK parandus · ainult parandatavad tõrkedsamad kontrollid → testitud kimprelease · avaldamine GHCR-is · sidumineK3s rakendusklasterworkload · ServiceRailshoti platvormkäitusklaster · AWSGitHubprivaatne apps-repositoorium · ActionsRegistreeritud sihtmärkavalik tee pakkuja kohta1 kaust · ZIP · GitHubi URL · Brauseri kasutaja → veebivaade · ajalugu · Insights12sama toote API · /api/v13 OAuth · deploy_repository · MCP-klient → OAuth MCP · deploy_repository34sama toote API5 ZIP-üleslaadimine · deploy_local_project · railshot-local MCP → valideerimine · sihtmärk · 202 vastu võetud56 salvestatud olekuga queued · 202 · valideerimine · sihtmärk · 202 vastu võetud → operatsiooni olek · käivituse sidumine67 järjekorra järjestus · operatsiooni olek · käivituse sidumine → juurutusjärjekord · 3 korraga78juurutuse olek · ajalugu1source commit2workflow_dispatch3esitatud commit4paranduse taotlus · tingimuslik5kontrollitud tõmmiste avaldamine6käivitus · avaldamise lugemine7 failed · publication_unverified · CI käivituse sidumine · vaatlus → operatsiooni olek · käivituse sidumine71images.json · spec · verdict · manifest2rakendamine · registreeritud sihtmärk3workload commit · push4revision5sünkroonimine · vaatlus6rakendamine7tõmmise allalaadimine · räsi8HTTPS health9 avalik tee · Avalik HTTPS URL → workload · Service910 succeeded · revision · URL · cd.js · deployPublished → operatsiooni olek · käivituse sidumine1011 unknown · vajab ühildamist · cd.js · deployPublished → operatsiooni olek · käivituse sidumine111PromQL päring2scrape · probe3juurutuse olek · ajalugu4HTTPS health

Esitamine → vastuvõtt

Veebivaade, kaug-MCP ja kohalik MCP kutsuvad sama toote API-t, mis salvestab kontrollitud päringu olekuga queued ja vastab koodiga 202.

  1. Brauseri kasutajaandmed: kaust · ZIP · GitHubi URLveebivaade · ajalugu · Insightsapps/dashboard

    Lähe ja registreeritud keskkond valitakse veebivaates.

  2. veebivaade · ajalugu · Insightsapps/dashboardandmed: sama toote API · /api/v1valideerimine · sihtmärk · 202 vastu võetudapps/api

    Veebivaade kutsub toote API-t samast päritolust.

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

    Kaug-MCP ühendub OAuthiga ja võtab sisendiks avaliku GitHubi repositooriumi.

  4. OAuth MCP · deploy_repositoryagent/remote-mcp.jsandmed: sama toote APIvalideerimine · sihtmärk · 202 vastu võetudapps/api

    Kaug-MCP-server kutsub sama juurutus-API-t oma sisemise API-kliendi kaudu.

  5. railshot-local MCPandmed: ZIP-üleslaadimine · deploy_local_projectvalideerimine · sihtmärk · 202 vastu võetudapps/api

    Kasutaja arvuti stdio-MCP pakib kausta ZIP-iks ja laadib selle üles. Selle seanssi ei jagata kaug-OAuthi seansiga.

  6. valideerimine · sihtmärk · 202 vastu võetudapps/apiandmed: salvestatud olekuga queued · 202operatsiooni olek · käivituse sidumineapi/product-store.js

    Kontrollitakse sisendit, registreeritud sihtmärki, mahtu ja idempotentsusvõtit; operatsioon salvestatakse olekuga queued ja sellele vastatakse koodiga 202. 202 tähendab vastu võetud, mitte juurutatud.

  7. operatsiooni olek · käivituse sidumineapi/product-store.jsandmed: järjekorra järjestusjuurutusjärjekord · 3 korragaapps/api

    Võetakse vastuvõtu järjekorras samaaegsete juurutuste piirangu piires (vaikimisi 3).

  8. operatsiooni olek · käivituse sidumineapi/product-store.jsvaatlus: juurutuse olek · ajaluguveebivaade · ajalugu · Insightsapps/dashboard

    Veebivaade ja MCP-tööriistad loevad samu operatsioonikirjeid. Viimane katse ja praegune verifitseeritud juurutus näidatakse eraldi ning lõpetatud AI-ülesanne ei ole juurutuse edu.

CI kontrollid → tõmmise avaldamine

Fikseeritud platvormikood kontrollib esitatud commitit, annab AI-le ainult parandatavad tõrked ja avaldab ainult tõmmised, mis läbisid samad kontrollid uuesti.

  1. juurutusjärjekord · 3 korragaapps/apiandmed: source commitlähte-commit · traileridapps/<tenant>/<app>

    Esitatud lähtest saab commit privaatses apps-repositooriumis (traileritega Railshot-Request ja Railshot-Target) ning haru uuendatakse ilma force'ita.

  2. juurutusjärjekord · 3 korragaapps/apikäivitus · rakendamine: workflow_dispatchtsükkel · baaskontrollid L0–L3railshot-deploy.yml

    Taotleb käivitust väärtustega tenant, app, source_commit ja target_id. Kui vastus kaob, seda uuesti ei saadeta; selle asemel otsitakse sama commiti käivitusi.

  3. lähte-commit · traileridapps/<tenant>/<app>andmed: esitatud committsükkel · baaskontrollid L0–L3railshot-deploy.yml

    Töökoopiasse võetakse ainult esitatud commit ja fikseeritud platvormikood (PLATFORM_REF).

  4. SDK parandus · ainult parandatavad tõrkedrailshot-deploy.ymlandmed: paranduse taotlus · tingimuslikAI SDK provider

    Kutsutakse ainult parandatavate tõrkeklasside korral ja peatatakse, kui sama tõrge kordub või katsete piirang saab täis. Läbimise või läbikukkumise otsustavad kontrollid, mitte LLM.

  5. release · avaldamine GHCR-is · siduminerailshot-deploy.ymlandmed: kontrollitud tõmmiste avaldamineGHCR

    Pärast kontrollid läbinud kimbu verifitseerimist avaldatakse samad tõmmised GHCR-is. Midagi uuesti ei ehitata.

  6. CI käivituse sidumine · vaatlusapps/apivaatlus: käivitus · avaldamise lugeminerailshot-deploy.yml

    Avaldamine loetakse kehtivaks ainult siis, kui selle run id, lähte-commit, sihtmärk ja rakendus vastavad vastu võetud kirjele.

  7. CI käivituse sidumine · vaatlusapps/apitõrge · teadmata tulemus: failed · publication_unverifiedoperatsiooni olek · käivituse sidumineapi/product-store.js

    CI tõrge või verifitseerimata avaldamine salvestatakse koos diagnostikaga ja seda CD-le edasi ei anta.

Rakendamine → avalik kontroll

Rakendab config Giti ja Argo CD kaudu ainult siis, kui avaldamine vastab registreeritud sihtmärgile, ning salvestab edu alles pärast registreeritud avaliku HTTPS-aadressi kontrolli.

  1. release · avaldamine GHCR-is · siduminerailshot-deploy.ymlandmed: images.json · spec · verdict · manifestcd.js · deployPublishedapps/api

    CD loeb avaldamiskirje faile usaldatud laaduri kaudu. CI ise ei loo klastriressurssi, URL-i ega juurutuse edu.

  2. cd.js · deployPublishedapps/apikäivitus · rakendamine: rakendamine · registreeritud sihtmärkusaldatud konfiguratsioon · registreeritud sihtmärkgitops/bridge.py

    Käivitab gitops/bridge.py usaldatud konfiguratsiooniga ainult siis, kui registreeritud rakendus ja tenant vastavad avaldamiskirjele.

  3. commit · push · kaugtagasilugeminegitops/bridge.pyandmed: workload commit · pushConfig Giti repositoorium

    Commitib ainult faili workload.json eraldi haru registreeritud teele, salvestab kõigepealt push'i kavatsuse, teeb push'i ja loeb kaugredaktsiooni tagasi. Ebakindlat push'i ei korrata.

  4. Config Giti repositooriumandmed: revisionApplication · AppProject kontrollArgo CD

    Config-repositooriumi redaktsioon, millele Argo CD Application osutab.

  5. Argo sünkroonimine · vaatlusgitops/bridge.pykäivitus · rakendamine: sünkroonimine · vaatlusApplication · AppProject kontrollArgo CD

    Taotleb sünkroonimist pärast AppProjecti kontrollimist; vaatlus ainult loeb, ilma sünkroonimiseta.

  6. Application · AppProject kontrollArgo CDkäivitus · rakendamine: rakendamineworkload · ServiceK3s rakendusklaster

    Rakendab töökoormuse registreeritud sihtklastris.

  7. workload · ServiceK3s rakendusklasterandmed: tõmmise allalaadimine · räsiGHCR

    Laadib alla avaldatud räsi. Privaatne GHCR vajab eraldi pull-mandaati.

  8. avalik HTTPS-sondgitops/bridge.pyvaatlus: HTTPS healthAvalik HTTPS URL

    Kontrollib ainult operaatori registreeritud HTTPS health-aadressi, ilma ümbersuunamisteta, kas vastus on 200 (ja seadistamisel oodatud JSON).

  9. Avalik HTTPS URLandmed: avalik teeworkload · ServiceK3s rakendusklaster

    Avalik tee (LB, NodePort, sertifikaat) erineb pakkuja ja registreeritud sihtmärgi kaupa.

  10. cd.js · deployPublishedapps/apiandmed: succeeded · revision · URLoperatsiooni olek · käivituse sidumineapi/product-store.js

    Salvestatakse olekuga succeeded ainult siis, kui olemas on cd.deployed, redaktsioon, edukas avalik HTTPS-kontroll, selle aeg ja kehtiv URL.

  11. cd.js · deployPublishedapps/apitõrge · teadmata tulemus: unknown · vajab ühildamistoperatsiooni olek · käivituse sidumineapi/product-store.js

    Tulemus, mida ei saa teada, jääb olekuks unknown; sama rakendamist ei saadeta uuesti ega võeta tagasi.

Vaatlus · mitte verdikt

Mõõdikud ja sondid ei otsusta juurutuse edu. Puuduvad, aegunud ja ebaõnnestunud väärtused näidatakse nii, nagu need on.

  1. metrics observerapps/apivaatlus: PromQL päringPrometheus

    Loeb up-, probe_success- ja Podi aegridu. Puuduvad, aegunud või ebaõnnestunud väärtused näidatakse selles olekus ja neid ei muudeta kunagi 0-ks.

  2. Prometheusvaatlus: scrape · probeworkload · ServiceK3s rakendusklaster

    Exporterite scrape ja HTTP-sond. Neid mõõdikuid ei kasutata juurutuse edu otsustamiseks.

  3. operatsiooni olek · käivituse sidumineapi/product-store.jsvaatlus: juurutuse olek · ajaluguveebivaade · ajalugu · Insightsapps/dashboard

    Veebivaade ja MCP-tööriistad loevad samu operatsioonikirjeid. Viimane katse ja praegune verifitseeritud juurutus näidatakse eraldi ning lõpetatud AI-ülesanne ei ole juurutuse edu.

  4. avalik HTTPS-sondgitops/bridge.pyvaatlus: HTTPS healthAvalik HTTPS URL

    Kontrollib ainult operaatori registreeritud HTTPS health-aadressi, ilma ümbersuunamisteta, kas vastus on 200 (ja seadistamisel oodatud JSON).

Kõik ühendused sama kaaluga. Vali voog, et tõsta esile ainult selle tee koos nummerdatud sammudega.

  • Pidevjoon · lähte, tõmmiste ja päringute liikumissuund
  • Kriipsjoon · käivitustaotlus, rakendamine või sünkroonimine
  • Pikk kriips-punktjoon · olekupäringud, sondid ja mõõdikud, verdiktist eraldi
  • Lühike kriips · salvestatud tõrge või teadmata tulemus
  • Paks must joon · valitud voog; numbrid näitavad järjekorda
  • Kast · omav piir, lähtetee päises
  • Sisemine silt · komponent selle piiri sees
  • Kriipsjoonega kast · platvormist väljas
  • Oranž kontuur · koht, kus mudel otsustab
  • Toote API
  • Juurutuskirjed
  • CD täitmise piir
  • Sisenemine · CI · sihtmärk

Faili docs/architecture/README.md 2. oktoobri (bc61a5a) joonis on teostuse ajalugu; see arhitektuur järgib koodi 645e28a. Pakkujad ja võrguteed erinevad registreeritud sihtmärgi kaupa ning see ei tähenda, et iga pakkuja on alati sees.