rebrand: Klassenportal, domain info1.ifb.lol, server status

- Replace INFO1 brand with Klassenportal everywhere (titles, nav,
  emails, TOTP issuer, recovery codes)
- Update domain from info1.simon0x.xyz to info1.ifb.lol
- Remove E2EE claims (e2ee.js was deleted, claims were false)
- Add GET /api/health endpoint (DB check + uptime)
- Add live server status section to landing page
- Fix README: domain, title, layout table
This commit is contained in:
Simon
2026-04-22 21:30:40 +02:00
parent 55cfbcebdc
commit 578dd4eab9
12 changed files with 173 additions and 397 deletions
+7 -6
View File
@@ -1,12 +1,12 @@
# Schulapp
# Klassenportal
Dashboard für die Schulklassen. Stundenplan, Hausaufgaben, Noten, Fehlzeiten, Klassenkalender, Chat und Ende zu Ende verschlüsselte Nachrichten an einem Ort.
Privates Dashboard für Schulklassen. Stundenplan, Hausaufgaben, Noten, Fehlzeiten, Klassenkalender und Chat an einem Ort.
Läuft unter [info1.simon0x.xyz](https://info1.simon0x.xyz).
Läuft unter [info1.ifb.lol](https://info1.ifb.lol).
## Stack
Node.js 20, Express 5, SQLite über `better-sqlite3`, Vanilla JS im Frontend. Kein Buildschritt. Auth per JWT im HttpOnly-Cookie, bcrypt, TOTP-2FA. Mail über Resend. E2EE mit ECDH P-256 und AES-GCM im Browser.
Node.js 20, Express 5, SQLite über `better-sqlite3`, Vanilla JS im Frontend. Kein Buildschritt. Auth per JWT im HttpOnly-Cookie, bcrypt, TOTP-2FA. Mail über Resend.
## Lokal starten
@@ -26,12 +26,13 @@ Beschränkt auf `@ifb-schulen.com`-Adressen (Regex `IFB_EMAIL_RE` in `src/routes
```
index.js Express-Bootstrap
src/auth.js JWT-Sign/-Verify, requireAuth-Middleware
src/db.js SQLite, Schema, Migrationen
src/routes.js Auth, Admin, Chat, Kalender, Tickets
src/routes.js Auth, Admin, Chat, Kalender, Tickets, Health
src/teacher.js Lehrerendpoints
src/files.js Dateiablage mit Quota
src/mailer.js Resend-Wrapper
public/ HTML-Seiten und E2EE-Primitiven
public/ HTML-Seiten (Vanilla JS)
```
## Lizenz