85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# CIS Enhanced
|
|
|
|
Bessere Ansichten für das FH-Burgenland-CIS:
|
|
|
|
- **Studentenplan** - eigener oder fremder Plan (Matrikelnummer), Wochenansicht + Semesterübersicht, iCal/CSV-Export
|
|
- **Studiengangs-Pläne** - nach Studiengang, Studien-Semester und Verband (Vollzeit/Berufsbegleitend), inkl. Gruppen-Filter
|
|
- **Namenslisten** - je Studiengang/Semester/Verband mit Suche und CSV-Export
|
|
- **Fotos** - Fotowand je Verband + **Gesichtssuche**: eigenes Foto hochladen, die App findet die passenden Profile (lokaler SCRFD/MobileFaceNet, läuft ohne Internet-API)
|
|
- **Studiennummer-Decoder** - Matrikelnummer wird in Startsemester, Studiengang und Nummer zerlegt
|
|
|
|
## Lokal starten
|
|
|
|
```bash
|
|
python -m venv .venv
|
|
.venv\Scripts\pip install -r requirements.txt # Windows
|
|
# venv/bin/pip install -r requirements.txt # Linux/Mac
|
|
.venv\Scripts\python run.py
|
|
```
|
|
|
|
Öffne http://127.0.0.1:8000
|
|
|
|
## Konfiguration
|
|
|
|
Zugangsdaten in `.env` eintragen (Vorlage: `.env.example`):
|
|
|
|
```
|
|
CIS_USER=<matrikelnummer>
|
|
CIS_PASSWORD=<passwort>
|
|
CIS_BASE_URL=https://cis.hochschule-burgenland.at/cis
|
|
OWN_UID=<eigene matrikelnummer>
|
|
```
|
|
|
|
`.env` wird nicht in das Docker-Image kopiert (`.dockerignore`), sondern zur Laufzeit übergeben.
|
|
|
|
### Datenverzeichnis `data/`
|
|
|
|
Das Gesichtsmatching lädt beim ersten Start die Modelle (~16 MB,
|
|
`insightface/buffalo_sc`) nach `data/models` und speichert Caches in
|
|
`data/` (Profilbilder, Person-IDs, Gesichtsembeddings). Alles wird
|
|
automatisch angelegt. Im Docker-Setup ist `data/` als Named Volume
|
|
(`cis-data`) gemountet, damit Modelle und Caches beim Rebuild erhalten
|
|
bleiben.
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
# Image bauen
|
|
docker build -t cis-enhanced .
|
|
|
|
# Starten (Zugangsdaten aus .env)
|
|
docker run -d --name cis-enhanced --restart unless-stopped \
|
|
-p 8000:8000 --env-file .env cis-enhanced
|
|
|
|
# oder mit Compose
|
|
docker compose up -d --build
|
|
```
|
|
|
|
## Deploy (Caddy)
|
|
|
|
App auf Port 8000 starten (z.B. als systemd-Service, oder der Docker-Container
|
|
portet nach `127.0.0.1:8000`), Caddy davor:
|
|
|
|
```ini
|
|
deinedomain.at {
|
|
reverse_proxy 127.0.0.1:8000
|
|
}
|
|
```
|
|
|
|
systemd-Beispiel:
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=CIS Enhanced
|
|
After=network.target
|
|
|
|
[Service]
|
|
WorkingDirectory=/pfad/zu/cis-enhanced
|
|
ExecStart=/pfad/zu/cis-enhanced/.venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8000
|
|
Restart=always
|
|
User=www-data
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|