diff --git a/content/posts/hugo-na-oscloud/featured.png b/content/posts/hugo-na-oscloud/featured.png new file mode 100644 index 0000000..fce2075 Binary files /dev/null and b/content/posts/hugo-na-oscloud/featured.png differ diff --git a/content/posts/hugo-na-oscloud/index.md b/content/posts/hugo-na-oscloud/index.md new file mode 100644 index 0000000..62baa9c --- /dev/null +++ b/content/posts/hugo-na-oscloud/index.md @@ -0,0 +1,250 @@ +--- +title: "Hugo na OSCloud: Statický web bez kompromisů" +date: 2026-07-04 +draft: false +description: "Jak rozjet statický web s Hugo na platformě OSCloud..." +categories: ["Návody"] +tags: ["Hugo", "OSCloud", "Cloudron", "Surfer", "LAMP", "statický web", "self-hosting"] +image: "featured.jpg" +author: "archos" +--- +![Hugo na OSCloud](featured.png) + +WordPress nám sloužil roky a pro spoustu projektů je skvělá volba. Pro náš technický blog o Arch Linuxu jsme ale hledali něco bližšího naší filozofii — psát články v Markdownu, verzovat v Gitu a mít web pod plnou kontrolou bez zbytečné komplexity. + +Přešli jsme na [Hugo](https://gohugo.io/) — statický generátor napsaný v Go, který z Markdownu vytvoří kompletní web za zlomek sekundy. Žádné PHP, žádná databáze, žádné bezpečnostní díry. A celé to běží na [OSCloud](https://oscloud.cz). + +## Co je Hugo? + +Hugo je open-source generátor statických webů. Místo toho, aby server při každém požadavku tahal data z databáze a skládal stránku za běhu (jako WordPress), Hugo vygeneruje všechny HTML soubory předem. Výsledek je jednoduchá složka souborů, kterou hodíte na jakýkoliv webserver. + +Co to znamená v praxi: + +- **Rychlost** — stránky se načítají okamžitě, protože server jen servíruje hotové soubory +- **Bezpečnost** — žádný PHP interpret, žádná databáze = žádný útočný vektor +- **Jednoduchost** — články píšete v Markdownu, verzujete v Gitu +- **Nulová údržba** — žádné aktualizace pluginů, žádné padající databáze + +Hugo má přes 88 000 hvězd na GitHubu a aktivní komunitu. Podporuje témata, vícejazyčnost, taxonomie, RSS, vyhledávání a spoustu dalšího. + +## Co je OSCloud? + +[OSCloud](https://oscloud.cz) je česká cloudová platforma zaměřená na soukromí a open source. +OSCloud nabízí hosting open-source aplikací jako alternativu ke komerčním cloudům. +Najdete tu Nextcloud, Matrix, PeerTube, Gitea, GoToSocial,Mastodon, Pixelfed, VHSky a desítky dalších služeb. A taky hosting webů — WordPress, LAMP, Grav nebo **Surfer** pro statické weby. + +Pro hosting Hugo webu máte na OSCloud dvě varianty: **Surfer** a **LAMP**. Každá se hodí na něco jiného. + +## Varianta 1: Surfer — jednoduchý statický hosting + +Surfer je minimalistická Cloudron aplikace pro servírování statických souborů. Nic víc, nic míň. Nahrajete soubory a web běží — žádný Apache, žádný nginx config. + +Surfer nabízí: + +- **Webové rozhraní** pro správu souborů na `https://vasedomena.cz/_admin/` +- **CLI nástroj** pro nahrávání z terminálu +- **SFTP přístup** pro nahrávání přes FileZilla nebo příkazovou řádku +- **WebDAV** endpoint +- **Vlastní 404 stránka** — stačí nahrát `404.html` do kořene +- **Řízení přístupu** — veřejný, heslem chráněný, nebo jen pro přihlášené uživatele + +**Surfer je ideální když:** chcete prostě hodit Hugo web na server a nic víc neřešit. + +**Surfer nestačí když:** potřebujete server-side redirecty (`.htaccess`), servírovat soubory z tečkových složek (`.well-known`) nebo třeba Fediverse webfinger identitu. + +## Varianta 2: LAMP — když potřebujete víc + +LAMP aplikace na Cloudronu dává plný Apache s podporou `.htaccess`. Hugo web na něm běží úplně stejně — Apache servíruje statické soubory bez problémů — ale navíc můžete: + +- Nastavit **redirecty a rewrite pravidla** přes `.htaccess` +- Servírovat obsah z **`.well-known`** složky (webfinger, Let's Encrypt verifikace) +- Propojit web s **Fediverse** — například redirect `@arch@arch-linux.cz` na GoToSocial instanci + +Právě proto tento web (arch-linux.cz) běží na LAMP — potřebujeme webfinger redirect pro naši Fediverse identitu `@arch@arch-linux.cz`. + +**LAMP zvolte když:** potřebujete cokoliv nad rámec prostého servírování souborů. + +## Krok za krokem: Hugo web na OSCloud + +### 1. Instalace Hugo + +Na Arch Linuxu: + +```bash +sudo pacman -S hugo +hugo version +``` + +Na Ubuntu/Debianu: + +```bash +sudo apt install hugo +``` + +Nebo stáhněte nejnovější verzi z [GitHubu](https://github.com/gohugoio/hugo/releases). + +### 2. Vytvoření projektu + +```bash +hugo new site muj-web +cd muj-web +git init +``` + +### 3. Přidání tématu + +Můžete použít libovolné téma z [themes.gohugo.io](https://themes.gohugo.io/). My používáme [Blowfish](https://blowfish.page/), ale pro začátek je dobré třeba Ananke: + +```bash +git submodule add https://github.com/gohugo-ananke/ananke themes/ananke +echo 'theme = "ananke"' >> hugo.toml +``` + +### 4. Základní konfigurace + +Upravte `hugo.toml`: + +```toml +baseURL = "https://vasedomena.cz/" +languageCode = "cs" +title = "Můj web" +theme = "ananke" +``` + +### 5. První článek + +```bash +hugo new posts/prvni-clanek/index.md +``` + +Otevřete `content/posts/prvni-clanek/index.md` a napište obsah v Markdownu: + +```markdown +--- +title: "Můj první článek" +date: 2026-07-04 +draft: false +description: "Zkušební článek na Hugo webu" +tags: ["hugo", "test"] +--- + +Tady je obsah článku v **Markdownu**. + +## Podnadpis + +- položka jedna +- položka dvě +``` + +Obrázky k článku umístěte do stejné složky (`content/posts/prvni-clanek/`) a v textu je vložte: + +```markdown +![Popis obrázku](obrazek.jpg) +``` + +### 6. Lokální náhled + +```bash +hugo server -D +``` + +Otevřete `http://localhost:1313` v prohlížeči. Hugo sleduje změny a automaticky stránku obnovuje. + +### 7. Build + +```bash +hugo --minify +``` + +Výsledné soubory najdete ve složce `public/`. To je váš kompletní web — čisté HTML, CSS a JavaScript. + +### 8. Nasazení na OSCloud + +Deploy záleží na tom, kterou aplikaci jste si zvolili. + +**Pro Surfer — CLI:** + +```bash +# instalace CLI +npm -g install cloudron-surfer + +# konfigurace +surfer config --server https://vasedomena.cz --token VAS_API_TOKEN + +# nahrání souborů +surfer put public/* / +``` + +API token vytvoříte v Surfer admin rozhraní (`https://vasedomena.cz/_admin/`) v sekci Settings. + +**Pro Surfer — SFTP:** + +```bash +lftp -p 222 -u "vas_uzivatel" sftp://vas-server.oscloud.cz +> mirror -R public/ / +> quit +``` + +**Pro Surfer — webové rozhraní:** + +Přetáhněte soubory do správce na `https://vasedomena.cz/_admin/`. + +**Pro LAMP — SFTP:** + +```bash +lftp -p 222 -u "vas_uzivatel" sftp://vas-server.oscloud.cz +> mirror -R public/ /public/ +> quit +``` + +U LAMP aplikace je SFTP root `/app/data/`, takže cílová složka je `/public/`. + +Pokud potřebujete `.htaccess`, nahrajte ho do složky `static/` v Hugo projektu — Hugo ho zkopíruje do `public/` při buildu a SFTP ho nahraje na server. + +### 9. Automatizace (volitelné) + +Celý deploy se dá zabalit do jednoho skriptu: + +```bash +#!/bin/bash +# deploy.sh +hugo --minify +surfer put public/* / +echo "Nasazeno!" +``` + +```bash +sudo bash ./deploy.sh +``` + +Pro LAMP variantu nahraďte `surfer put` za odpovídající `lftp` příkaz. + +## WordPress vs Hugo + +WordPress i Hugo mají své místo. Tady je srovnání, proč jsme se pro náš konkrétní případ rozhodli jinak: + +| | WordPress | Hugo | +|---|---|---| +| Načítání | závisí na cachingu | okamžité | +| Bezpečnost | pravidelné záplaty | žádný vektor | +| Údržba | pluginy, jádro | žádná | +| Zálohy | DB + soubory | Git repo | +| Obsah | WYSIWYG editor | Markdown | +| Verzování | nepraktické | Git nativně | +| Server | PHP + MySQL | statický | + +WordPress je výborný pro weby s e-shopem, členskou sekcí nebo tam, kde obsah spravují netechničtí uživatelé přes přehledné admin rozhraní. Pro blog, kde články píšeme v terminálu a verzujeme v Gitu, nám Hugo prostě sedl líp. + +## Závěr + +Hugo na OSCloud je kombinace, která dává smysl. Rychlý, bezpečný a jednoduchý web bez zbytečné komplexity. Články píšete v Markdownu, verzujete v Gitu a nasadíte jedním příkazem. + +Pro jednoduchý statický web sáhněte po **Surferu**. Pokud potřebujete redirecty, `.well-known` nebo Fediverse integraci, zvolte **LAMP** — obojí na OSCloud funguje skvěle. + +Pokud vás zajímá self-hosting a chcete mít svá data pod kontrolou, mrkněte na [OSCloud](https://oscloud.cz) — českou platformu postavenou na open-source technologiích. Kromě hostingu webů nabízí Nextcloud, Matrix chat, PeerTube, Gitea a další služby. + +Zdrojový kód tohoto webu je veřejně dostupný na naší [Gitea](https://git.arch-linux.cz/ArchlinuxCz/web-archlinux_cz) — pull requesty vítány. + +--- + +*Máte otázky? Napište nám na [Fediverse](https://gts.arch-linux.cz/@arch), [Matrix](https://matrix.to/#/#archlinuxcz:matrix.org) nebo na [fórum](https://forum.arch-linux.cz/).* diff --git a/hugo.toml b/hugo.toml index b0fed06..5d06d11 100644 --- a/hugo.toml +++ b/hugo.toml @@ -52,7 +52,6 @@ theme = "blowfish" showComments = false [params.list] - showHero = false showBreadcrumbs = true showSummary = true showTableOfContents = false @@ -133,3 +132,4 @@ theme = "blowfish" [permalinks] posts = "/:slug/" +