91 lines
2.7 KiB
Markdown
91 lines
2.7 KiB
Markdown
---
|
|
title: "Self-hosting"
|
|
date: 2026-02-11
|
|
tags: ["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**:
|
|
```bash
|
|
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:
|
|
```yaml
|
|
services:
|
|
app:
|
|
environment:
|
|
- EMAIL=vas-email@spsejecna.cz
|
|
- PASSWORD=vase-heslo
|
|
```
|
|
|
|
3. **Spuštění**:
|
|
```bash
|
|
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í**:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. **Sestavení projektu**:
|
|
Tento krok zkompiluje TypeScript a sestaví Hugo web.
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
3. **Nastavení proměnných prostředí**:
|
|
Vytvořte soubor `.env` v kořenovém adresáři:
|
|
```env
|
|
EMAIL=vas-email@spsejecna.cz
|
|
PASSWORD=vase-heslo
|
|
PORT=3000
|
|
```
|
|
|
|
4. **Spuštění**:
|
|
```bash
|
|
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.
|