mirror of
https://github.com/complexcaresolutions/frontend.porwoll.de.git
synced 2026-03-17 16:23:41 +00:00
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 <noreply@anthropic.com>
This commit is contained in:
parent
9e31c48d92
commit
f518e20fae
4 changed files with 135 additions and 5 deletions
89
.claude/ralph-loop.local.md
Normal file
89
.claude/ralph-loop.local.md
Normal file
|
|
@ -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 <promise>PHASE1_COMPLETE</promise> wenn alle Aufgaben erledigt.
|
||||||
|
|
||||||
38
README.md
38
README.md
|
|
@ -1,2 +1,36 @@
|
||||||
# frontend.porwoll.de
|
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).
|
||||||
Frontend for porwoll.de - Next.js with Payload CMS
|
|
||||||
|
## 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.
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,21 @@ import nextTs from "eslint-config-next/typescript";
|
||||||
const eslintConfig = defineConfig([
|
const eslintConfig = defineConfig([
|
||||||
...nextVitals,
|
...nextVitals,
|
||||||
...nextTs,
|
...nextTs,
|
||||||
// Override default ignores of eslint-config-next.
|
{
|
||||||
|
rules: {
|
||||||
|
"@typescript-eslint/no-unused-vars": ["warn", {
|
||||||
|
argsIgnorePattern: "^_",
|
||||||
|
varsIgnorePattern: "^_",
|
||||||
|
destructuredArrayIgnorePattern: "^_",
|
||||||
|
}],
|
||||||
|
},
|
||||||
|
},
|
||||||
globalIgnores([
|
globalIgnores([
|
||||||
// Default ignores of eslint-config-next:
|
|
||||||
".next/**",
|
".next/**",
|
||||||
"out/**",
|
"out/**",
|
||||||
"build/**",
|
"build/**",
|
||||||
"next-env.d.ts",
|
"next-env.d.ts",
|
||||||
|
"server.js",
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import { cn } from '@/lib/utils'
|
|
||||||
|
|
||||||
interface QuoteBlockProps {
|
interface QuoteBlockProps {
|
||||||
block: Record<string, unknown>
|
block: Record<string, unknown>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue