import Link from "next/link"; import Shell from "../components/shell"; import { getDb } from "@/lib/db"; import { DEFAULT_TAGE_VORHER } from "@/lib/settings"; import { TestButtons } from "./test-buttons"; import IntegrationsForm from "./integrations-form"; import MembersSection from "./members"; export const dynamic = "force-dynamic"; function Card({ title, children }: { title: string; children: React.ReactNode }) { return (

{title}

{children}
); } export default async function SettingsPage() { const db = getDb(); const last = await db.notificationLog.findFirst({ orderBy: { sentAt: "desc" } }); return ( ← Zurück

Einstellungen

Erinnerungen, Benachrichtigungen und Empfänger.

Kontakte

Wer soll an eure Gutscheine erinnert werden?

Kontakte verwalten

Neue Gutscheine erhalten diese Erinnerungsregeln: {DEFAULT_TAGE_VORHER.join(", ")} Tage vorher.

{last ? (

{last.sentAt.toLocaleString("de-DE")} · {last.kanal} an {last.empfaenger} · {last.status} {last.fehler ? ` · Fehler: ${last.fehler}` : ""}

) : (

Noch keine Benachrichtigung versendet.

)}

Gesamte Datenbank als Datei sichern, inklusive Gutscheine, Kontakte, Mitglieder und verschlüsselte Einstellungen.

Datenbank-Backup herunterladen

Wiederherstellen am Server: Datei als /data/gutscheine.db ablegen. Derselbe SETTINGS_ENCRYPTION_KEY muss erhalten bleiben.

APP_USER, APP_PASSWORD_HASH, SESSION_SECRET, SETTINGS_ENCRYPTION_KEY, DATABASE_URL, CRON_SECRET, APP_URL. SMTP, Telegram und Logo.dev lassen sich oben in der App verwalten; .env dient als Rückfall.

Zusätzlich manuell: Volume gutschein-data bzw. Datei /data/gutscheine.db regelmäßig kopieren.

); }