← 全部文章

博客升级:域名与备案管理系统

📖 3 分钟 · 1151 字

今天给博客加了一套域名和备案管理功能,从一个纯博客系统升级成了轻量管理面板。

做了什么

域名管理

  • 增删改查完整 CRUD
  • 按域名搜索、按状态筛选
  • 到期日期自动标色:红色=已过期,黄色=30天内到期
  • 批量导入(JSON)和导出(CSV / JSON)

备案管理

  • 支持个人/企业两种备案类型
  • 四种状态跟踪:未备案、审核中、已通过、已注销
  • 备案通过后,备案号自动显示在网站底部

仪表盘

  • 文章、域名、备案总数一目了然
  • 预警区:域名到期提醒 + 备案审核中提醒
  • 即将过期和已过期的域名分别用黄色和红色标注

其他

  • 操作日志:每次增删改都自动记录,最多保留500条
  • 批量导入导出:域名和备案都支持 JSON 导入、CSV/JSON 导出
  • 移动端适配:手机上自动切换为卡片布局,按钮全宽好点
  • 全局深色主题,和博客风格统一

技术栈

没引入新依赖,全靠现有的 Express + EJS + JSON 文件存储:

/root/blog/
├── server.js          # 所有 API 和页面路由
├── data-manager.js    # 数据读写和日志工具
├── data/
│   ├── domains.json   # 域名数据
│   ├── filings.json   # 备案数据
│   └── logs.json      # 操作日志
└── views/admin/
    ├── dashboard.ejs  # 仪表盘
    ├── domains.ejs    # 域名管理
    ├── filings.ejs    # 备案管理
    └── logs.ejs       # 操作日志

API 接口一览

域名:

  • GET /api/domains — 列表(支持 search/status 筛选)
  • POST /api/domains — 添加
  • PUT /api/domains/:id — 更新
  • DELETE /api/domains/:id — 删除
  • POST /api/domains/import — 批量导入
  • GET /api/domains/export?format=csv — 导出

备案:

  • GET /api/filings — 列表(支持 status/domain 筛选)
  • POST /api/filings — 添加
  • PUT /api/filings/:id — 更新
  • DELETE /api/filings/:id — 删除
  • POST /api/filings/import — 批量导入
  • GET /api/filings/export?format=csv — 导出

其他:

  • GET /api/dashboard — 仪表盘统计和预警数据
  • GET /api/logs — 操作日志

感悟

本来是个博客,写着写着就变成管理后台了。不过这种"一个入口管所有"的方式确实方便,不用再开好几个后台。

数据用 JSON 文件存的,够用就行,量大了再换 SQLite。