Surfer je jeden z nejlepších nástrojů na OSCLOUDu, o kterém většina lidí neví, že existuje. Přitom je to nejjednodušší možný způsob, jak dostat vlastní web online — žádné databáze, žádný CMS, žádné PHP. Nahraješ HTML soubory a máš web. Tečka.

Tenhle článek je pro každého, kdo někdy chtěl mít vlastní stránku, dokumentaci k projektu, portfolio nebo prostě místo, kam nahrát pár souborů a poslat odkaz kamarádovi.

Co Surfer dělá

Surfer servíruje statické soubory. Co tam nahraješ, to ukáže v prohlížeči. Když nahraješ index.html, návštěvník na tvojí doméně uvidí ten HTML. Když nahraješ obrázek, je dostupný na přímé URL.

Není to redakční systém. Není to cloudové úložiště. Je to webový server, který umí jednu věc — vzít soubor a poslat ho prohlížeči. A přesně proto je tak užitečný.

K čemu se to hodí

  • Osobní stránka, portfolio, vizitka — pár HTML souborů a hotovo
  • Dokumentace — výstup z MkDocs, Sphinx nebo Docusaurus
  • Blog — generovaný Hugem, Jekyllem, Astrem
  • Landing page — jedna stránka pro projekt nebo akci
  • Sdílení souborů — hodíš PDF nebo ZIP a pošleš odkaz
  • Web malého spolku — pár stránek, kontakt, fotky

Pokud potřebuješ formuláře, login, databázi nebo komentáře, Surfer to neumí. Pro všechno ostatní je to ta nejmíň otravná cesta.

Jak Surfer vypadá

Po přihlášení do svojí Surfer instance najdeš admin rozhraní na https://tvoje-domena.cz/_admin. Logování je přes OSCLOUD účet, žádné extra heslo si nepamatuješ.

V adminu vidíš:

  • strom souborů a složek
  • tlačítko pro nahrávání (drag and drop funguje)
  • nastavení (Settings) — kde se konfiguruje, jak se web chová
  • access tokeny — pro nahrávání z terminálu nebo CI

Pro většinu lidí stačí web rozhraní. Otevřeš, přetáhneš složku se souborama a máš web.

Doména

Surfer můžeš provozovat buď na subdoméně pod oscloud.cz (například mujprojekt.oscloud.cz), nebo na vlastní doméně, kterou si přineseš.

Postup:

  1. Zaregistruj se na OSCLOUDu přes helpdesk.
  2. Po založení Surferu dostaneš pokyny, jaký DNS záznam nastavit (typicky CNAME nebo A).
  3. Po propagaci DNS funguje doména včetně HTTPS.

Certifikát řeší OSCLOUD za tebe. Žádné Let’s Encrypt, žádné renewals, žádné konfigurace. Funguje.

Jak nahrávat soubory

Surfer nabízí čtyři způsoby. Vyber si podle toho, co ti vyhovuje.

1. Web rozhraní — pro všechny

Otevři /_admin, přetáhni soubory nebo složky myší. Funguje to úplně stejně jako uploady kamkoliv jinam. Pro občasné úpravy nebo nahrání pár souborů to bohatě stačí.

2. FileZilla a SFTP — pro lidi, co znají FTP klienty

Pokud jsi někdy nahrával web přes FileZilla, WinSCP nebo Cyberduck, tohle je tvoje cesta. Surfer má SFTP přístup — funguje úplně stejně jako klasický webhosting.

Přihlašovací údaje (host, port, username) najdeš v Cloudron app dialogu pod sekcí SFTP. Heslo je tvoje OSCLOUD heslo.

V FileZilla:

  • Hostitel: tvoje-domena.cz
  • Port: podle Cloudron dialogu
  • Protokol: SFTP
  • Uživatel a heslo: OSCLOUD účet

Pak prostě přetahuješ soubory zleva doprava, jako u jakéhokoliv jiného hostingu.

3. Příkazová řádka — pro terminálové lidi

Když jsi zvyklý na terminál, máš dvě dobré volby.

SFTP přes scp:

