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.

  1. Klonování repozitáře:

    git clone https://gitea.local.jzitnik.dev/jzitnik/jecnarozvrh.git
    cd jecnarozvrh
    
  2. Konfigurace: Upravte soubor docker-compose.yml a doplňte své přihlašovací údaje:

    services:
      app:
        environment:
          - [email protected]
          - PASSWORD=vase-heslo
    
  3. Spuš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_WEB nastaveno na false, 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.

  1. Instalace závislostí:

    npm install
    
  2. Sestavení projektu: Tento krok zkompiluje TypeScript a sestaví Hugo web.

    npm run build
    
  3. Nastavení proměnných prostředí: Vytvořte soubor .env v kořenovém adresáři:

    EMAIL=[email protected]
    PASSWORD=vase-heslo
    PORT=3000
    
  4. Spuštění:

    npm run serve
    

Environmental variables

ProměnnáPopisVýchozí hodnota
EMAILŠkolní e-mail pro přihlášení.-
PASSWORDHeslo k e-mailu.-
SHAREPOINT_URLOdkaz na Excel tabulku na SharePointu.Předdefinovaný odkaz na nástěnku
PORTPort, na kterém server poběží.3000
REPORT_WEBHOOK_URLURL pro webhook hlášení chyb (Discord/Slack).-
SERVE_WEBUrč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.