mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 18:34:13 +00:00
445 lines
17 KiB
Markdown
445 lines
17 KiB
Markdown
# Projekt Status - Februar 2026
|
|
|
|
**Stand:** 17. Februar 2026
|
|
|
|
## Zusammenfassung
|
|
|
|
Die komplette Entwicklungsinfrastruktur ist eingerichtet und funktionsfähig:
|
|
- Payload CMS Multi-Tenant (Dev + Prod) - **v3.76.1 stabil**
|
|
- Multi-Frontend Development Environment
|
|
- AI-gestützte Entwicklungstools
|
|
- Reverse Proxy Stack (Caddy + Nginx)
|
|
- Analytics (Umami)
|
|
- **Community Management System** (YouTube, Facebook, Instagram)
|
|
- **YouTube Operations Hub** (Multi-Kanal-Verwaltung)
|
|
- **Multi-Server Orchestration** (SSH, Contracts, CI/CD, Plesk Production)
|
|
- **2 Production-Sites live:** blogwoman.de + porwoll.de
|
|
|
|
---
|
|
|
|
## ✅ Abgeschlossen
|
|
|
|
### Infrastruktur VLAN 181 (Development)
|
|
|
|
| LXC | Hostname | IP | Service | Status |
|
|
|-----|----------|-----|---------|--------|
|
|
| 699 | sv-caddy | 10.10.181.99 | Caddy Reverse Proxy | ✅ Running |
|
|
| 700 | sv-payload | 10.10.181.100 | Payload CMS + Redis | ✅ Running |
|
|
| 701 | sv-postgres | 10.10.181.101 | PostgreSQL 17 + Redis Cmd | ✅ Running |
|
|
| 702 | sv-dev-payload | 10.10.181.102 | Payload Experimental | ⏸️ Stopped |
|
|
| 703 | sv-analytics | 10.10.181.103 | Umami Analytics | ✅ Running |
|
|
| 704 | sv-frontend | 10.10.181.104 | Multi-Project Next.js | ✅ Running |
|
|
|
|
### Hetzner 3 (CMS Production)
|
|
|
|
- [x] Debian 13 Installation
|
|
- [x] PostgreSQL 17 mit payload_db und umami_db
|
|
- [x] Redis Cache
|
|
- [x] Payload CMS Production (cms.c2sgmbh.de)
|
|
- [x] Umami Analytics Production (analytics.c2sgmbh.de)
|
|
- [x] Nginx Reverse Proxy mit Let's Encrypt
|
|
- [x] PM2 Process Management
|
|
- [x] Claude Code CLI
|
|
- [x] Backup-Scripts (täglich)
|
|
- [x] CVE-2025-55182 Hotfix
|
|
|
|
### Hetzner 1 + 2 (Frontend Production)
|
|
|
|
- [x] Hetzner 1 (78.46.87.137): blogwoman.de — Plesk, nginx-only, Passenger 6.1.0, Node 22
|
|
- [x] Hetzner 2 (94.130.141.114): porwoll.de — Plesk, nginx-only, Passenger 6.1.0, Node 22
|
|
- [x] GitHub Webhooks für Auto-Deploy bei Push auf main
|
|
- [x] SSH-Zugriff von sv-payload (root, key: plesk_deploy)
|
|
- [x] Env-Vars pro Domain (Tenant-spezifisch)
|
|
|
|
### Caddy Reverse Proxy (sv-caddy)
|
|
|
|
- [x] Caddy 2.9.x mit Cloudflare DNS Plugin
|
|
- [x] Wildcard SSL für *.porwoll.tech
|
|
- [x] Cloudflare DNS-Challenge
|
|
- [x] Routing für alle Services
|
|
- [x] Security Headers
|
|
|
|
### Payload CMS
|
|
|
|
- [x] Multi-Tenant Plugin
|
|
- [x] Redis Caching
|
|
- [x] Package-Versionen synchronisiert:
|
|
- Next.js 16.2.0-canary.41
|
|
- React 19.2.3
|
|
- Payload 3.76.1
|
|
- [x] GitHub Repository (complexcaresolutions/cms.c2sgmbh)
|
|
- [x] YouTube Analytics Dashboard (4-Tab-Dashboard mit Kanal-Auswahl)
|
|
- [x] Admin-Nav Sidebar Refactoring (nativer Payload-Stil)
|
|
- [x] Globaler TypeScript-Typecheck (`pnpm typecheck`) wieder fehlerfrei
|
|
- [x] CI/CD Pipeline (GitHub Actions):
|
|
- CI: ESLint, TypeScript, Tests, Build, E2E
|
|
- Security: Gitleaks, pnpm audit, CodeQL
|
|
- Staging: Auto-Deploy auf develop-Push
|
|
- Production: Manuelles Deploy mit Backup + Rollback
|
|
|
|
### Community Management System
|
|
|
|
- [x] **YouTube Integration:**
|
|
- YouTubeChannels Collection (Multi-Kanal-Verwaltung)
|
|
- YouTubeContent Collection (Videos + Shorts)
|
|
- YtSeries Collection (Serien mit Branding)
|
|
- YtNotifications Collection (Handlungsbedarf)
|
|
- YouTube Operations Dashboard
|
|
- Automatische Kommentar-Synchronisation
|
|
- [x] **Meta Integration (Facebook + Instagram):**
|
|
- SocialAccounts Collection (OAuth-Verbindungen)
|
|
- Meta OAuth Flow mit Long-Lived Token (60 Tage)
|
|
- FacebookSyncService + InstagramSyncService
|
|
- Kommentar-Synchronisation über UnifiedSyncService
|
|
- Community Inbox mit Plattform-Filter (YouTube + Facebook + Instagram)
|
|
- Community Analytics Dashboard
|
|
- [x] **Community Reports:**
|
|
- Tägliche/wöchentliche E-Mail-Reports
|
|
- Konfigurierbare Report-Settings
|
|
- Cron-basierter Versand
|
|
|
|
### Monitoring & Alerting Dashboard
|
|
|
|
- [x] **System-Überwachung:**
|
|
- CPU, RAM, Disk-Auslastung (Node.js os-Modul)
|
|
- PM2 Prozess-Status (Payload + Queue-Worker)
|
|
- Load Average, Uptime
|
|
- [x] **Service-Status:**
|
|
- PostgreSQL, PgBouncer, Redis, SMTP, OAuth-Tokens, BullMQ Queues, Cron-Jobs
|
|
- [x] **Performance-Tracking:**
|
|
- Response-Zeiten (Avg, P95, P99), Error-Rate, Requests/Minute
|
|
- In-Memory Ring-Buffer (10.000 Einträge)
|
|
- [x] **Alerting:**
|
|
- Konfigurierbare Regeln (MonitoringAlertRules Collection)
|
|
- Multi-Channel: Email, Slack, Discord
|
|
- Cooldown-basierte Deduplizierung
|
|
- [x] **Structured Logging:**
|
|
- MonitoringLogs Collection mit Level/Source-Filter
|
|
- Fire-and-forget Logger mit Payload-Fallback
|
|
- [x] **Dashboard UI:**
|
|
- 5-Tab-Dashboard unter /admin/monitoring
|
|
- SSE-basierte Echtzeit-Updates
|
|
- Trend-Charts, Gauge-Widgets, Service-Karten
|
|
- [x] **Data Retention:**
|
|
- Snapshots: 7 Tage, Logs: 30 Tage, Alert-History: 90 Tage
|
|
|
|
### sv-frontend (Multi-Project)
|
|
|
|
- [x] Node.js 22.x + pnpm
|
|
- [x] AI-Tools installiert:
|
|
- Claude Code 2.0.72
|
|
- Codex CLI 0.73.0
|
|
- Gemini CLI 0.21.2
|
|
- [x] 9 Frontend-Projekte initialisiert
|
|
- [x] Systemd Services (Ports 3000-3008)
|
|
- [x] SSH-Zugriff mit Key
|
|
- [x] VS Code Remote-SSH kompatibel
|
|
|
|
### Multi-Server Orchestration (Phase 1-8)
|
|
|
|
- [x] **SSH-Infrastruktur:** sv-payload → sv-frontend, Hetzner 1/2 (root)
|
|
- [x] **payload-contracts Repo:** Shared types, API client, block registry
|
|
- Type-Extraction aus CMS payload-types.ts
|
|
- `createPayloadClient()` mit Tenant-Isolation
|
|
- `createBlockRenderer()` mit discriminated unions
|
|
- [x] **Work-Order-System:** Git-basierte Koordination CMS → Frontends
|
|
- Template + Scripts (`create-work-order.sh`, `execute-work-order.sh`)
|
|
- [x] **blogwoman.de Migration:** Contracts-Client + Bridge-Pattern
|
|
- [x] **porwoll.de Migration:** Direkte Contracts-Types, 9 Blocks
|
|
- [x] **Claude Code auf sv-frontend:** v2.1.37, CLAUDE.md in allen Repos
|
|
- [x] **Plesk Production Deployment:**
|
|
- Hetzner 1 (78.46.87.137): blogwoman.de — nginx-only + Passenger
|
|
- Hetzner 2 (94.130.141.114): porwoll.de — nginx-only + Passenger
|
|
- GitHub Webhooks für Auto-Deploy (Push main → Plesk Git Pull → Build)
|
|
- [x] **CI/CD GitHub Actions:**
|
|
- CI: Lint + Build auf push develop/main
|
|
- Staging Deploy: SSH via UDM Pro SE Port-Forward (37.24.237.181:2204)
|
|
- Production Deploy: Plesk Git-Integration (Webhook)
|
|
|
|
### GitHub Repositories
|
|
|
|
Organisation: **complexcaresolutions** (Public Frontend-Repos)
|
|
|
|
- [x] cms.c2sgmbh (Payload CMS) — Internal
|
|
- [x] payload-contracts (Shared Types + API Client) — Internal
|
|
- [x] frontend.porwoll.de — **Live auf porwoll.de**
|
|
- [x] frontend.blogwoman.de — **Live auf blogwoman.de**
|
|
- [x] frontend.caroline-porwoll.com
|
|
- [x] frontend.caroline-porwoll.de
|
|
- [x] frontend.complexcaresolutions.de
|
|
- [x] frontend.gunshin.de
|
|
- [x] frontend.sensualmoment.de
|
|
- [x] frontend.zweitmeinu.ng
|
|
- [x] frontend.zytoskandal.de
|
|
|
|
---
|
|
|
|
## ⚠️ Kritische Aufgaben
|
|
|
|
| Priorität | Aufgabe | Status |
|
|
|-----------|---------|--------|
|
|
| ✅ | Meta (Facebook/Instagram) Kommentar-Sync | Erledigt |
|
|
| ✅ | YouTube Thumbnail-Download für Offline-Anzeige | Erledigt |
|
|
| ✅ | Monitoring & Alerting Dashboard | Erledigt |
|
|
|
|
---
|
|
|
|
## 🔜 Nächste Schritte
|
|
|
|
### Erledigt
|
|
|
|
1. [x] ~~Meta (Facebook/Instagram) Kommentar-Synchronisation~~
|
|
2. [x] ~~YouTube Thumbnail-Download~~
|
|
3. [x] ~~Monitoring & Alerting Dashboard~~
|
|
4. [x] ~~Multi-Server Orchestration (8 Phasen)~~
|
|
5. [x] ~~porwoll.de Frontend (Live auf Plesk)~~
|
|
6. [x] ~~blogwoman.de Frontend (Live auf Plesk)~~
|
|
7. [x] ~~CI/CD Pipelines (GitHub Actions + Plesk Webhooks)~~
|
|
|
|
### Kurzfristig
|
|
|
|
8. [x] ~~Kontaktformular: Multi-Tenant Refactoring + Production Deployment~~
|
|
9. [ ] porwoll.de: Fehlende Blocks implementieren (~6 Blocks via Work Orders)
|
|
9. [ ] blogwoman.de: Types-Bridge durch direkte Contracts-Imports ersetzen
|
|
10. [ ] blogwoman.de: YouTube-Serien-Integration vervollständigen
|
|
|
|
### Mittelfristig (März/April 2026)
|
|
|
|
11. [ ] complexcaresolutions.de Frontend starten
|
|
12. [ ] caroline-porwoll.com/de Frontend starten
|
|
13. [ ] Cookie-Banner implementieren (DSGVO)
|
|
14. [ ] Weitere Frontends auf Plesk deployen
|
|
|
|
### Langfristig (Q2 2026)
|
|
|
|
15. [ ] Alle 9 Frontends entwickeln und deployen
|
|
16. [ ] AI-gestützte Kommentar-Moderation
|
|
17. [ ] Performance-Optimierung (ISR, Edge Caching)
|
|
|
|
---
|
|
|
|
## 📊 Service-URLs
|
|
|
|
### Development (porwoll.tech)
|
|
|
|
| Service | URL | Status |
|
|
|---------|-----|--------|
|
|
| Portal | https://porwoll.tech | ✅ |
|
|
| Payload CMS | https://pl.porwoll.tech | ✅ |
|
|
| Redis Commander | https://redis.porwoll.tech | ✅ |
|
|
| Umami Analytics | https://umami.porwoll.tech | ✅ |
|
|
| Frontend porwoll.de | https://porwoll-dev.porwoll.tech | ✅ |
|
|
| (8 weitere) | https://*-dev.porwoll.tech | ⏸️ On-Demand |
|
|
|
|
### Production (Hetzner)
|
|
|
|
| Service | URL | Server | Status |
|
|
|---------|-----|--------|--------|
|
|
| Payload CMS | https://cms.c2sgmbh.de | Hetzner 3 | ✅ |
|
|
| Umami Analytics | https://analytics.c2sgmbh.de | Hetzner 3 | ✅ |
|
|
| blogwoman.de | https://blogwoman.de | Hetzner 1 | ✅ |
|
|
| porwoll.de | https://porwoll.de | Hetzner 2 | ✅ |
|
|
|
|
---
|
|
|
|
## 🔧 Quick Commands
|
|
|
|
### sv-frontend
|
|
|
|
```bash
|
|
# SSH Zugang
|
|
ssh frontend@10.10.181.104
|
|
|
|
# Service starten/stoppen
|
|
systemctl start frontend-porwoll
|
|
systemctl stop frontend-porwoll
|
|
|
|
# AI-Tools
|
|
claude # Claude Code
|
|
codex # Codex CLI
|
|
gemini # Gemini CLI
|
|
```
|
|
|
|
### Hetzner 3 (CMS Production)
|
|
|
|
```bash
|
|
# SSH Zugang
|
|
ssh payload@162.55.85.18
|
|
|
|
# Deploy
|
|
~/deploy.sh
|
|
|
|
# Logs
|
|
pm2 logs payload
|
|
```
|
|
|
|
### Hetzner 1 + 2 (Frontend Production)
|
|
|
|
```bash
|
|
# SSH Zugang (von sv-payload)
|
|
ssh hetzner1 # 78.46.87.137 - blogwoman.de
|
|
ssh hetzner2 # 94.130.141.114 - porwoll.de
|
|
|
|
# Logs
|
|
ssh hetzner1 "passenger-status"
|
|
ssh hetzner2 "passenger-status"
|
|
|
|
# Git-Status prüfen
|
|
ssh hetzner1 "cd /var/www/vhosts/blogwoman.de/httpdocs && git log --oneline -3"
|
|
ssh hetzner2 "cd /var/www/vhosts/porwoll.de/httpdocs && git log --oneline -3"
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Änderungsprotokoll
|
|
|
|
### 17.02.2026
|
|
- **Kontaktformular Multi-Tenant Refactoring:**
|
|
- `forms` + `form-submissions` tenant-scoped via `multiTenantPlugin` (customTenantField)
|
|
- `ContactFormBlock` refaktoriert: Formular-Referenz statt hardcoded `recipientEmail`
|
|
- `setSubmissionTenant` Hook: Tenant auto-propagation Form → Submission
|
|
- `sendFormNotification` Hook: E-Mail-Benachrichtigung via Tenant-SMTP
|
|
- `FormSubmissionsOverrides`: Tenant-Feld, Status-Workflow, Notizen, Antwort-Tracking
|
|
- Migration: `20260217_120000_add_tenant_to_forms.ts`
|
|
- Production (porwoll.de): Formular erstellt, Block verknüpft, E2E getestet (inkl. E-Mail-Empfang)
|
|
- Plesk Hetzner 2: `NEXT_PUBLIC_TENANT_ID` von 1 auf 4 korrigiert (war Ursache für site-wide 404s)
|
|
- **Globaler Typecheck stabilisiert (Commit `4386ac5`):**
|
|
- Payload-Typen neu generiert (`src/payload-types.ts`) und Typkonflikte über API-Routen, Integrationen, Monitoring und Reporting bereinigt
|
|
- `community-interactions` Sync-Pfade (YouTube/Facebook/Instagram) auf Pflichtfelder und kompatible Literal-Typen angepasst
|
|
- Monitoring- und Alerting-Typen konsolidiert (u. a. Cooldown-Keying im AlertEvaluator)
|
|
- RulesEngine-Notification-Payload auf aktuelles `yt-notifications` Schema korrigiert (`recipient`, `relatedVideo`, `read`)
|
|
- Verifikation: `pnpm typecheck` erfolgreich (0 TypeScript-Fehler)
|
|
|
|
### 15.02.2026
|
|
- **Multi-Server Orchestration (Phase 1-8) abgeschlossen:**
|
|
- SSH-Infrastruktur: sv-payload → sv-frontend (key: frontend_deploy), Hetzner 1/2 (key: plesk_deploy)
|
|
- payload-contracts Repo: Shared types, API client, block registry (Git-Dependency)
|
|
- Work-Order-System: `create-work-order.sh` + `execute-work-order.sh` für CMS→Frontend-Koordination
|
|
- blogwoman.de: Migration auf Contracts-Client (Bridge-Pattern), live auf Hetzner 1
|
|
- porwoll.de: Direkte Contracts-Types, 9 Blocks, live auf Hetzner 2
|
|
- Plesk Production: nginx-only + Passenger 6.1.0, GitHub Webhooks (Auto-Deploy)
|
|
- CI/CD: Lint+Build CI, Staging-Deploy via SSH (UDM Pro SE Port-Forward 37.24.237.181:2204)
|
|
- Claude Code v2.1.37 auf sv-frontend mit CLAUDE.md in allen Repos
|
|
- **Monitoring & Alerting Dashboard implementiert:**
|
|
- 4 neue Collections: MonitoringSnapshots, MonitoringLogs, MonitoringAlertRules, MonitoringAlertHistory
|
|
- Backend-Services: MonitoringService, PerformanceTracker, MonitoringLogger, AlertEvaluator, SnapshotCollector
|
|
- 8 REST-Endpoints unter /api/monitoring/* + SSE-Stream
|
|
- 5-Tab Admin Dashboard (System Health, Services, Performance, Alerts, Logs)
|
|
- Data Retention Policies (7d/30d/90d)
|
|
- 31 Tests für Monitoring-Module (Types, Service, Tracker, Logger, Evaluator)
|
|
- Feature-Branch: feature/monitoring-dashboard
|
|
|
|
### 14.02.2026
|
|
- **YouTube Thumbnail-Download implementiert:**
|
|
- `downloadAndUploadImage()` Utility für Bild-Download → Payload Media
|
|
- afterChange Hook auf YouTubeContent: Auto-Download bei leerem Thumbnail
|
|
- afterChange Hook auf YouTubeChannels: Auto-Download Kanalbild
|
|
- Bulk-Endpoint: `POST /api/youtube/thumbnails/bulk` (Super-Admin)
|
|
- `channelThumbnailUrl` Feld zu YouTubeChannels hinzugefügt
|
|
- **Meta Kommentar-Sync abgeschlossen:**
|
|
- `/api/community/sync` verwendet jetzt UnifiedSyncService (alle Plattformen)
|
|
- Vorher: Nur YouTube-Sync über Legacy-Service
|
|
- Optionale Plattform-Filterung im Request-Body
|
|
- **CI/CD Pipeline fertiggestellt:**
|
|
- ESLint, TypeScript, Tests, Build, E2E in CI
|
|
- Staging Auto-Deploy bei Push auf develop
|
|
- Production Deploy mit Backup + Auto-Rollback
|
|
- Security Scanning (Gitleaks, CodeQL, pnpm audit)
|
|
- **CLAUDE.md Dokumentation erweitert:**
|
|
- Community Management System vollständig dokumentiert
|
|
- 14 API-Endpoints, Architektur-Diagramm, Meta-Integration
|
|
- CI/CD Pipeline dokumentiert
|
|
|
|
### 13.02.2026
|
|
- **Payload CMS 3.69.0 → 3.76.1 Upgrade:**
|
|
- Login-Bug (#15243) mit hasMany Relationships ist in 3.76.1 behoben
|
|
- Custom Admin Views funktionieren wieder (path-to-regexp Bug gefixt)
|
|
- **Next.js 15.5.9 → 16.2.0-canary.41 Upgrade**
|
|
- **YouTube Analytics Dashboard implementiert:**
|
|
- 4-Tab-Dashboard (Übersicht, Videos, Audience, Engagement)
|
|
- Kanal-Auswahl für Multi-Channel-Support
|
|
- Tab-Switch-Crash und Channel-Selector Bugs gefixt
|
|
- **Admin-Nav Sidebar Refactoring:**
|
|
- Sidebar-Navigation auf nativen Payload-Stil umgestellt
|
|
- Einheitliche Nav-Groups für alle Custom Views
|
|
- **tsx als explizite devDependency hinzugefügt** (Queue-Worker Abhängigkeit)
|
|
- **Dokumentation konsolidiert:**
|
|
- Alle Versionsnummern aktualisiert
|
|
- BUG_REPORT_CUSTOM_VIEWS.md entfernt (obsolet)
|
|
- .env.example auf PostgreSQL korrigiert
|
|
- README.md projektspezifisch ersetzt
|
|
|
|
### 17.01.2026
|
|
- **Dokumentation bereinigt:**
|
|
- `docs/anleitungen/TODO.md` gelöscht (redundant mit PROJECT_STATUS.md)
|
|
- `docs/STAGING-DEPLOYMENT.md` auf Quick Reference reduziert
|
|
- **Payload 3.72.0 Login-Bug identifiziert:**
|
|
- Bug: Login schlägt fehl bei Usern mit hasMany Relationships (tenants, youtubeChannels)
|
|
- GitHub Issue erstellt: #15243
|
|
- Empfehlung: Bei 3.69.0 bleiben bis Fix verfügbar
|
|
|
|
### 09.01.2026
|
|
- **YtSeries Collection implementiert:**
|
|
- YouTube-Serien mit eigenem Branding (Logo, Farben)
|
|
- Relationship zu YouTubeChannels
|
|
- YouTube-Playlist-Integration
|
|
- **Community Management Phase 2:**
|
|
- Meta (Facebook/Instagram) OAuth-Integration
|
|
- MetaAccounts Collection für Kontoverwaltung
|
|
- Geplant: Kommentar-Synchronisation für Meta-Plattformen
|
|
|
|
### 05.01.2026
|
|
- **Community Management Phase 1:**
|
|
- YouTubeChannels Collection (Multi-Kanal-Verwaltung)
|
|
- YouTubeContent Collection (Videos + Shorts)
|
|
- YtNotifications Collection (Handlungsbedarf-System)
|
|
- YouTube Operations Dashboard
|
|
- Kommentar-Synchronisation via YouTube Data API
|
|
- Community Reports (E-Mail)
|
|
|
|
### 29.12.2025
|
|
- **Dokumentation konsolidiert und aktualisiert:**
|
|
- CLAUDE.md: Collections (40+) und Blocks (37) vollständig dokumentiert
|
|
- CLAUDE.md: Neue Collections (Products, Tags, Authors, Locations, Partners, Jobs, Downloads, Events)
|
|
- CLAUDE.md: Neue Blocks (ImageSlider, Blogging, Team-Filter, Feature-Blocks, Interactive-Blocks)
|
|
- CLAUDE.md: Globals-Abschnitt korrigiert (SiteSettings/Navigations sind jetzt Collections)
|
|
- docs/INFRASTRUCTURE.md, docs/DEPLOYMENT.md aktualisiert
|
|
- docs/anleitungen/*.md auf aktuelle URLs korrigiert
|
|
|
|
### 27.12.2025
|
|
- Payload CMS Update 3.68.4 → 3.69.0
|
|
- Bug-Fixes Admin Panel:
|
|
- Login Redirect Loop behoben (formatAdminURL Fix)
|
|
- Speichern-Button für User-Account repariert (Access Control)
|
|
- Einstellungen-Gruppe in Navigation sichtbar (SEOSettings Access)
|
|
- Datenbank-Schema aktualisiert (site_settings_id, navigations_id)
|
|
- Nicht benötigte Dateien entfernt (custom login page, migrations_backup)
|
|
- ImportMap regeneriert
|
|
|
|
### 18.12.2025
|
|
- sv-frontend (LXC 704) komplett eingerichtet
|
|
- 9 GitHub Repositories erstellt
|
|
- Alle Next.js Projekte initialisiert
|
|
- Systemd Services für alle Frontends
|
|
- Caddy Routing für *-dev.porwoll.tech
|
|
- AI-Tools (Claude Code, Codex, Gemini) installiert
|
|
- Infrastruktur-Dokumentation aktualisiert
|
|
|
|
### 12.12.2025
|
|
- sv-caddy mit Cloudflare DNS-Challenge
|
|
- Wildcard SSL für porwoll.tech
|
|
- Redis Commander auf sv-postgres
|
|
- pgAdmin4 entfernt (MIME-Type Probleme)
|
|
|
|
### 11.12.2025
|
|
- Hetzner 3 Production Setup
|
|
- Payload CMS Migration
|
|
- Umami Analytics Production
|
|
- Redis Caching (Dev + Prod)
|
|
- Package-Versionen synchronisiert
|
|
|
|
### 26.11.2025
|
|
- Initial Payload CMS Setup
|
|
- Multi-Tenant Plugin
|
|
- PostgreSQL auf sv-postgres
|
|
- Erste Tenants angelegt
|