From b7d4893ad5994bff7d733ee3734d2e81f802f708 Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Mon, 26 Jan 2026 09:38:57 +0100 Subject: [PATCH] docs: add daily report for 2026-01-25 Summary of 20 commits including: - Guest mode for contacts/clock apps - NutriPhi app (AI nutrition tracking) - Presi & Storage apps restored from archive - Watchtower auto-deploy setup - Prometheus metrics for todo-backend - CI/CD for presi and storage Co-Authored-By: Claude Opus 4.5 --- docs/DAILY_REPORT_2026-01-25.md | 299 ++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 docs/DAILY_REPORT_2026-01-25.md diff --git a/docs/DAILY_REPORT_2026-01-25.md b/docs/DAILY_REPORT_2026-01-25.md new file mode 100644 index 000000000..6a441b126 --- /dev/null +++ b/docs/DAILY_REPORT_2026-01-25.md @@ -0,0 +1,299 @@ +# Daily Report - 25. Januar 2026 + +**Zeitraum:** 00:00 - 18:00 Uhr +**Commits:** 20 +**Hauptthemen:** Guest Mode, NutriPhi App, Presi & Storage Restore, Watchtower Auto-Deploy, Prometheus Metrics + +--- + +## Zusammenfassung + +Ein umfangreicher Tag mit mehreren großen Features und Infrastructure-Änderungen: + +- **Guest Mode** für Contacts und Clock Apps implementiert +- **NutriPhi App** komplett neu hinzugefügt (AI-powered Nutrition Tracking) +- **Presi & Storage Apps** aus dem Archiv wiederhergestellt und Docker-ready gemacht +- **Watchtower Auto-Deploy** eingerichtet, Hetzner-Infrastruktur entfernt +- **Prometheus Metrics** für Todo-Backend implementiert +- **CI/CD Pipeline** für Presi und Storage erweitert + +--- + +## 1. Guest Mode Implementation + +### Session-First Guest Mode für Contacts (00:00) +**Commit:** `753e6fd1` - feat(contacts): add session-first guest mode + +Implementierung eines "Session-First" Guest Mode Patterns: + +- **AuthGateModal** - Modal das Nutzer zur Anmeldung auffordert wenn sie persistente Features nutzen wollen +- **Session Contacts Store** - Temporärer Speicher für Kontakte im Session Storage +- Nutzer können die App ausprobieren ohne Account +- Daten werden erst bei Registrierung/Login synchronisiert + +**Neue Dateien:** +- `AuthGateModal.svelte` - Modaler Dialog für Auth-Aufforderung +- `session-contacts.svelte.ts` - Svelte 5 Store für Session-Kontakte + +### Guest Mode Fixes für Web Apps (00:01 - 00:03) +**Commits:** +- `6713919e` - fix(web): fix userSettings.nav undefined error in guest mode +- `1e7bfd44` - fix(clock): remove auth redirect from dashboard for guest mode +- `b095532e` - fix(clock): load alarms/timers in guest mode + +Diverse Fixes um Guest Mode in allen Web Apps zu ermöglichen: +- Fehler bei undefined userSettings.nav behoben +- Auth-Redirect auf Dashboard deaktiviert +- Alarme/Timer laden auch ohne Login + +--- + +## 2. NutriPhi App - Neue App + +### AI-Powered Nutrition Tracking (13:19) +**Commit:** `b6af01ed` - feat(nutriphi): add AI-powered nutrition tracking app + +Komplett neue App für Ernährungstracking mit KI-Unterstützung: + +**Backend (NestJS):** +- Meal-Tracking mit CRUD-Operationen +- Gemini AI Integration für Mahlzeiten-Analyse +- Nährwert-Berechnung und Statistiken +- Tägliche Ziele und Empfehlungen +- Favoriten-System + +**Web (SvelteKit):** +- Dashboard mit Tagesübersicht +- Mahlzeiten hinzufügen (manuell + Foto) +- Statistiken und Trends +- Ziele setzen und tracken + +**Landing (Astro):** +- Marketing-Seite mit Features +- Cloudflare Pages ready + +**API Endpoints:** +| Endpoint | Method | Description | +|----------|--------|-------------| +| `/api/v1/meals` | GET/POST | Mahlzeiten CRUD | +| `/api/v1/analysis/image` | POST | Foto-Analyse mit AI | +| `/api/v1/stats/daily` | GET | Tagesstatistiken | +| `/api/v1/goals` | GET/POST/PUT | Ernährungsziele | +| `/api/v1/recommendations` | GET | AI-Empfehlungen | + +### Database Setup Script Update (13:19) +**Commit:** `9472978c` - chore(scripts): add nutriphi to database setup script + +NutriPhi zur automatischen Datenbank-Einrichtung hinzugefügt. + +--- + +## 3. Presi & Storage Apps Restore + +### Apps aus Archiv wiederhergestellt (13:25) +**Commit:** `36a9e3a3` - feat: restore presi and storage apps from archive + +Wiederherstellung der archivierten Apps: + +**Presi (Präsentations-App):** +- Decks erstellen und verwalten +- Slides mit verschiedenen Content-Types +- Themes und Sharing +- Präsentationsmodus + +**Storage (Cloud Storage):** +- Dateien hochladen und verwalten +- Ordner-Hierarchie +- Sharing mit Links +- Versionierung +- Tags und Favoriten + +### Development Scripts (13:27) +**Commit:** `0a4e7e0f` - feat: add dev scripts for presi and storage apps + +Neue npm Scripts in root package.json: +```bash +pnpm dev:presi:full # Presi mit Auth + DB Setup +pnpm dev:storage:full # Storage mit Auth + DB Setup +pnpm dev:presi:app # Presi Web + Backend +pnpm dev:storage:app # Storage Web + Backend +``` + +### Mac Mini Deployment Config (13:38) +**Commit:** `32c207ec` - feat(infra): add presi and storage apps to Mac Mini deployment + +Docker-Compose Konfiguration für Mac Mini erweitert: + +| Service | Port | URL | +|---------|------|-----| +| presi-backend | 3008 | presi-api.mana.how | +| presi-web | 5178 | presi.mana.how | +| storage-backend | 3019 | storage-api.mana.how | +| storage-web | 5185 | storage.mana.how | + +### Dockerfiles erstellt (13:55) +**Commit:** `a12c7e5f` - feat(docker): add Dockerfiles for presi and storage apps + +Multi-Stage Docker Builds für alle 4 Apps: + +**Presi Backend:** +- Port 3008 +- Auto-Migrations via docker-entrypoint.sh +- Health Check auf `/api/health` + +**Presi Web:** +- Port 5178 +- SvelteKit mit adapter-node + +**Storage Backend:** +- Port 3019 +- S3/MinIO Integration +- Auto-Migrations + +**Storage Web:** +- Port 5185 +- SvelteKit mit adapter-node + +### CI/CD Pipeline (16:11) +**Commit:** `409f9a07` - feat(ci): add Docker build jobs for presi and storage apps + +GitHub Actions Workflow erweitert: +- Change Detection für `apps/presi/**` und `apps/storage/**` +- 4 neue Build Jobs für Docker Images +- Push zu GitHub Container Registry + +### Adapter Fix für Docker (17:49) +**Commit:** `75ffd504` - fix(presi,storage): use adapter-node for Docker builds + +Wechsel von `@sveltejs/adapter-auto` zu `@sveltejs/adapter-node`: +- adapter-auto funktioniert nicht in Docker +- Output-Verzeichnis auf `build` gesetzt + +--- + +## 4. Infrastructure: Watchtower & Cleanup + +### Hetzner Entfernt, Watchtower hinzugefügt (14:01) +**Commit:** `ac663a6c` - chore: remove staging/Hetzner infra, add Watchtower auto-deploy + +**Entfernt (15.581 Zeilen gelöscht):** +- Alle Hetzner/Staging Workflows +- docker-compose.staging.yml +- docker-compose.production.yml +- Staging/Production Dokumentation +- Deployment Runbooks + +**Hinzugefügt:** +- Watchtower Container für Auto-Deploy +- Automatisches Image-Update bei neuen Releases +- Discord Notifications bei Updates + +**Watchtower Konfiguration:** +```yaml +watchtower: + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + - WATCHTOWER_CLEANUP=true + - WATCHTOWER_POLL_INTERVAL=300 + - WATCHTOWER_NOTIFICATION_URL=discord://... +``` + +### Watchtower Fixes (14:04 - 14:36) +**Commits:** +- `62e9d0d3` - fix(watchtower): set DOCKER_API_VERSION for compatibility +- `87724f8a` - fix(watchtower): remove custom notification template +- `8ff8cd5e` - test: update loading text to test Watchtower auto-deploy + +Diverse Fixes für Watchtower-Kompatibilität: +- DOCKER_API_VERSION für ältere Docker Versionen +- Standard Notification Template verwenden +- Test-Commit um Auto-Deploy zu verifizieren + +--- + +## 5. Prometheus Metrics + +### Todo Backend Metrics (13:31) +**Commit:** `4a236a7a` - feat(todo): add Prometheus metrics and update docs + +Implementierung von Prometheus Metrics für Todo-Backend: + +**Metriken:** +- `app_info` - App Version und Name +- `http_requests_total` - Request Counter (method, path, status) +- `http_request_duration_seconds` - Request Latency Histogram + +**Neue Dateien:** +- `metrics.controller.ts` - `/metrics` Endpoint +- `metrics.service.ts` - Prometheus Registry +- `metrics.interceptor.ts` - HTTP Request Tracking + +### Metrics Refactoring (14:40) +**Commits:** +- `11411ff0` - fix(todo): capture error responses in metrics interceptor +- `f47bf8ed` - refactor(todo): use express middleware for HTTP metrics + +Verbesserungen am Metrics System: +- Error Responses werden jetzt korrekt erfasst +- Wechsel zu Express Middleware für bessere Genauigkeit + +--- + +## 6. Sonstige Fixes + +### Lockfile Update (13:18) +**Commit:** `b77dd415` - fix(deps): update lockfile for telegram-stats-bot + +pnpm-lock.yaml aktualisiert wegen telegram-stats-bot Dependency. + +--- + +## Infrastruktur-Übersicht + +### Neue Services (bereit für Deployment) + +| Service | Container | Port | Status | +|---------|-----------|------|--------| +| Presi Backend | presi-backend | 3008 | Ready | +| Presi Web | presi-web | 5178 | Ready | +| Storage Backend | storage-backend | 3019 | Ready | +| Storage Web | storage-web | 5185 | Ready | +| NutriPhi Backend | nutriphi-backend | 3020 | Ready | +| NutriPhi Web | nutriphi-web | 5190 | Ready | + +### Geplante URLs + +| App | Web | API | +|-----|-----|-----| +| Presi | https://presi.mana.how | https://presi-api.mana.how | +| Storage | https://storage.mana.how | https://storage-api.mana.how | +| NutriPhi | https://nutriphi.mana.how | https://nutriphi-api.mana.how | + +--- + +## Statistiken + +| Metrik | Wert | +|--------|------| +| **Commits** | 20 | +| **Neue Apps** | 1 (NutriPhi) | +| **Wiederhergestellte Apps** | 2 (Presi, Storage) | +| **Neue Dockerfiles** | 4 | +| **Gelöschte Zeilen** | ~15.000+ (Hetzner Cleanup) | +| **Neue Dateien** | ~100+ | + +--- + +## Nächste Schritte + +1. **NutriPhi** - Docker Images bauen und deployen +2. **Presi/Storage** - CI Build verifizieren und deployen +3. **Grafana Dashboards** - Metrics Dashboards für neue Services +4. **Guest Mode** - Auf weitere Apps ausweiten +5. **Mobile Apps** - Guest Mode auch für Expo Apps + +--- + +*Bericht erstellt am 25. Januar 2026*