Tento projekt je možné hostovat vlastním způsobem, ať už pomocí Dockeru nebo nativně.
Požadavky
Před začátkem se ujistěte, že máte připravené následující:
- Účet SPŠE Ječná: Projekt vyžaduje platný školní e-mail a heslo pro přístup k tabulce na SharePointu.
- Node.js 22+: Pokud hostujete nativně.
- Hugo: Pro sestavení a provoz webového rozhraní.
- Chromium/Puppeteer: Pro automatizované stahování dat.
Způsoby hostování
Docker (Doporučeno)
Použití Dockeru je nejjednodušší způsob, jak projekt spustit, protože automaticky řeší všechny závislosti včetně prohlížeče pro Puppeteer.
Klonování repozitáře:
git clone https://gitea.local.jzitnik.dev/jzitnik/jecnarozvrh.git cd jecnarozvrhKonfigurace: Upravte soubor
docker-compose.ymla doplňte své přihlašovací údaje:services: app: environment: - [email protected] - PASSWORD=vase-hesloSpuštění:
docker-compose up -d --build
Aplikace bude dostupná na portu 3000.
Poznámka k webu v Dockeru: Výchozí Docker image má
SERVE_WEBnastaveno nafalse, protože neobsahuje Hugo pro sestavení webové části. Docker verze primárně slouží jako API server.
Nativní instalace
Pokud nechcete používat Docker, můžete projekt spustit přímo na svém systému.
Instalace závislostí:
npm installSestavení projektu: Tento krok zkompiluje TypeScript a sestaví Hugo web.
npm run buildNastavení proměnných prostředí: Vytvořte soubor
.envv kořenovém adresáři:EMAIL=[email protected] PASSWORD=vase-heslo PORT=3000Spuštění:
npm run serve
Environmental variables
| Proměnná | Popis | Výchozí hodnota |
|---|---|---|
EMAIL | Školní e-mail pro přihlášení. | - |
PASSWORD | Heslo k e-mailu. | - |
SHAREPOINT_URL | Odkaz na Excel tabulku na SharePointu. | Předdefinovaný odkaz na nástěnku |
PORT | Port, na kterém server poběží. | 3000 |
REPORT_WEBHOOK_URL | URL pro webhook hlášení chyb (Discord/Slack). | - |
SERVE_WEB | Určuje, zda se má serveovat Hugo web. | true |
Persitence dat
Veškerá stažená data a stav prohlížeče (včetně cookies) se ukládají do složky volume/. Při použití Dockeru je důležité tuto složku mapovat jako volume, aby nedocházelo k opakovanému přihlašování a stahování dat při každém restartu.