Handy-Insel Portal: Startseite, Kopfleiste und Authentik-Anbindung

- Portal mit Kacheln aus Authentik (pro Benutzer gefiltert) und "Aktuelles"
- Web-Component <hi-topbar> als zentraler App-Umschalter für alle Tools
- OIDC-Login über Authentik, zentrales Abmelden
- Setup-Skript für Authentik (Gruppen-Bindungen, Portal-App, Service-Account)
- Deployment auf den Portal-CT per systemd

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kerimatilganandClaude Opus 5.5 committed 2026-09-27 12:18:32 +02:00
commit 6606420b4a
43 files changed
+5577

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
{
"name": "handy-insel-portal",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "Handy-Insel Portal – zentrale Startseite und App-Umschalter für alle internen Tools (Authentik-SSO)",
"scripts": {
"dev:server": "tsx watch server/src/index.ts",
"dev:web": "vite",
"build": "npm run build:web && npm run build:topbar && npm run build:server",
"build:web": "vite build",
"build:topbar": "esbuild topbar/src/topbar.ts --bundle --minify --format=iife --target=es2019 --outfile=dist/public/topbar.js",
"build:server": "tsc -p server/tsconfig.json",
"start": "node dist/server/index.js",
"typecheck": "tsc -p server/tsconfig.json --noEmit && tsc -p frontend/tsconfig.json --noEmit"
},
"engines": {
"node": ">=20"
},
"dependencies": {
"better-sqlite3": "^12.11.1",
"express": "^4.22.3",
"express-session": "^1.19.0",
"helmet": "^8.3.0",
"openid-client": "^6.8.8"
},
"devDependencies": {
"@tailwindcss/vite": "^4.3.3",
"@types/better-sqlite3": "^9.6.0",
"@types/express": "^4.17.25",
"@types/express-session": "^1.19.0",
"@types/node": "^26.6.3",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@vitejs/plugin-react": "^6.1.1",
"esbuild": "^0.28.2",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"tailwindcss": "^4.3.3",
"tsx": "^4.23.15",
"typescript": "^7.0.2",
"vite": "^8.3.1"
}
}