Všetko, čo mi AI urobí, posielam ako odkaz
Na treťom check-ine Vibe Coding Summer sa ma niekto spýtal, kde hostujem appku, ktorú som práve ukazoval. Na Railway, ako všetko ostatné. A pri tom mi došlo, že som v Railway neklikal minimálne dva mesiace. Nasadzovanie za mňa robí agent.
V ten istý deň sa Michal pýtal na vec, ktorú rieši skoro každý, kto s AI začne robiť reporty a prezentácie. Má priečinok, v ňom svoje podklady a medzi nimi pár HTML súborov, ktoré chce ukázať ľuďom. Celý priečinok von ísť nemá. Ako dostať na web len tie súbory?
Môj postup sa odvtedy zmenil, takže tu je, ako to robím dnes.
Odkaz namiesto prílohy
Keď mi Claude Code alebo Codex pripraví report, ponuku alebo zadanie, výsledok je skoro vždy HTML stránka. Mohol by som ju poslať ako prílohu, ale tá sa v mobile otvorí zle, v e-maile sa stratí a keď v nej opravím preklep, musím ju posielať znova. Odkaz ukazuje stále na poslednú verziu.
Predtým som na to mal vlastnú subdoménu napojenú na Railway. Agent uložil súbor do repozitára, pushol ho a o chvíľu som mal odkaz. Takto som posielal zadania ľuďom, ktorí sa k nám hlásili do tímu, aj brief pre grafika. Fungovalo to, ale len pre mňa. Kolegovia by potrebovali prístup do môjho hostingu.
Railway ako jediný hosting
V Aibility beží na Verceli len hlavná platforma. Všetko ostatné máme na Railway: statické weby, interné nástroje, Slackbota s dennými prehľadmi a automatizácie, ktoré sa samy spúšťajú podľa rozvrhu. Platíme za to predplatné 5 dolárov mesačne.
Railway sleduje repozitár na GitHube. Keď agent pushne zmenu, Railway si ju všimne, web znova zostaví a pustí. Nemusím nič nahrávať ani otvárať žiadny dashboard. Takto beží aj tento web. Je to obyčajný statický web vo vlastnom repozitári a Railway ho iba servíruje.
Agent namiesto klikania
Agent na Railway pristupuje cez CLI, teda príkazový riadok, ktorý ovláda hosting bez klikania. Stačí mať nainštalovaný Railway plugin alebo skill a byť prihlásený. Potom poviem len „hotovo, zaves to na Railway“ a agent pripojí repozitár, nastaví projekt a nasadí ho.
Keď sa nástroj medzitým zmenil a agent hľadá tlačidlo, ktoré už neexistuje, dám mu aktuálnu dokumentáciu a nech vychádza z nej. Je to rýchlejšie, než to dohľadávať sám.
Ak repozitár obsahuje viac vecí, než má ísť von, v Railway sa dá nastaviť root directory, teda priečinok, z ktorého sa web berie. To bola odpoveď pre Michala. Pripojí celý repozitár, ale zverejní sa len jeden priečinok.
Web Hub pre malé veci
Pre každý report zakladať nový projekt v Railway je zbytočné. Preto sme v septembri spustili Web Hub. Je to naša interná služba na malé statické stránky z Codexu alebo Claude Code. Jeden repozitár na GitHube, v ňom má každý z tímu svoj priečinok a v ňom svoje stránky.
Kolega povie agentovi „publikuj tento súbor“. Skill web-hub z nášho pluginu dá stránku do jeho priečinka, skontroluje ju, commitne a pushne. GitHub Action ju potom nahrá na Web Hub a agent vráti adresu. Kolega pri tom nepotrebuje žiadny kľúč od Railway.
Keď stránku publikujem znova pod rovnakým názvom, nahradí predchádzajúcu verziu a odkaz ostane rovnaký. Staré verzie ostávajú v histórii Gitu, takže sa dá kedykoľvek vrátiť späť. Nová verzia sa navyše ukáže celá naraz, takže nikto neuvidí napoly nahranú stránku.
Heslo a interný režim
Nie všetko má vidieť každý, kto dostane odkaz. Stránku na Web Hube môžem zamknúť heslom, ale heslo nikdy nejde do repozitára. A keď agentovi napíšem „toto je interná stránka“, publikuje ju do časti, kam sa dostane len niekto s firemným Google účtom. Vidí ju celý tím, nie vybraní ľudia, takže klientske dáta tam nedávam bez rozmyslu.
Všetky stránky na Web Hube majú vyhľadávačom zakázané indexovanie. Report pre klienta tak neskončí v Google, aj keď je odkaz verejný.
Postup od súboru po odkaz
- Agent vyrobí stránku ako jeden HTML súbor alebo priečinok s
index.html. Markdown funguje tiež. - Vyberiem miesto: vlastný web má vlastný repozitár, malé stránky idú na Web Hub a appka s databázou dostane vlastný projekt v Railway.
- Poviem jednu vetu: „publikuj to“, prípadne „s heslom“ alebo „interne“. Zvyšok urobí skill.
- Agent vráti odkaz a jeden riadok o tom, či stránka beží. Takto som si ho nastavil, aby som sa nemusel dopytovať.
- Odkaz otvorím sám, aspoň raz v mobile, a až potom ho pošlem ďalej.
Nie všetko zverejňujem. Prezentácie k lekciám Vibe Coding Summer mám v PACTe a online nejdú, hoci by stačilo nastaviť jeden priečinok.
Ako funguje GitHub, hosting a doména a ako vybrať medzi Vercelom a Railway, sme rozpísali na blogu Aibility.
Časté otázky
Ako poslať HTML report od AI bez prílohy?
Nechajte agenta stránku zverejniť a pošlite odkaz. Na jednoduchý statický súbor stačí každý moderný hosting napojený na GitHub. Výhoda je, že opravu urobíte raz a príjemca na rovnakom odkaze vidí novú verziu.
Dá sa stránka od AI zamknúť heslom?
Áno. Na Web Hube nastavíme heslo zvlášť a do repozitára sa nikdy neukladá. Ďalšie publikovanie stránky heslo zachová. Na interné veci používame režim, kde sa stránka otvorí len s firemným Google účtom.
Potrebuje kolega prístup do Railway, aby mohol publikovať?
Pri Web Hube nie. Stačí mu prístup do nášho repozitára na GitHube a Aibility plugin. Stránku nahrá GitHub Action, ktorá má prístup na Railway uložený centrálne, a kolega ten kľúč nikdy nevidí.
Ako vrátiť zverejnenú stránku na staršiu verziu?
Každé publikovanie je commit v Gite, takže stačí agentovi povedať, nech vráti predchádzajúcu verziu a publikuje ju znova pod rovnakým názvom. Odkaz sa nemení.
Nájde Google stránky, ktoré zdieľam odkazom?
Stránky na našom Web Hube nie, majú indexovanie zakázané. Pri vlastnej subdoméne alebo inom hostingu to záleží na nastavení, takže ak report nemá byť vo vyhľadávaní, povedzte agentovi, nech to nastaví.
Kam dávať API kľúče, keď nasadzuje agent?
Do nastavení hostingu, nie do kódu ani do repozitára. Kľúče pre našu platformu som v Railway naklikal sám a ich hodnoty agentovi do chatu nepíšem.
Tom
Chceš to samé ve své práci?
Sedneme si na hodinu nad tím, co řešíš. 3 000 Kč bez DPH.