RAILSHOT.
Vissza a terembe

Railshot

AI deployment & operations platform

Helyben készült webalkalmazás telepítése előkészített felhős és helyszíni környezetekbe, majd üzemeltetése.

AI-alapú telepítési és üzemeltetési platform, amely a helyben készült webalkalmazást előkészített felhős vagy helyszíni környezetekbe viszi, és tovább üzemelteti.

2026. szeptember 28. – 2026. október 4. · Lezárult

Csapatprojekt · saját feladatom: CI tervezése és megvalósítása, CSP-klaszterek és Ansible-interfész, üzemeltetés, csapaton belüli kódfelülvizsgálat és integráció

SoftBank Hackathon 2026 powered by KOREC & ProgateA selejtező résztvevője · a döntőbe jutók kihirdetése 2026. október 26-án várható (2026. október 7-i állapot)

  • Webes felületMegvalósítva · hackathon
  • MCP-szerverMegvalósítva · távoli · helyi

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

A webes felület és a felhasználó saját ágense ugyanazon a termék-API-n kér telepítést.

A termék az elfogadott telepítési kéréstől a CI-ellenőrzéseken és a konténerkép közzétételén át a Git-konfigurációig, az Argo CD-kivezetésig egy regisztrált célon és a nyilvános HTTPS-ellenőrzésig. Siker csak alkalmazott revízióval és nyilvános ellenőrzéssel együtt rögzül; a nem megismerhető eredmény unknown marad.

A webes felületről vagy egy MCP-n keresztül csatlakoztatott saját AI-ágensből beküldött projekt végigmegy a telepítési fájlok előkészítésén, a hibajavításon, a konténerkép közzétételén, a környezetbe való kivezetésen és a nyilvános URL ellenőrzésén; telepítés után ugyanaz a felület mutatja az előzményeket és a naplókat, és kezeli a frissítést, a leállítást, a folytatást és a törlést. Csapatprojekt.

A verseny fejlesztési időszaka: 2026. szeptember 28. – 2026. október 4.

A hackathon alatt készült webes felület és MCP-szerver. A távoli MCP OAuth-bejelentkezéssel küld be; a helyi mappákat a helyi MCP küldi be.

Termékarchitektúra · a nyilvános 645e28a commit kódútvonalai alapján
A Railshot termékarchitektúrájaA Railshot termék komponensei és kapcsolatai. A webes felület, a távoli OAuth MCP és a felhasználó gépén futó helyi MCP ugyanazon a termék-API-n kér telepítést, amely regisztrál egy forrás-commitot és egy CI-futtatást. A CI rögzített ellenőrzések alapján dönt, és az ellenőrzött konténerképeket a GHCR-be publikálja. A CD-adapter csak akkor alkalmaz a config Giten és az Argo CD-n keresztül, ha a regisztrált cél egyezik a közzétételi feljegyzéssel, majd ellenőrzi a regisztrált nyilvános HTTPS-címet, és rögzíti az eredményt. A metrikák megfigyelések, az ítélettől elkülönítve.Böngészős felhasználómappa · ZIP · GitHub-URLMCP-kliensChatGPT · Codex · Clauderailshot-local MCPa felhasználó gépe · stdioGHCRkonténerképek digest szerintAI SDK providerCodex · Claude SDKConfig Git-tárolóregisztrált workload.jsonNyilvános HTTPS-URLregisztrált health-útvonalPrometheusüzemeltetési vezérlő VM · olvasásapps/dashboardwebes felület · előzmények · Insightsagent/remote-mcp.jsOAuth MCP · deploy_repositoryapps/apiérvényesítés · cél · 202-es elfogadástelepítési sor · egyszerre 3CI-futtatás kötése · megfigyeléscd.js · deployPublishedmetrics observerapi/product-store.jsműveleti állapot · futtatáskötésgitops/bridge.pymegbízható konfiguráció · regisztrált célcommit · push · távoli visszaolvasásArgo-szinkron · megfigyelésnyilvános HTTPS-próbaArgo CDApplication · AppProject-ellenőrzésapps/<tenant>/<app>forrás-commit · trailerekrailshot-deploy.ymlciklus · alapellenőrzések L0–L3SDK-javítás · csak javítható hibákugyanazok az ellenőrzések → tesztelt csomagkiadás · GHCR-közzététel · kötésK3s alkalmazásklaszterworkload · ServiceRailshot-platformüzemeltetési klaszter · AWSGitHubnem nyilvános apps-tároló · ActionsRegisztrált célszolgáltatónkénti nyilvános útvonal1 mappa · ZIP · GitHub-URL · Böngészős felhasználó → webes felület · előzmények · Insights12ugyanaz a termék-API · /api/v13 OAuth · deploy_repository · MCP-kliens → OAuth MCP · deploy_repository34ugyanaz a termék-API5 ZIP-feltöltés · deploy_local_project · railshot-local MCP → érvényesítés · cél · 202-es elfogadás56 queued rögzítve · 202 · érvényesítés · cél · 202-es elfogadás → műveleti állapot · futtatáskötés67 sorrend a sorban · műveleti állapot · futtatáskötés → telepítési sor · egyszerre 378telepítési állapot · előzmények1source commit2workflow_dispatch3beküldött commit4javítási kérés · feltételes5ellenőrzött konténerképek közzététele6futtatás · közzététel olvasása7 failed · publication_unverified · CI-futtatás kötése · megfigyelés → műveleti állapot · futtatáskötés71images.json · spec · verdict · manifest2alkalmazás · regisztrált cél3workload commit · push4revision5 szinkronizálás · megfigyelés · Argo-szinkron · megfigyelés → Application · AppProject-ellenőrzés56alkalmazás7konténerkép letöltése · digest8HTTPS health9 nyilvános útvonal · Nyilvános HTTPS-URL → workload · Service910 succeeded · revision · URL · cd.js · deployPublished → műveleti állapot · futtatáskötés1011 unknown · egyeztetés szükséges · cd.js · deployPublished → műveleti állapot · futtatáskötés111PromQL-lekérdezés2scrape · probe3telepítési állapot · előzmények4HTTPS health

