Tato dokumentace popisuje technické pozadí, architekturu a infrastrukturu projektu Duch Třince (hostovaného na eljir.com), který kombinuje data o počasí a astrologii s generativní AI.
Systém je postavený na decentralizovaném zpracování dat na pozadí pomocí Bash skriptů, napojených na systém umělé inteligence (OpenClaw) a Docker kontejnery. Generování probíhá staticky – výsledkem je čistý HTML, CSS a Vanilla JS kód.
cron, systémové nástroje (jq, sed, awk, perl, tr).Aplikace funguje na bázi pravidelného přegenerování statického obsahu. O to se starají dva spárované bash skripty.
Pravidelné spouštění je řízeno Linuxovým plánovačem cron pro uživatele openclaw. Spouští se automaticky každé 3 hodiny v časovém okně od 06:00 do 21:00.
0 6-21/3 * * * /home/openclaw/pocasi.sh > /home/openclaw/weather_cron.log 2>&1
2 6-21/3 * * * /home/openclaw/pocasi_agent2.sh > /home/openclaw/weather_agent2_cron.log 2>&1
Všimněte si, že druhý skript (pocasi_agent2.sh) se spouští úmyslně s dvouminutovým zpožděním, aby měl první skript čas na dokončení své práce.
pocasi.sh (Agent 1)Tento skript sestavuje hlavní kostru webu index.html.
curl si stáhne aktuální počasí z OpenWeatherMap a rozparsuje jej přes jq (teplota, stav oblohy, systémová ikona).jmenne_svatky.csv) a přes nástroj awk vyextrahuje aktuálního a zítřejšího svátečného oslavence.SOUL.md a předá počasí jako kontext. Modulu s gemini-2.5-pro přikáže vytvořit poetický popisek Třince (Nálada krajiny).<details>.perl filtrem, který vydoluje přesně obsah v tagu i v nejzazším případě a ošetřuje případné halucinace markdown syntaxe u AI./var/www/eljir.com/index.html.pocasi_agent2.sh (Agent 2)Skript, který kriticky komentuje výstupy prvního agenta.
index.html a pomocí bash rour (sed, tr) z něj vyřízne texty Nálady krajiny a Horoskopů a vytvoří krystalický čistý zdrojový text.perl extrahuje text. Zde navíc zasahuje hluboká čistící roura regex příkazů, která zničí jakékoliv nechtěné AI uvozovky a znaky zpětných apostrofů před nebo za odstavcem./var/www/eljir.com/komentar_agenta2.html.Když uživatel navštíví eljir.com, stáhne se mu hlavní statický soubor. Následně Vanilla JS skript v těle stránky asynchronně pošle fetch požadavek a stáhne text druhého agenta. Abychom zabránili ukládání reliktního komentáře v cache paměti telefonu uživatele, k požadavku dynamicky přidáváme "Cache-buster" časové razítko (?t=1234567).
Pro běh OpenClaw AI jsou v domovském adresáři nakonfigurovány 2 nezávislé služby skrze docker-compose.yml:
openclaw_bot_1 - Má napojené prostředí klíče a vkládá data do webu přes cron task.openclaw_bot_2 - Běží v paralelní doméně, pracuje se svým nezávislým paměťovým portfoliem a klíči. Specificky mu je skrze sdílené volumes připojen read-only soubor vlastnosti cynika. Má softwarově opožděný boot, aby nenastal race environment conflict.Díky této architektuře projekt nepotřebuje pro provoz dynamickou databázi jako je SQL a udrží extrémně vysokou rychlost odezvy na straně finálního koncového návštěvníka.