From eb283f487c7f4dbed2149d08e9c47743baadd624 Mon Sep 17 00:00:00 2001 From: Hendrik Date: Fri, 1 May 2026 21:36:24 +0200 Subject: [PATCH] =?UTF-8?q?v0.1.20=20=E2=80=94=20jobs=20(hits-retention,?= =?UTF-8?q?=20dns-health),=20login=20rate-limit,=20IP-blocklist,=20securit?= =?UTF-8?q?y=20headers,=20search/sort/csv-import=20on=20domains,=20test-ca?= =?UTF-8?q?ll=20+=20per-domain=20PDF,=20webhooks,=20extended=20health?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(app)/domains/[id]/DomainActions.tsx | 12 ++- app/(app)/settings/page.tsx | 25 +++++++ app/api/domains/[id]/report.pdf/route.ts | 61 ++++++++++++++++ app/api/domains/[id]/verify/route.ts | 2 + app/api/domains/import.csv/route.ts | 93 ++++++++++++++++++++++++ app/api/settings/route.ts | 2 +- app/api/v1/health/route.ts | 34 ++++++++- app/r/[token]/page.tsx | 44 ++++++++++- lib/auth.ts | 35 ++++++++- lib/blocklist.ts | 21 ++++++ lib/caddy.ts | 12 +++ lib/hits.ts | 6 ++ lib/jobs.ts | 90 +++++++++++++++++++++++ lib/rate-limit.ts | 31 ++++++++ lib/webhook.ts | 16 ++++ server.ts | 9 +++ 16 files changed, 487 insertions(+), 6 deletions(-) create mode 100644 app/api/domains/[id]/report.pdf/route.ts create mode 100644 app/api/domains/import.csv/route.ts create mode 100644 lib/blocklist.ts create mode 100644 lib/jobs.ts create mode 100644 lib/rate-limit.ts create mode 100644 lib/webhook.ts diff --git a/app/(app)/domains/[id]/DomainActions.tsx b/app/(app)/domains/[id]/DomainActions.tsx index 3b31c86..49e98a8 100644 --- a/app/(app)/domains/[id]/DomainActions.tsx +++ b/app/(app)/domains/[id]/DomainActions.tsx @@ -1,7 +1,7 @@ "use client"; import { useRouter } from "next/navigation"; import { useState } from "react"; -import { RefreshCcw, Trash2, Loader2 } from "lucide-react"; +import { RefreshCcw, Trash2, Loader2, ExternalLink, FileDown } from "lucide-react"; import { Button } from "@/components/ui/button"; export function DomainActions({ id, status, hitsTotal = 0, domainName = "" }: { id: number; status: string; hitsTotal?: number; domainName?: string }) { @@ -42,6 +42,16 @@ export function DomainActions({ id, status, hitsTotal = 0, domainName = "" }: { {busy === "verify" ? : } DNS erneut prüfen + +