1
0
Files
jecnarozvrh/web/content/posts/self-hosting/index.md
jzitnik-dev 4fccc793bb
All checks were successful
Remote Deploy / deploy (push) Successful in 2m0s
docs: Fix url
2026-02-22 17:34:46 +01:00

2.7 KiB

title, date, tags
title date tags
Self-hosting 2026-02-11
hosting
setup

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=vas-email@spsejecna.cz
          - 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=vas-email@spsejecna.cz
    PASSWORD=vase-heslo
    PORT=3000
    
  4. Spuš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.