Railshot
AI deployment & operations platform
Ανάπτυξη μιας τοπικά φτιαγμένης web εφαρμογής σε έτοιμα περιβάλλοντα cloud και on-premises, και έπειτα λειτουργία της.
Πλατφόρμα ανάπτυξης και λειτουργίας με AI που μεταφέρει μια τοπικά φτιαγμένη web εφαρμογή σε έτοιμα περιβάλλοντα cloud ή on-premises και συνεχίζει να τη λειτουργεί.
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
Η οθόνη web και ο προσωπικός πράκτορας ζητούν ανάπτυξη μέσω του ίδιου API του προϊόντος.
Το προϊόν από ένα αποδεκτό αίτημα ανάπτυξης, μέσω ελέγχων CI και δημοσίευσης image, ως τη ρύθμιση Git και τη διάθεση με Argo CD σε καταχωρισμένο στόχο και την επαλήθευση του δημόσιου HTTPS. Η επιτυχία καταγράφεται μόνο με εφαρμοσμένο revision και δημόσιο έλεγχο μαζί, και ένα αποτέλεσμα που δεν μπορεί να γίνει γνωστό μένει unknown.
Ένα έργο υποβάλλεται από την οθόνη web ή από έναν προσωπικό πράκτορα AI συνδεδεμένο μέσω MCP, και η πλατφόρμα προχωρά από την προετοιμασία αρχείων ανάπτυξης και την επιδιόρθωση αποτυχιών ως τη δημοσίευση image, τη διάθεση στο περιβάλλον και την επαλήθευση του δημόσιου URL. Μετά την ανάπτυξη, η ίδια οθόνη δείχνει ιστορικό και αρχεία καταγραφής και διαχειρίζεται ενημερώσεις, διακοπές, συνεχίσεις και διαγραφή. Ομαδικό έργο.
Περίοδος υλοποίησης του διαγωνισμού September 28, 2026 to October 4, 2026
Η οθόνη web και ο διακομιστής MCP που φτιάχτηκαν στο hackathon. Το απομακρυσμένο MCP συνδέεται με OAuth για την υποβολή, ενώ οι τοπικοί φάκελοι υποβάλλονται μέσω του τοπικού MCP.
Υποβολή → αποδοχή
Η οθόνη web, το απομακρυσμένο MCP και το τοπικό MCP καλούν το ίδιο API του προϊόντος, που καταγράφει ένα ελεγμένο αίτημα ως queued και απαντά 202.
Χρήστης προγράμματος περιήγησηςδεδομένα: φάκελος · ZIP · GitHub URLοθόνη web · ιστορικό · Insights
apps/dashboardΗ πηγή και ένα καταχωρισμένο περιβάλλον επιλέγονται στην οθόνη web.
οθόνη web · ιστορικό · Insights
apps/dashboardδεδομένα: ίδιο API προϊόντος · /api/v1επικύρωση · στόχος · αποδοχή 202apps/apiΗ οθόνη web καλεί το API του προϊόντος από την ίδια προέλευση.
Πελάτης MCPδεδομένα: OAuth · deploy_repositoryOAuth MCP · deploy_repository
agent/remote-mcp.jsΤο απομακρυσμένο MCP συνδέεται μέσω OAuth και δέχεται ως είσοδο ένα δημόσιο αποθετήριο GitHub.
OAuth MCP · deploy_repository
agent/remote-mcp.jsδεδομένα: ίδιο API προϊόντοςεπικύρωση · στόχος · αποδοχή 202apps/apiΟ απομακρυσμένος διακομιστής MCP καλεί το ίδιο API ανάπτυξης μέσω του εσωτερικού του πελάτη API.
railshot-local MCPδεδομένα: Ανέβασμα ZIP · deploy_local_projectεπικύρωση · στόχος · αποδοχή 202
apps/apiΤο stdio MCP στον υπολογιστή του χρήστη συμπιέζει έναν φάκελο σε ZIP και τον ανεβάζει. Η συνεδρία του δεν μοιράζεται με την απομακρυσμένη συνεδρία OAuth.
επικύρωση · στόχος · αποδοχή 202
apps/apiδεδομένα: καταγραφή queued · 202κατάσταση operation · σύνδεση runapi/product-store.jsΕλέγχονται η είσοδος, ο καταχωρισμένος στόχος, η χωρητικότητα και το κλειδί idempotency. Η operation καταγράφεται ως queued και η απάντηση είναι 202. Το 202 σημαίνει αποδοχή, όχι ανάπτυξη.
κατάσταση operation · σύνδεση run
api/product-store.jsδεδομένα: σειρά ουράςουρά ανάπτυξης · 3 ταυτόχροναapps/apiΛαμβάνονται με τη σειρά αποδοχής, μέσα στο όριο ταυτόχρονων αναπτύξεων (3 από προεπιλογή).
κατάσταση operation · σύνδεση run
api/product-store.jsπαρατήρηση: κατάσταση ανάπτυξης · ιστορικόοθόνη web · ιστορικό · Insightsapps/dashboardΗ οθόνη web και τα εργαλεία MCP διαβάζουν τις ίδιες καταγραφές operation. Η πιο πρόσφατη προσπάθεια και η τρέχουσα επαληθευμένη ανάπτυξη εμφανίζονται χωριστά, και μια ολοκληρωμένη εργασία AI δεν είναι επιτυχία ανάπτυξης.
Έλεγχοι CI → δημοσίευση image
Ο σταθεροποιημένος κώδικας πλατφόρμας ελέγχει το υποβληθέν commit, αναθέτει στην AI μόνο αποτυχίες που διορθώνονται και δημοσιεύει μόνο images που πέρασαν ξανά τους ίδιους ελέγχους.
ουρά ανάπτυξης · 3 ταυτόχρονα
apps/apiδεδομένα: source commitcommit πηγής · trailersapps/<tenant>/<app>Η υποβληθείσα πηγή γίνεται commit στο ιδιωτικό αποθετήριο apps (με τα trailers Railshot-Request και Railshot-Target), και ο κλάδος ενημερώνεται χωρίς force.
ουρά ανάπτυξης · 3 ταυτόχρονα
apps/apiεκτέλεση · εφαρμογή: workflow_dispatchloop · βασικοί έλεγχοι L0–L3railshot-deploy.ymlΖητά εκτέλεση με tenant, app, source_commit και target_id. Αν χαθεί η απάντηση, δεν στέλνεται ξανά, αλλά αναζητούνται οι εκτελέσεις για το ίδιο commit.
commit πηγής · trailers
apps/<tenant>/<app>δεδομένα: υποβληθέν commitloop · βασικοί έλεγχοι L0–L3railshot-deploy.ymlΓίνεται checkout μόνο του υποβληθέντος commit και του σταθεροποιημένου κώδικα πλατφόρμας (PLATFORM_REF).
Επιδιόρθωση SDK · μόνο διορθώσιμες αποτυχίες
railshot-deploy.ymlδεδομένα: αίτημα επιδιόρθωσης · υπό όρουςAI SDK providerΚαλείται μόνο για κατηγορίες αποτυχιών που διορθώνονται, και σταματά όταν η ίδια αποτυχία επαναλαμβάνεται ή όταν εξαντλείται το όριο προσπαθειών. Επιτυχία ή αποτυχία αποφασίζουν οι έλεγχοι, όχι το LLM.
release · δημοσίευση GHCR · σύνδεση
railshot-deploy.ymlδεδομένα: δημοσίευση ελεγμένων imagesGHCRΑφού επαληθευτεί το bundle που πέρασε τους ελέγχους, τα ίδια images δημοσιεύονται στο GHCR. Τίποτα δεν ξαναχτίζεται.
σύνδεση εκτέλεσης CI · παρατήρηση
apps/apiπαρατήρηση: εκτέλεση · ανάγνωση δημοσίευσηςrailshot-deploy.ymlΜια δημοσίευση μετρά μόνο όταν τα run id, source commit, target και app ταιριάζουν με την αποδεκτή καταγραφή.
σύνδεση εκτέλεσης CI · παρατήρηση
apps/apiαποτυχία · άγνωστο αποτέλεσμα: failed · publication_unverifiedκατάσταση operation · σύνδεση runapi/product-store.jsΜια αποτυχία CI ή μια μη επαληθευμένη δημοσίευση καταγράφεται με διαγνωστικά και δεν περνά στο CD.
Εφαρμογή → δημόσιος έλεγχος
Εφαρμόζει μέσω config Git και Argo CD μόνο όταν η δημοσίευση ταιριάζει με τον καταχωρισμένο στόχο, και καταγράφει επιτυχία μόνο αφού περάσει τον έλεγχο η καταχωρισμένη δημόσια διεύθυνση HTTPS.
release · δημοσίευση GHCR · σύνδεση
railshot-deploy.ymlδεδομένα: images.json · spec · verdict · manifestcd.js · deployPublishedapps/apiΤο CD διαβάζει τα αρχεία της καταγραφής δημοσίευσης μέσω έμπιστου loader. Το ίδιο το CI δεν δημιουργεί πόρο συστοιχίας, URL ή επιτυχία ανάπτυξης.
cd.js · deployPublished
apps/apiεκτέλεση · εφαρμογή: apply · καταχωρισμένος στόχοςέμπιστο config · καταχωρισμένος στόχοςgitops/bridge.pyΕκτελεί το gitops/bridge.py με το έμπιστο config μόνο όταν το καταχωρισμένο app και ο tenant ταιριάζουν με την καταγραφή δημοσίευσης.
commit · push · απομακρυσμένη επανανάγνωση
gitops/bridge.pyδεδομένα: workload commit · pushΑποθετήριο config GitΚάνει commit μόνο το workload.json στην καταχωρισμένη διαδρομή ενός αποκλειστικού κλάδου, καταγράφει πρώτα την πρόθεση push, κάνει push και ξαναδιαβάζει το απομακρυσμένο revision. Ένα αβέβαιο push δεν επαναλαμβάνεται.
Αποθετήριο config Gitδεδομένα: revisionΈλεγχος Application · AppProject
Argo CDΤο revision του αποθετηρίου config στο οποίο δείχνει το Argo CD Application.
Argo sync · παρατήρηση
gitops/bridge.pyεκτέλεση · εφαρμογή: sync · παρατήρησηΈλεγχος Application · AppProjectArgo CDΖητά sync αφού ελέγξει το AppProject. Η παρατήρηση μόνο διαβάζει, χωρίς sync.
Έλεγχος Application · AppProject
Argo CDεκτέλεση · εφαρμογή: εφαρμογήworkload · ServiceΣυστοιχία εφαρμογών K3sΕφαρμόζει το workload στη συστοιχία του καταχωρισμένου στόχου.
workload · Service
Συστοιχία εφαρμογών K3sδεδομένα: image pull · digestGHCRΤραβά το δημοσιευμένο digest. Ένα ιδιωτικό GHCR χρειάζεται αποκλειστικό διαπιστευτήριο pull.
probe δημόσιου HTTPS
gitops/bridge.pyπαρατήρηση: HTTPS healthΔημόσιο HTTPS URLΕλέγχει μόνο τη διεύθυνση HTTPS health που καταχώρισε ο χειριστής, χωρίς ανακατευθύνσεις, για 200 (και το αναμενόμενο JSON αν έχει οριστεί).
Δημόσιο HTTPS URLδεδομένα: δημόσια διαδρομήworkload · Service
Συστοιχία εφαρμογών K3sΗ δημόσια διαδρομή (LB, NodePort, πιστοποιητικό) διαφέρει ανά πάροχο και καταχωρισμένο στόχο.
cd.js · deployPublished
apps/apiδεδομένα: succeeded · revision · URLκατάσταση operation · σύνδεση runapi/product-store.jsΚαταγράφεται ως succeeded μόνο με cd.deployed, revision, επιτυχή δημόσιο έλεγχο HTTPS, τον χρόνο του και έγκυρο URL.
cd.js · deployPublished
apps/apiαποτυχία · άγνωστο αποτέλεσμα: unknown · απαιτείται εναρμόνισηκατάσταση operation · σύνδεση runapi/product-store.jsΈνα αποτέλεσμα που δεν μπορεί να γίνει γνωστό μένει unknown, και η ίδια εφαρμογή ούτε ξαναστέλνεται ούτε αναιρείται.
Παρατήρηση · όχι ετυμηγορία
Οι μετρικές και τα probes δεν αποφασίζουν την επιτυχία της ανάπτυξης. Τιμές που λείπουν, παλιές και αποτυχημένες εμφανίζονται όπως είναι.
metrics observer
apps/apiπαρατήρηση: Ερώτημα PromQLPrometheusΔιαβάζει τις σειρές up, probe_success και Pod. Τιμές που λείπουν, είναι παλιές ή απέτυχαν εμφανίζονται σε αυτή την κατάσταση και ποτέ δεν μετατρέπονται σε 0.
Prometheusπαρατήρηση: scrape · probeworkload · Service
Συστοιχία εφαρμογών K3sScrape exporter και HTTP probe. Αυτές οι μετρικές δεν χρησιμοποιούνται για να κριθεί η επιτυχία της ανάπτυξης.
κατάσταση operation · σύνδεση run
api/product-store.jsπαρατήρηση: κατάσταση ανάπτυξης · ιστορικόοθόνη web · ιστορικό · Insightsapps/dashboardΗ οθόνη web και τα εργαλεία MCP διαβάζουν τις ίδιες καταγραφές operation. Η πιο πρόσφατη προσπάθεια και η τρέχουσα επαληθευμένη ανάπτυξη εμφανίζονται χωριστά, και μια ολοκληρωμένη εργασία AI δεν είναι επιτυχία ανάπτυξης.
probe δημόσιου HTTPS
gitops/bridge.pyπαρατήρηση: HTTPS healthΔημόσιο HTTPS URLΕλέγχει μόνο τη διεύθυνση HTTPS health που καταχώρισε ο χειριστής, χωρίς ανακατευθύνσεις, για 200 (και το αναμενόμενο JSON αν έχει οριστεί).
Κάθε σύνδεση με το ίδιο πάχος. Επιλέξτε μια ροή για να επισημανθεί μόνο η διαδρομή της, με αριθμημένα βήματα.
- Συνεχής · η κατεύθυνση ροής πηγής, images και αιτημάτων
- Διακεκομμένη · αίτημα εκτέλεσης, εφαρμογή ή sync
- Μακριά παύλα-τελεία · αναγνώσεις κατάστασης, probes και μετρικές, χωριστά από την ετυμηγορία
- Κοντή παύλα · καταγεγραμμένη αποτυχία ή unknown αποτέλεσμα
- Παχιά μαύρη γραμμή · η επιλεγμένη ροή, οι αριθμοί δίνουν τη σειρά
- Κουτί · όριο ιδιοκτησίας, με τη διαδρομή πηγής στην κεφαλίδα
- Εσωτερικό τσιπ · στοιχείο μέσα σε αυτό το όριο
- Διακεκομμένο κουτί · εκτός της πλατφόρμας
- Πορτοκαλί περίγραμμα · σημείο όπου αποφασίζει ένα μοντέλο
- API προϊόντος
- Καταγραφές ανάπτυξης
- Όριο εκτέλεσης CD
- Είσοδος · CI · στόχος
Η εικόνα της October 2 (bc61a5a) στο docs/architecture/README.md είναι ιστορικό υλοποίησης, ενώ αυτή η αρχιτεκτονική ακολουθεί τον κώδικα του 645e28a. Οι πάροχοι και οι διαδρομές δικτύου διαφέρουν ανά καταχωρισμένο στόχο, και αυτό δεν σημαίνει ότι κάθε πάροχος είναι πάντα ενεργός.