# Brain.md - Projekt mischlabs.de Landing Page ## Projektziel Eine ansprechende Landing Page fuer mischlabs.de, die alle Dienste als Kacheln mit direkten Verlinkungen anzeigt. Laeuft als Docker-Container und wird ueber Git auto-deployed. ## Status - [x] Git-Repo initialisiert und Remote verbunden (https://git.mischlabs.de/MrDiderot/mischlabs.git) - [x] Dienste-Liste vom Screenshot erfasst (9 Services inkl. MiChess) - [x] Landing Page Design und Implementierung (index.html + style.css) - [x] Docker-Setup (Dockerfile, docker-compose.yml, nginx.conf) - [x] PWA-Grundlage fuer iOS/Home-Screen-Installation - [x] Push zum Remote - [x] MiChess-Kachel hinzugefuegt (Commit lokal, Push steht aus wg. Auth-Fehler) - [ ] Push des MiChess-Commits (Git-Auth-Token erneuern) ## Verwandte Projekte - **auth** (d:\Vibecoding\Website\auth) - Keycloak SSO fuer alle Dienste - Repo: https://git.mischlabs.de/MrDiderot/auth.git - Subdomain: auth.mischlabs.de - Siehe auth/Brain.md fuer Details ## Dienste-Uebersicht (8 Stueck) | # | Subdomain | Beschreibung | Farbe/Accent | |---|-----------|-------------|--------------| | 1 | drive.mischlabs.de | Cloud-Speicher | #4285f4 (Blau) | | 2 | git.mischlabs.de | Code-Repositories | #f05033 (Rot) | | 3 | movies.mischlabs.de | Filme & Serien | #a855f7 (Lila) | | 4 | audiobook.mischlabs.de | Hoerbuecher | #22c55e (Gruen) | | 5 | password.mischlabs.de | Passwort-Manager | #eab308 (Gelb) | | 6 | docs.mischlabs.de | Dokumentation | #06b6d4 (Cyan) | | 7 | michess.mischlabs.de | Schach | #10b981 (Gruen) | | 8 | tom.mischlabs.de | Persoenliche Seite | #ec4899 (Pink) | ## Technische Entscheidungen - **Reines HTML + CSS mit minimalem PWA-JS** (kein Framework) - maximale Performance, minimales Docker-Image - **nginx:alpine** als Base-Image - extrem leichtgewichtig (~5MB) - **Google Fonts (Inter)** fuer moderne Typografie - **Inline SVG Icons** - keine externen Dependencies - **CSS Grid** mit `auto-fill` + `minmax(240px, 1fr)` fuer responsives Layout - **Dark Theme** mit subtilen Glow-Effekten - **Staggered Animations**: Kacheln faden nacheinander ein (9 Stueck) - **PWA**: Manifest, Apple-Touch-Icon, App-Icons und Service Worker fuer installierbare iOS/Web-App ## Docker-Setup - **Container-Name**: `mischlabs` - **Base-Image**: `nginx:alpine` - **Port-Mapping**: `8085:80` (anpassbar in docker-compose.yml) - **Restart-Policy**: `unless-stopped` - **nginx.conf**: Caching fuer Static Assets (7 Tage), Security-Headers ## Dateistruktur ``` mischlabs/ index.html - Haupt-HTML mit allen 9 Service-Kacheln style.css - Komplettes Styling (Dark Theme, Grid, Animationen) manifest.webmanifest - PWA-Metadaten fuer installierbare App sw.js - Schlanker Service Worker mit App-Shell-Cache icons/ - App-Icons fuer iOS/PWA Dockerfile - nginx:alpine mit kopierten Static Files docker-compose.yml - Container-Definition (Name: mischlabs, Port 8085) nginx.conf - Server-Konfiguration, Caching, Security-Headers .gitignore - Git-Ausschluesse Brain.md - Dieses Dokument (KI-Uebergabe) ``` ## Deployment-Workflow 1. Code aendern und committen 2. Push zu git.mischlabs.de 3. Auf dem Server: `git pull && docker compose up -d --build` ## Erkenntnisse & Notizen - Alle Dienste laufen auf 192.168.178.88 mit verschiedenen Ports - Oeffentlich erreichbar ueber *.mischlabs.de Subdomains (Cloudflare Tunnel) - Port 8085 gewaehlt da gaengige Ports (80, 8080, 8090) bereits belegt - Kein JavaScript noetig - pure CSS reicht fuer alle Effekte - `color-mix()` CSS-Funktion fuer dynamische Icon-Hintergruende - Git-Push-Fehler aufgetreten (Authentication failed) - Token muss erneuert werden - DNS: Alte A-Records (185.181.104.242) von INWX wurden geloescht, nur noch Tunnel-Eintraege - NAS hat kein git installiert - entweder Git Server Paket installieren oder wget nutzen ## PWA-Stand 2026-05-21 - MischLabs wurde als PWA vorbereitet. - iOS-relevante Meta-Tags in `index.html`: - `apple-mobile-web-app-capable` - `apple-mobile-web-app-status-bar-style` - `apple-mobile-web-app-title` - `apple-touch-icon` - Manifest: - `name`: MischLabs - `display`: standalone - `theme_color`: #10b981 - `background_color`: #0a0a0f - Icons: - `icons/apple-touch-icon.png` (180x180) - `icons/icon-192.png` (192x192) - `icons/icon-512.png` (512x512) - `icons/maskable-512.png` (512x512, maskable) - `icons/app-icon.svg` als editierbare Quelle - Service Worker: - Cache-Name: `mischlabs-pwa-v1` - Cached die App-Shell (`/`, `index.html`, `style.css?v=8`, Manifest und Icons) - Navigationen fallen offline auf `index.html` zurueck - Dockerfile kopiert Manifest, Service Worker und Icons in das Nginx-Image. - `nginx.conf` liefert `manifest.webmanifest` mit `application/manifest+json` und `sw.js` mit `no-cache` aus.