ŠtítekHugo

Hugo na OSCloud: Statický web bez kompromisů

Hugo na OSCloud

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 — 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.

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 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:

sudo pacman -S hugo
hugo version

Na Ubuntu/Debianu:

sudo apt install hugo

Nebo stáhněte nejnovější verzi z GitHubu.

2. Vytvoření projektu

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. My používáme Blowfish, ale pro začátek je dobré třeba Ananke:

git submodule add https://github.com/gohugo-ananke/ananke themes/ananke
echo 'theme = "ananke"' >> hugo.toml

4. Základní konfigurace

Upravte hugo.toml:

baseURL = "https://vasedomena.cz/"
languageCode = "cs"
title = "Můj web"
theme = "ananke"

5. První článek

hugo new posts/prvni-clanek/index.md

Otevřete content/posts/prvni-clanek/index.md a napište obsah v Markdownu:

---
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:

![Popis obrázku](obrazek.jpg)

6. Lokální náhled

hugo server -D

Otevřete http://localhost:1313 v prohlížeči. Hugo sleduje změny a automaticky stránku obnovuje.

7. Build

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:

# 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:

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:

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:

#!/bin/bash
# deploy.sh
hugo --minify
surfer put public/* /
echo "Nasazeno!"
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:

WordPressHugo
Načítánízávisí na cachinguokamžité
Bezpečnostpravidelné záplatyžádný vektor
Údržbapluginy, jádrožádná
ZálohyDB + souboryGit repo
ObsahWYSIWYG editorMarkdown
VerzovánínepraktickéGit nativně
ServerPHP + MySQLstatický

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 — č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 — pull requesty vítány.


Máte otázky? Napište nám na Fediverse, Matrix nebo na fórum.

Číst dál

Nový web Arch Linux CZ

Přecházíme na statický web

Po několika letech na WordPressu jsme se rozhodli přejít na modernější řešení. Nový web arch-linux.cz běží na statickém generátoru Hugo s tématem Blowfish.

Co se změnilo?

  • Rychlost — statický web se načítá okamžitě, žádné PHP, žádná databáze
  • Vyhledávání — nový fulltext search přímo na webu
  • Dark mode — přepínání světlého a tmavého režimu
  • Přehlednější navigace — návody, zprávy, archiv a tagy na jednom místě
  • Open source — zdrojový kód webu je veřejně dostupný na naší Gitea - kdokoliv může přispět článkem nebo vylepšením

Proč Hugo?

WordPress nám sloužil dobře, ale pro technický blog o Arch Linuxu nedával smysl. Potřebovali jsme něco, co odpovídá filozofii Archu — jednoduché, rychlé a pod plnou kontrolou.

Hugo generuje čisté HTML soubory z Markdownu. Žádné pluginy, žádné aktualizace, žádné bezpečnostní díry. Články píšeme v Markdownu, commitujeme do Gitu a nasadíme jedním příkazem.

Kde web běží?

Web i všechny komunitní služby jsou hostovány na OSCloud — české cloudové platformě postavené na svobodném softwaru.

Co zůstává?

Všechny staré články jsme přemigrovali. Adresy článků zůstávají stejné, takže staré odkazy z vyhledávačů i záložek budou fungovat.

Fediverse identita @<arch@arch-linux.cz> zůstává beze změny.

Zapojte se

Máte nápad na vylepšení webu? Chcete přispět článkem? Zdrojový kód je na Gitea — pull requesty vítány!

Sledujte nás:

Číst dál