feat: add dnsmasq DNS record admin UI

- store records in SQLite via built-in node:sqlite, no native deps
- wrap DB reads in await io() so they stay out of the static shell
- add CRUD pages backed by Server Actions with per-request data
- generate managed config and restart container via Docker socket
- add /resolve page to query dnsmasq for A and CNAME records
- add Dockerfile and compose setup with shared config volume
This commit is contained in:
siujamo committed 2026-10-09 16:47:31 +08:00
1 parent c5585f2b13
commit 97ad09ad8a
27 files changed
+1344 -130

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
import Link from "next/link"
import { RecordForm } from "../_components/RecordForm"
import { createRecordAction } from "../actions"
export const metadata = { title: "新增记录" }
export default function NewRecordPage() {
return (
<section className="space-y-6">
<header className="space-y-1">
<Link
href="/records"
className="text-sm text-zinc-500 transition-opacity hover:opacity-70 dark:text-zinc-400">
← 返回列表
</Link>
<h1 className="text-xl font-semibold text-zinc-900 dark:text-zinc-100">新增记录</h1>
</header>
<RecordForm action={createRecordAction} submitLabel="创建记录" cancelHref="/records" />
</section>
)
}