Drupal je známý jako robustní a flexibilní CMS pro webové projekty. Méně známé je, že může sloužit i jako základ offline aplikace – například pro interaktivní kiosky ve výstavách, firemní intranety, informační panely nebo mobilní zařízení bez připojení k síti.

V tomto článku si ukážeme, jak z Drupalu vytvořit systém, který funguje i bez internetu, a jaké technologie k tomu využít.

Kde to dává smysl?

1. Muzea, výstavy a galerie

  • Interaktivní kiosky s dotykovou obrazovkou.
  • Lokální prezentace exponátů, map, videí nebo animací.
  • Není třeba trvalé připojení k internetu – vše běží z jednoho zařízení nebo lokální sítě.

2. Uzavřený firemní intranet

  • Prostory s vysokými bezpečnostními nároky (výrobní haly, vojenské objekty).
  • Není povoleno připojení k veřejné síti, ale zaměstnanci potřebují přístup k informacím a interním dokumentům.

3. Vzdálené lokality (expedice, školy v zahraničí)

  • Místa bez spolehlivého internetu, ale s potřebou databáze nebo aplikace.

Jak na to?

1. Lokální instalace a server

Drupal běží na PHP a databázi (např. MySQL nebo SQLite), což znamená, že ho můžete provozovat na lokálním zařízení bez nutnosti internetu. Možnosti:

  • Na PC nebo notebooku: pomocí XAMPP, MAMP nebo Dockeru.
  • Na Raspberry Pi nebo miniPC: ideální pro kiosky.
  • Na serveru v lokální síti: více zařízení se připojí ke stejnému obsahu bez internetu.

2. Využití cache a předgenerovaného obsahu

Pro zajištění rychlosti a stability bez online dotazů:

  • Plná cache obsahu (např. pomocí modulu AdvAgg, BigPipe, Internal Page Cache).
  • Statické buildy pro obsah, který se nemění – generace HTML pomocí nástrojů jako Tome (modul pro statický export).
  • Omezení dynamických prvků – formuláře, komentáře a vyhledávání mohou být nahrazeny předgenerovaným obsahem.

3. Frontend oddělený od Drupalu (decoupled)

Další možností je použít Drupal pouze jako backend a vytvořit vlastní frontend, který načítá data z předem uloženého API (např. JSON export):

  • Frontend (např. React, Vue, Svelte) se načítá lokálně a zobrazuje obsah uložený v cache.
  • Možnost uložit vše do LocalStorage nebo IndexedDB pro offline práci.
  • Pomocí Service Workerů lze vytvořit plně PWA (progressive web app) rozhraní.

4. LocalStorage a IndexedDB

Moderní prohlížeče umožňují ukládat data lokálně:

  • LocalStorage: jednoduché textové klíč-hodnota úložiště.
  • IndexedDB: komplexní databáze na straně klienta – ideální pro větší množství dat (např. katalogy exponátů nebo mediální obsah).

Např. při načtení dat z Drupalu v době připojení lze vše uložit a pak načítat offline, i když server není dostupný.

Příklady z praxe

  • Národní muzeum může provozovat kiosky s dotykovým rozhraním zobrazujícím historii exponátu, mapu výstavy nebo multimediální obsah. Celé řešení běží lokálně bez internetu.
  • Zahraniční škola v odlehlé oblasti využívá Drupal jako vzdělávací portál, který se aktualizuje při dočasném připojení a běží celý měsíc offline.
  • Výrobní podnik nasadí Drupal jako intranetový portál s přístupem k technické dokumentaci. Připojení je možné jen v rámci uzavřené sítě.