import type { Metadata } from "next"; import { getAllSiteSettings, isSignupsDisabled } from "@/lib/site-settings"; import { AdminSettingsForm } from "@/components/admin/admin-settings-form"; import { AdminDefaultModelForm } from "@/components/admin/admin-default-model-form"; import { SignupsToggle } from "@/components/admin/signups-toggle"; export const metadata: Metadata = {}; const SETTING_GROUPS = [ { title: "AI Provider Keys", description: "Override the environment variable API keys at runtime. Values are encrypted at rest.", keys: ["OPENAI_API_KEY", "ANTHROPIC_API_KEY", "OPENROUTER_API_KEY"] as const, }, { title: "AI Configuration", description: "Provider routing and model defaults.", keys: ["OPENROUTER_DEFAULT_MODEL", "OLLAMA_BASE_URL"] as const, }, { title: "Push Notifications (VAPID)", description: "Keys for web push notifications. Generate with: npx web-push generate-vapid-keys", keys: ["NEXT_PUBLIC_VAPID_PUBLIC_KEY", "VAPID_PRIVATE_KEY"] as const, }, ]; export default async function AdminSettingsPage() { const settings = await getAllSiteSettings(); const signupsDisabled = await isSignupsDisabled(); return (

Site Settings

Override .env values at runtime. DB values take precedence over environment variables. Clear a value to fall back to the environment variable.

{SETTING_GROUPS.map((group) => ( ))}
); }