scp -P <port> -r ./public/* uzivatel@tvoje-domena.cz:/

Surfer CLI (oficiální nástroj přes npm):

npm install -g cloudron-surfer

Login (token vygeneruješ v /_admin v Settings):

surfer config --server tvoje-domena.cz --token

Upload složky — pozor na hvězdičku, je to důležité:

# Tohle nahraje OBSAH ./public do rootu
surfer put ./public/* /

# Tohle nahraje SLOŽKU public jako podadresář
surfer put ./public /

Bez hvězdičky ti vznikne https://tvoje-domena.cz/public/ místo toho, aby se obsah zobrazil rovnou. Klasický footgun, na který lidi narážejí.

Smazání:

surfer del /stara-stranka.html

4. WebDAV — pro pokročilé

WebDAV endpoint je https://tvoje-domena.cz/_webdav/. Jako heslo se používá access token, který si vygeneruješ v adminu (ne tvoje OSCLOUD heslo — to je častý zdroj nedorozumění).

Užitečné hlavně pro tři věci:

Připojení v souborovém manažeru (Files, Nautilus, Dolphin) — místo URL napiš:

  • Gnome Files: davs://tvoje-domena.cz/_webdav/
  • KDE Dolphin: webdavs://tvoje-domena.cz/_webdav/

Pak s tím pracuješ jako s jakoukoliv jinou složkou.

Rychlý upload jednoho souboru přes curl:

curl -T index.html \
  -u "uzivatel:tvuj_access_token" \
  https://tvoje-domena.cz/_webdav/index.html

Deploy z CI/CD pipeline:

surfer put --token <access-token> --server tvoje-domena.cz dist/* /

Užitečné nastavení (Settings)

V admin rozhraní v sekci Settings najdeš pár přepínačů, které stojí za to znát.

Access control — kdo web uvidí

Tohle je možná nejcennější vlastnost Surferu. Můžeš si vybrat ze tří režimů:

  • Public — web je veřejný, kdokoliv ho vidí
  • Password restricted — návštěvník zadá heslo, které nastavíš
  • User restricted — vidí ho jen lidé s OSCLOUD účtem

Pro veřejný blog dává smysl Public. Pro interní dokumentaci spolku nebo rozdělanou věc, kterou chceš ukázat jen kolegům, použij Password. Pro něco, co má zůstat v rámci komunity, User restricted.

404.html — vlastní stránka pro nenalezené

Když do rootu webu nahraješ soubor 404.html, Surfer ho automaticky pošle při každé chybě 404. Můžeš tam dát vlastní zprávu, vtípek, odkaz na hlavní stranu — co chceš.

Public Folder Listing — výpis složky

Defaultně Surfer pro každou složku hledá index.html. Když ho nenajde, vrátí 404. Pokud zapneš Public Folder Listing, místo 404 se ukáže výpis souborů ve složce — užitečné, když chceš složku používat jako sdílený “file dump”.

Příklad: nahraješ do /soubory/ pár PDF a ZIP souborů, žádný index.html, a návštěvník na /soubory/ uvidí seznam.

Výchozí index

Defaultně se servíruje index.html nebo index.htm. V Settings můžeš změnit jméno toho výchozího souboru, kdyby ti to z nějakého důvodu nesedlo.

Reálný workflow — Hugo blog

Takhle deployuju OSCLOUD blog. Nic složitého, žádný build server, žádné CI:

# 1. napsání článku
nvim content/posts/novy-clanek.md

# 2. preview lokálně
hugo server -D

# 3. build statiky
hugo --minify

# 4. nahrání na Surfer
surfer put ./public/* /

# 5. commit zdrojáků do Gitu
git add -A && git commit -m "novy clanek" && git push

Hotovo. Webový blog updatovaný za pár sekund, bez závislosti na GitHub Actions, Netlify nebo cokoliv podobného.

Pro pohodlí si to hodím do Makefile:

.PHONY: deploy

build:
 hugo --minify

deploy: build
 surfer put ./public/* /

Pak jen make deploy.

Závěr

Surfer je důkaz, že self-hosting nemusí být složitý. Žádné konfiguráky, žádné upgrady, žádné updaty pluginů, které ti rozbijí web. Otevřeš admin, přetáhneš soubory, máš web.

Pokud máš nápad na vlastní stránku, projekt nebo dokumentaci a chceš ji hostovat v rámci OSCLOUDu, ozvi se přes helpdesk. Surfer instance je za pár minut.

A pokud máš tipy nebo otázky, najdeš nás na Mastodonu.