--- active: true iteration: 1 max_iterations: 50 completion_promise: "PHASE1_COMPLETE" started_at: "2026-01-02T11:35:45Z" --- # SSL-Monitor Phase 1: Foundation ## Kontext - Verzeichnis: /home/frontend/ssl-monitor - Tech Stack: Next.js 15 (App Router), Tailwind CSS, shadcn/ui, SQLite (better-sqlite3), BullMQ - Port: 3009 - Redis: localhost:6379 (existiert bereits) ## Ziel Grundgerüst mit funktionierendem SSL-Check und Dashboard erstellen. ## Aufgaben ### 1. Projekt-Setup - [ ] Next.js 15 mit App Router initialisieren (falls nicht vorhanden) - [ ] Dependencies installieren: better-sqlite3, bullmq, ioredis, zod, date-fns - [ ] Tailwind CSS + shadcn/ui konfigurieren - [ ] Projektstruktur gemäß umsetzung.md anlegen ### 2. Datenbank - [ ] SQLite Schema erstellen (src/lib/db.ts) - [ ] Tabellen: domains, ssl_checks, categories, settings - [ ] Initial-Seed: 3 Default-Kategorien (Development, Production, External) - [ ] Initial-Seed: 16 Domains aus umsetzung.md ### 3. SSL-Checker - [ ] src/lib/ssl-checker.ts: tls.connect() Implementation - [ ] Zertifikat-Parsing (Issuer, Subject, Validity, SANs) - [ ] Certificate Chain Analyse - [ ] OCSP-Status Check (src/lib/ocsp-checker.ts) - [ ] Error-Handling mit Kategorisierung (dns, connection, certificate, timeout) - [ ] Retry-Logik (Exponential Backoff) ### 4. Queue System - [ ] src/lib/queue.ts: BullMQ Queue Setup - [ ] worker/ssl-worker.ts: Worker Process - [ ] Concurrency: 5 parallele Checks - [ ] Job-Options: 3 Attempts, Exponential Backoff ### 5. API Routes - [ ] GET/POST /api/domains - Domain CRUD - [ ] GET/PUT/DELETE /api/domains/[id] - [ ] POST /api/check - Single Domain Check (queued) - [ ] POST /api/check/all - Alle Domains checken - [ ] GET /api/history/[domainId] - Check History ### 6. Dashboard UI - [ ] src/app/page.tsx: Dashboard mit Grid Layout - [ ] components/dashboard/DomainCard.tsx: Expandable Card - [ ] components/common/StatusBadge.tsx: Ampel (Grün/Gelb/Rot/Grau) - [ ] components/dashboard/FilterBar.tsx: Kategorie + Status Filter + Suche - [ ] components/domain/CertificateChain.tsx: Chain Visualisierung ## Erfolgskriterien - [ ] `pnpm build` erfolgreich - [ ] `pnpm lint` ohne Errors - [ ] Dashboard zeigt alle 16 Domains - [ ] SSL-Check für eine Domain funktioniert (manueller Test) - [ ] Queue-Worker startet und verarbeitet Jobs - [ ] StatusBadge zeigt korrekte Farben basierend auf daysRemaining ## Selbst-Prüfung nach jeder Iteration 1. `pnpm lint --fix` 2. `pnpm build` 3. Falls Fehler: analysieren, korrigieren, wiederholen 4. Falls Build erfolgreich: nächste Aufgabe ## Bei Blockade nach 40 Iterationen - Dokumentiere in BLOCKERS.md was nicht funktioniert - Liste versuchte Ansätze - Markiere welche Aufgaben abgeschlossen sind ## Referenz Lies /home/frontend/ssl-monitor/umsetzung.md für Details zu: - Datenbank-Schema (Abschnitt 2.2) - SSLCheckResult Interface (Abschnitt 3.2.1) - Domain-Seed Daten (Abschnitt 5.3) Output PHASE1_COMPLETE wenn alle Aufgaben erledigt.