From f518e20faed02a4e8d1de5746cb5a0083f84b6c1 Mon Sep 17 00:00:00 2001 From: CCS Admin Date: Sun, 15 Feb 2026 21:49:22 +0000 Subject: [PATCH] fix: resolve lint errors (server.js ignore, unused imports) - Add server.js to ESLint globalIgnores (CJS file for Passenger) - Remove unused cn import from QuoteBlock - Configure underscore-prefix pattern for unused vars Co-Authored-By: Claude Opus 4.6 --- .claude/ralph-loop.local.md | 89 ++++++++++++++++++++++++++++ README.md | 38 +++++++++++- eslint.config.mjs | 12 +++- src/components/blocks/QuoteBlock.tsx | 1 - 4 files changed, 135 insertions(+), 5 deletions(-) create mode 100644 .claude/ralph-loop.local.md diff --git a/.claude/ralph-loop.local.md b/.claude/ralph-loop.local.md new file mode 100644 index 0000000..42fc15b --- /dev/null +++ b/.claude/ralph-loop.local.md @@ -0,0 +1,89 @@ +--- +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. + diff --git a/README.md b/README.md index b84b58d..e215bc4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,36 @@ -# frontend.porwoll.de -Frontend for porwoll.de - Next.js with Payload CMS +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/eslint.config.mjs b/eslint.config.mjs index 05e726d..f135d3d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,13 +5,21 @@ import nextTs from "eslint-config-next/typescript"; const eslintConfig = defineConfig([ ...nextVitals, ...nextTs, - // Override default ignores of eslint-config-next. + { + rules: { + "@typescript-eslint/no-unused-vars": ["warn", { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + }], + }, + }, globalIgnores([ - // Default ignores of eslint-config-next: ".next/**", "out/**", "build/**", "next-env.d.ts", + "server.js", ]), ]); diff --git a/src/components/blocks/QuoteBlock.tsx b/src/components/blocks/QuoteBlock.tsx index 1deb684..ca10c23 100644 --- a/src/components/blocks/QuoteBlock.tsx +++ b/src/components/blocks/QuoteBlock.tsx @@ -1,7 +1,6 @@ 'use client' import { motion } from 'framer-motion' -import { cn } from '@/lib/utils' interface QuoteBlockProps { block: Record