Beküldés → elfogadás

A webes felület, a távoli MCP és a helyi MCP ugyanazt a termék-API-t hívja, amely az ellenőrzött kérést queued állapotban rögzíti, és 202-vel válaszol.

  1. Böngészős felhasználóadat: mappa · ZIP · GitHub-URLwebes felület · előzmények · Insightsapps/dashboard

    A forrás és egy regisztrált környezet a webes felületen választható ki.

  2. webes felület · előzmények · Insightsapps/dashboardadat: ugyanaz a termék-API · /api/v1érvényesítés · cél · 202-es elfogadásapps/api

    A webes felület azonos eredetről hívja a termék-API-t.

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

    A távoli MCP OAuth-on keresztül csatlakozik, és bemenetként nyilvános GitHub-tárolót fogad.

  4. OAuth MCP · deploy_repositoryagent/remote-mcp.jsadat: ugyanaz a termék-APIérvényesítés · cél · 202-es elfogadásapps/api

    A távoli MCP-szerver belső API-kliensével ugyanazt a telepítési API-t hívja.

  5. railshot-local MCPadat: ZIP-feltöltés · deploy_local_projectérvényesítés · cél · 202-es elfogadásapps/api

    A felhasználó gépén futó stdio MCP ZIP-be tömörít egy mappát, és feltölti. Munkamenete nincs megosztva a távoli OAuth-munkamenettel.

  6. érvényesítés · cél · 202-es elfogadásapps/apiadat: queued rögzítve · 202műveleti állapot · futtatáskötésapi/product-store.js

    Ellenőrzi a bemenetet, a regisztrált célt, a kapacitást és az idempotenciakulcsot; a műveletet queued állapotban rögzíti, és 202-vel válaszol. A 202 elfogadást jelent, nem telepítést.

  7. műveleti állapot · futtatáskötésapi/product-store.jsadat: sorrend a sorbantelepítési sor · egyszerre 3apps/api

    Az elfogadás sorrendjében veszi elő, a párhuzamos telepítések korlátján belül (alapértelmezés szerint 3).

  8. műveleti állapot · futtatáskötésapi/product-store.jsmegfigyelés: telepítési állapot · előzményekwebes felület · előzmények · Insightsapps/dashboard

    A webes felület és az MCP-eszközök ugyanazokat a műveleti feljegyzéseket olvassák. A legutóbbi kísérlet és a jelenlegi ellenőrzött telepítés külön jelenik meg, és egy befejezett AI-feladat nem telepítési siker.

CI-ellenőrzések → konténerkép közzététele

