./blog.sh

./blog.sh: blogovací engine, kterému stačí terminál

./blog.sh na Root.cz, mými slovy a česky: proč text i obrázky patří na vlastní disk, co je sestavení a kde může výsledek bydlet, jak komentáře jedou po Fediverse a proč dvaadvacet importérů čte export, ne API. A rovnou i to, pro koho engine není: pro víc autorů, pro webovou administraci, pro pluginy.

Číst dál

./blog.sh na LinuxDays 2026

O tomto víkendu, v sobotu 3. a neděli 4. října, proběhnou v Praze na FIT ČVUT v Dejvicích již tradiční LinuxDays 2026. Vstup je volný.

V sobotu budu celý den na stánku mých přátel z OSCloudu. Jestli si chceš o ./blog.sh popovídat, zeptat se, jak to či ono funguje, zjistit, jestli by unesl tvůj blog, nebo mi říct, o co jsi zakopl, je to příležitost probrat to tváří v tvář, a ne v issues na GitHubu.

Nic zásadního si nechystej. Stačí otázka — nebo blog, který se chystáš přestěhovat. Vše ostatní si řekneme na LinuxDays 2026.

Program a jak se tam dostat: linuxdays.cz/2026

#blogsh #LinuxDays

Všechno ostatní v 1.9

Pět příspěvků pokrylo to, o čem 1.9 je: příspěvek ve dvou jazycích, web v jazyce stránky, co leží v cíli nasazení před prvním nasazením, hosting, který umí jen FTP a jednu zkratku v telefonu místo dvou. Tenhle je zbytek, v pořadí, v jakém ho provozovatel potká. Většina z něj přišla od dvou lidí, kteří 1.9 nainstalovali od nuly a upgradovali kopii webu o 6 600 příspěvcích, přesně podle dokumentace.

Číst dál

Jedna zkratka místo dvou

Poslat příspěvek z iPhonu chtělo až do 1.9 dvě zkratky: jednu, která převezme soubory z panelu sdílení, a druhou, která otevře spojení přes SSH. Napsáno ve vlaku prošlo obě. Teď je to jedna zkratka, importovaná místo stavěná, a běží i na Macu.

Číst dál

Hosting, který umí jen FTP

Sdílený hosting často přichází s adresářem, přihlášením přes FTP a ničím dalším – bez SSH, bez rsync, bez gitu. Pro blog.sh to stačilo odjakživa; dokumentace to jen do 1.9 neříkala. Cesta vede přes backend rclone, protože rclone umí FTP jako jeden ze svých mnoha vzdálených cílů.

Číst dál

Před prvním nasazením

Někdo stěhuje blog z WordPressu na blog.sh a nechává si stejný hosting, stejný adresář i stejnou adresu. Sestavení je hotové, první nasazení projde bez jediné chyby – a úvodní stránka je pořád ta stará. Při nahrávání se nic nepokazilo. Starý web jen nikdo neodstranil a hosting mu dává přednost.

Číst dál

Web mluví jazykem stránky

Někdo přeloží své příspěvky, otevře českou polovinu webu – a menu pořád říká Writing, patička Links a na každé pilulce stojí anglický štítek. Příspěvky byly vždycky jen polovina toho, co čtenář čte. Zbytek je to, co web říká sám o sobě, a v 1.9 to má jazyk taky.

Číst dál

Dva jazyky, jeden web

Někdo píše česky a část lidí, kteří by ho četli, česky neumí. Obvyklá odpověď je druhý blog – druhý archiv, druhá sada štítků, druhý feed – a do roka se ty dva rozejdou: příspěvek opravený v jednom a ve druhém ne, štítek přejmenovaný jen na jedné straně, čtenář, který přepne jazyk a ocitne se jinde, než čekal. blog.sh 1.9 odpovídá jinak: jeden web a druhý jazyk vedle něj.

Číst dál

./blog.sh 1.9

./blog.sh 1.9 je venku — vydání na GitHubu.

Vydání o publikování ve více jazycích. Vyjmenuješ je v site.locales a příspěvek si nechá jedno datum, jednu sadu štítků a jednu sérii, s textem pro každý jazyk, který napíšeš přes ./blog.sh translate. Vlastní jazyk webu zůstává v kořeni, každý další dostane svůj a jedno sestavení udělá všechny. Banner, menu, patička i štítky mluví každým jazykem taky; příspěvek, který nikdo nepřeložil, se ukáže i tak a odkáže na jedinou kopii, která existuje. Tenhle web tak běží anglicky a česky už od doby, kdy bylo vydání konceptem.

Kolem toho první hodina: dva lidé nainstalovali 1.9 od nuly a upgradovali kopii webu o 6 600 příspěvcích, přesně podle dokumentace, a všechno, o co zakopli, je opravené. Esc nikdy nic neudělá, instalační průvodce mluví tvým jazykem od první obrazovky a nevezme příklad ze šablony jako jméno tvého webu, vlastnosti konceptu ukážou, kde si ho přečíst — i s QR kódem pro telefon — a doctor --online se teď zeptá cíle nasazení, co mu v kořeni leží navíc.

Číst dál

Co žádné sestavení nevrátí

Notebook doslouží, nebo se server buduje znovu od nuly, a otázka, na které skutečně záleží, je užší, než zní. Ne „jak to zálohovat" – „které z těchto souborů po mně engine opravdu potřebuje chránit, protože nic jiného tady je znovu nevyrobí."

Většina instalace tuto podmínku nesplňuje. Engine sám je git klon; stáhni ho znovu a je to tentýž engine. Všechno, co sestavení zapisuje, se vrátí jedním sestavením, pokud zbylo to ostatní.

Instinkt velí zálohovat samotný web – složku, kterou prohlížeč skutečně vidí. To je přesně ta jediná věc, kterou tento seznam vynechává. public.nosync, vlastní výstup sestavení, je stejně postradatelný jako engine, který ho vytvořil: jedno sestavení ho zopakuje bajt po bajtu, takže držet jeho kopii by znamenalo ukládat tutéž informaci dvakrát pod dvěma jmény a omylem věřit té starší.

Co zbývá, když odložíme engine i web, který sestavuje, je krátký seznam.

Co je skutečně nenahraditelné

Nejdřív samotné příspěvky – jediná položka celého seznamu, kterou žádné sestavení, nový klon ani nové nasazení nevrátí za žádných okolností.

Číst dál