From 0f2c844d1a531f44ab41411ebb3dd7410f54ae7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Sun, 24 May 2026 23:38:03 +0300 Subject: [PATCH] fix(ui): premium settings page with env docs Surface server env vars and auth links in glass cards so Settings matches the rest of the app shell. Co-authored-by: Cursor --- src/app/settings/page.tsx | 69 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index f730f4c..0f96689 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -1,11 +1,70 @@ +import Link from "next/link"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; + +const envVars = [ + { + name: "DATABASE_URL", + desc: "PostgreSQL connection string for scans, users, and monitors.", + }, + { + name: "REDIS_URL", + desc: "Redis for scan queue workers (optional on small VPS).", + }, + { + name: "NEXTAUTH_SECRET", + desc: "Session encryption secret — rotate after deploy if leaked.", + }, + { + name: "NEXTAUTH_URL", + desc: "Public app URL (e.g. http://your-server-ip).", + }, + { + name: "IPINFO_TOKEN", + desc: "Optional token for richer geo/IP enrichment.", + }, + { + name: "SCAN_RATE_LIMIT_PER_HOUR", + desc: "Per-IP scan throttle (default from .env.example).", + }, +]; + export default function SettingsPage() { return ( -
-

Settings

-

- Configure IPINFO_TOKEN, SCAN_RATE_LIMIT_PER_HOUR, and database URLs via environment - variables on your server. Theme toggle is in the header. +

+

Settings

+

+ Server configuration lives in environment variables. Theme toggle is in the header.

+ +
+ {envVars.map((v) => ( + + + + {v.name} + .env + + + {v.desc} + + ))} +
+ + + + Account & monitoring + + + + + +
); }