A rögzített platformkód ellenőrzi a beküldött commitot, csak a javítható hibákat adja át az AI-nak, és csak az ugyanazokon az ellenőrzéseken újra átment konténerképeket teszi közzé.

  1. telepítési sor · egyszerre 3apps/apiadat: source commitforrás-commit · trailerekapps/<tenant>/<app>

    A beküldött forrásból commit lesz a nem nyilvános apps-tárolóban (Railshot-Request és Railshot-Target trailerekkel), és az ág force nélkül frissül.

  2. telepítési sor · egyszerre 3apps/apifuttatás · alkalmazás: workflow_dispatchciklus · alapellenőrzések L0–L3railshot-deploy.yml

    Futtatást kér a tenant, app, source_commit és target_id értékekkel. Ha a válasz elveszik, nem küldi újra, hanem megkeresi az ugyanahhoz a commithoz tartozó futtatásokat.

  3. forrás-commit · trailerekapps/<tenant>/<app>adat: beküldött commitciklus · alapellenőrzések L0–L3railshot-deploy.yml

    Csak a beküldött commit és a rögzített platformkód (PLATFORM_REF) kerül checkoutra.

  4. SDK-javítás · csak javítható hibákrailshot-deploy.ymladat: javítási kérés · feltételesAI SDK provider

    Csak javítható hibaosztályoknál hívja meg, és leáll, ha ugyanaz a hiba ismétlődik, vagy eléri a kísérleti korlátot. A sikerről vagy kudarcról az ellenőrzések döntenek, nem az LLM.

  5. kiadás · GHCR-közzététel · kötésrailshot-deploy.ymladat: ellenőrzött konténerképek közzétételeGHCR

    Az ellenőrzéseken átment csomag igazolása után ugyanazok a konténerképek kerülnek a GHCR-be. Semmi sem épül újra.

  6. CI-futtatás kötése · megfigyelésapps/apimegfigyelés: futtatás · közzététel olvasásarailshot-deploy.yml

    Egy közzététel csak akkor számít, ha a run id, a source commit, a cél és az app egyezik az elfogadott feljegyzéssel.

  7. CI-futtatás kötése · megfigyelésapps/apihiba · ismeretlen kimenetel: failed · publication_unverifiedműveleti állapot · futtatáskötésapi/product-store.js

    A CI-hiba vagy az igazolatlan közzététel diagnosztikával együtt rögzül, és nem jut tovább a CD-hez.

Alkalmazás → nyilvános ellenőrzés

Csak akkor alkalmaz a config Giten és az Argo CD-n keresztül, ha a közzététel egyezik a regisztrált céllal, és sikert csak a regisztrált nyilvános HTTPS-cím sikeres ellenőrzése után rögzít.

  1. kiadás · GHCR-közzététel · kötésrailshot-deploy.ymladat: images.json · spec · verdict · manifestcd.js · deployPublishedapps/api

    A CD megbízható betöltővel olvassa a közzétételi feljegyzés fájljait. Maga a CI nem hoz létre klasztererőforrást, URL-t vagy telepítési sikert.

  2. cd.js · deployPublishedapps/apifuttatás · alkalmazás: alkalmazás · regisztrált célmegbízható konfiguráció · regisztrált célgitops/bridge.py

    A gitops/bridge.py-t a megbízható konfigurációval csak akkor futtatja, ha a regisztrált app és tenant egyezik a közzétételi feljegyzéssel.

  3. commit · push · távoli visszaolvasásgitops/bridge.pyadat: workload commit · pushConfig Git-tároló

    Csak a workload.json-t commitolja egy dedikált ág regisztrált útvonalán, előbb rögzíti a push szándékát, majd pushol, és visszaolvassa a távoli revíziót. A bizonytalan push nem ismétlődik.

  4. Config Git-tárolóadat: revisionApplication · AppProject-ellenőrzésArgo CD

    A config-tároló revíziója, amelyre az Argo CD Application mutat.

  5. Argo-szinkron · megfigyelésgitops/bridge.pyfuttatás · alkalmazás: szinkronizálás · megfigyelésApplication · AppProject-ellenőrzésArgo CD

    Az AppProject ellenőrzése után szinkronizálást kér; megfigyeléskor csak olvas, szinkronizálás nélkül.

  6. Application · AppProject-ellenőrzésArgo CDfuttatás · alkalmazás: alkalmazásworkload · ServiceK3s alkalmazásklaszter

    A munkaterhelést a regisztrált célklaszterre alkalmazza.

  7. workload · ServiceK3s alkalmazásklaszteradat: konténerkép letöltése · digestGHCR

    A közzétett digestet tölti le. Nem nyilvános GHCR esetén dedikált letöltési hitelesítő adat kell.

  8. nyilvános HTTPS-próbagitops/bridge.pymegfigyelés: HTTPS healthNyilvános HTTPS-URL

    Csak az üzemeltető által regisztrált HTTPS health-címet ellenőrzi, átirányítások nélkül, 200-as válaszra (és a beállított elvárt JSON-ra).

  9. Nyilvános HTTPS-URLadat: nyilvános útvonalworkload · ServiceK3s alkalmazásklaszter

    A nyilvános útvonal (LB, NodePort, tanúsítvány) szolgáltatónként és regisztrált célonként eltér.

  10. cd.js · deployPublishedapps/apiadat: succeeded · revision · URLműveleti állapot · futtatáskötésapi/product-store.js

    Csak cd.deployed, revízió, sikeres nyilvános HTTPS-ellenőrzés, annak időpontja és érvényes URL esetén rögzül succeeded állapotként.

  11. cd.js · deployPublishedapps/apihiba · ismeretlen kimenetel: unknown · egyeztetés szükségesműveleti állapot · futtatáskötésapi/product-store.js

    A nem megismerhető eredmény unknown marad; ugyanazt az alkalmazást nem küldi újra, és nem is vonja vissza.

