diff --git a/app/flows/page.tsx b/app/flows/page.tsx new file mode 100644 index 0000000..05848fe --- /dev/null +++ b/app/flows/page.tsx @@ -0,0 +1,46 @@ +import Link from 'next/link' +import { redirect } from 'next/navigation' +import { getCurrentUser } from '@/lib/session' + +export const dynamic = 'force-dynamic' + +const FLOWS = [ + { + href: '/flows/update-scrum4me-web', + title: 'Update Scrum4Me website', + desc: 'Pull main, build, restart container, run smoke tests', + }, + { + href: '/flows/update-caddy-config', + title: 'Update Caddy config', + desc: 'Reload Caddy met nieuwe Caddyfile + cert renewal check', + }, +] + +export default async function FlowsIndex() { + const user = await getCurrentUser() + if (!user) redirect('/login') + + return ( +
+
+
+

Flows

+

Multi-step deployments met dry-run en audit-log

+
+
+ {FLOWS.map((f) => ( + +

{f.title}

+

{f.desc}

+ + ))} +
+
+
+ ) +} diff --git a/app/settings/page.tsx b/app/settings/page.tsx new file mode 100644 index 0000000..5c57740 --- /dev/null +++ b/app/settings/page.tsx @@ -0,0 +1,41 @@ +import Link from 'next/link' +import { redirect } from 'next/navigation' +import { getCurrentUser } from '@/lib/session' + +export const dynamic = 'force-dynamic' + +const SETTINGS = [ + { + href: '/settings/backups', + title: 'Backups', + desc: 'Postgres dumps en restore-runbook', + }, +] + +export default async function SettingsIndex() { + const user = await getCurrentUser() + if (!user) redirect('/login') + + return ( +
+
+
+

Settings

+

Configuratie en onderhoud

+
+
+ {SETTINGS.map((s) => ( + +

{s.title}

+

{s.desc}

+ + ))} +
+
+
+ ) +}