基于原PHP版dnsmgr重构的Go语言实现,支持多平台DNS管理、SSL证书申请部署、容灾切换等功能。
dns/
├── main/ # Go后端
│ ├── main.go # 入口文件
│ ├── go.mod # Go依赖
│ ├── internal/
│ │ ├── api/ # API层
│ │ │ ├── handler/ # 请求处理器
│ │ │ ├── middleware/ # 中间件
│ │ │ └── router.go # 路由配置
│ │ ├── cert/ # 证书模块
│ │ │ ├── acme/ # ACME客户端
│ │ │ └── deploy/ # 部署适配器
│ │ ├── config/ # 配置管理
│ │ ├── database/ # 数据库层
│ │ ├── dns/ # DNS模块
│ │ │ └── providers/ # DNS服务商适配器
│ │ ├── models/ # 数据模型
│ │ └── monitor/ # 容灾监控
│ └── web/out/ # 前端静态文件
└── web/ # Next.js前端
├── app/ # 页面
├── components/ # 组件
└── lib/ # 工具库
# Go后端依赖
cd dns/main
go mod tidy
# 前端依赖
cd ../web
bun install # 或 npm install
cd dns/web
bun run build # 静态文件将输出到 ../main/web/out
cd dns/main
go run .
服务将在 http://localhost:8080 启动
访问 http://localhost:8080 会自动跳转到安装页面,设置管理员账户。
创建 config.json:
{
"server": {
"port": 8080,
"host": "0.0.0.0",
"mode": "release"
},
"database": {
"driver": "sqlite",
"file_path": "data/dnsplane.db"
},
"jwt": {
"secret": "your-secret-key",
"expire_hour": 24
}
}
| 平台 | 类型 | 备注/状态 |
|---|---|---|
| 阿里云 | aliyun | ✅ 完整支持 |
| 腾讯云 | dnspod | ✅ 完整支持 |
| Cloudflare | cloudflare | ✅ 完整支持 |
| 华为云 | huawei | 待实现 |
| 百度云 | baidu | 待实现 |
| 火山引擎 | huoshan | 待实现 |
| 渠道 | 类型 | 说明 |
|---|---|---|
| Let's Encrypt | letsencrypt | ✅ ACME v2 |
| ZeroSSL | zerossl | ✅ 需要EAB |
所有API以 /api 为前缀,需要Bearer Token认证。
POST /api/login - 登录POST /api/install - 安装GET /api/install/status - 安装状态GET /api/accounts - 账户列表POST /api/accounts - 创建账户PUT /api/accounts/:id - 更新账户DELETE /api/accounts/:id - 删除账户GET /api/domains - 域名列表POST /api/domains - 添加域名GET /api/domains/:id/records - 解析记录GET /api/monitor/tasks - 任务列表POST /api/monitor/tasks - 创建任务# 构建前端
cd dns/web
bun run build
# 编译后端(包含前端静态文件)
cd ../main
go build -o dnsplane .
# 运行
./dnsplane -config config.json
MIT License