Megfigyelés · nem az ítélet

A metrikák és a próbák nem döntenek a telepítés sikeréről. A hiányzó, elavult és sikertelen értékek úgy jelennek meg, ahogy vannak.

  1. metrics observerapps/apimegfigyelés: PromQL-lekérdezésPrometheus

    Az up, a probe_success és a Pod-idősorokat olvassa. A hiányzó, elavult vagy sikertelen értékek ebben az állapotukban jelennek meg, soha nem lesz belőlük 0.

  2. Prometheusmegfigyelés: scrape · probeworkload · ServiceK3s alkalmazásklaszter

    Exporter-scrape és HTTP-próba. Ezek a metrikák nem döntenek a telepítés sikeréről.

  3. műveleti állapot · futtatáskötésapi/product-store.jsmegfigyelés: telepítési állapot · előzményekwebes felület · előzmények · Insightsapps/dashboard

    A webes felület és az MCP-eszközök ugyanazokat a műveleti feljegyzéseket olvassák. A legutóbbi kísérlet és a jelenlegi ellenőrzött telepítés külön jelenik meg, és egy befejezett AI-feladat nem telepítési siker.

  4. nyilvános HTTPS-próbagitops/bridge.pymegfigyelés: HTTPS healthNyilvános HTTPS-URL

    Csak az üzemeltető által regisztrált HTTPS health-címet ellenőrzi, átirányítások nélkül, 200-as válaszra (és a beállított elvárt JSON-ra).

Minden kapcsolat azonos vastagsággal. Válasszon egy folyamatot, hogy csak annak útvonala emelődjön ki, számozott lépésekkel.

  • Folytonos · a forrás, a konténerképek és a kérések áramlási iránya
  • Szaggatott · futtatási kérés, alkalmazás vagy szinkronizálás
  • Hosszú pontvonalas · állapotlekérdezések, próbák és metrikák, az ítélettől elkülönítve
  • Rövid szaggatott · rögzített hiba vagy ismeretlen kimenetel
  • Vastag fekete vonal · a kiválasztott folyamat; a számok a sorrendet jelzik
  • Doboz · birtokló határ, fejlécében a forrásútvonallal
  • Belső chip · komponens a határon belül
  • Szaggatott doboz · a platformon kívül
  • Narancssárga körvonal · ahol egy modell dönt
  • Termék-API
  • Telepítési feljegyzések
  • A CD végrehajtási határa
  • Belépés · CI · cél

A docs/architecture/README.md október 2-i (bc61a5a) ábrája megvalósítási előzmény; ez az architektúra a 645e28a kódját követi. A szolgáltatók és a hálózati útvonalak regisztrált célonként eltérnek, és ez nem jelenti, hogy minden szolgáltató mindig be van kapcsolva.