创建1panel应用:彩虹聚合DNS管理系统

创建1panel应用:彩虹聚合DNS管理系统
该系统最初通过PHP运行环境部署,但过程中发现其依赖的Shell自动计划任务无法正常执行,且每次更新需手动下载文件并覆盖部署,操作繁琐。为提升管理与安装效率,遂决定将其封装为1panel应用,简化后续运维流程。
一、彩虹聚合DNS管理系统简介
彩虹聚合DNS管理系统是基于ThinkPHP开发的域名解析管理网站程序,支持在单一平台内统一管理多渠道的域名解析服务。目前已兼容的域名解析平台包括:阿里云、腾讯云、华为云、百度云、西部数码、火山引擎、DNSLA、CloudFlare、Namesilo、PowerDNS。
功能特性
-
多用户权限管理:可为不同用户分配差异化的域名解析操作权限,满足多角色协作需求;
-
开放API接口:支持获取域名单独登录链接,便于与各类IDC管理系统对接集成;
-
智能容灾切换:支持ping、tcp、http(s)多种检测协议,可自动暂停/修改异常域名解析,并触发通知提醒;
-
定时解析调度:支持按指定时间或周期,自动执行域名解析的修改、开启、暂停、删除操作;
-
CloudFlare优选IP:可自动获取最新Cloudflare优选IP,并同步更新至对应解析记录;
-
SSL证书自动化:支持从Let's Encrypt等渠道申请SSL证书,并自动部署到各类面板、云服务商及服务器;
-
多渠道通知:兼容邮件、微信公众号、Telegram、钉钉、飞书、企业微信等多种通知方式。
项目地址
项目开源地址:https://github.com/netcccyun/dnsmgr
二、应用创建过程
1. 尝试通过豆包AI生成
遗憾的是,AI生成的应用配置文件无法正常使用。由于自身非相关技术背景,仅能通过“摸索式”操作尝试,无法定位具体问题根源,此尝试最终宣告失败。
2. 查阅1panel官方文档
1panel应用提交文档地址: https://github.com/1Panel-dev/appstore/wiki/%E5%A6%82%E4%BD%95%E6%8F%90%E4%BA%A4%E8%87%AA%E5%B7%B1%E6%83%B3%E8%A6%81%E7%9A%84%E5%BA%94%E7%94%A8
作为非技术背景使用者,文档中的专业配置逻辑理解难度较高,仅能看懂部分基础概念,无法深入推进配置流程,最终选择搁置该方案。
3. 参考WordPress应用配置文件修改
核心思路为“复用成熟应用框架”——直接下载1panel应用商店中WordPress的配置文件,基于其既定结构修改内容,适配彩虹聚合DNS管理系统的需求。 WordPress应用配置地址: https://github.com/1Panel-dev/appstore/tree/dev/apps/wordpress
4. 最终成果
文件结构
├──dnsmgr
├── logo.png
├── data.yml // 应用声明文件
├── README.md
├── latest
├── data.yml // 应用的参数配置
└── docker-compose.yml应用声明文件(data.yml)
name: 彩虹聚合DNS管理系统
tags:
- 建站
- 实用工具
- 开发工具
- 本地
title: 彩虹聚合DNS管理系统
description: 统一管理域名解析和ssl自动部署
additionalProperties:
key: dnsmgr
name: dnsmgr
tags:
- Website
- Tool
- Local
shortDescZh: 统一管理域名解析和ssl自动部署
shortDescEn: Unified management of domain name resolution and automatic SSL deployment
description:
en: Unified management of domain name resolution and automatic SSL deployment
ja:
ms:
pt-br:
ru:
ko:
zh-hant:
zh: 统一管理域名解析和ssl自动部署
type: website
crossVersionUpdate: true
limit: 0
recommend: 25
website: https://github.com/netcccyun/dnsmgr
github: https://github.com/netcccyun/dnsmgr
document: https://github.com/netcccyun/dnsmgr/blob/main/README.md
architectures:
- amd64应用参数配置文件(latest/data.yml)
additionalProperties:
formFields:
- child:
default: ""
envKey: PANEL_DB_HOST
required: true
type: service
default: mysql
envKey: PANEL_DB_TYPE
labelEn: Database Service
labelZh: 数据库服务
label:
en: Database Service
ja: データベースサービス
ms: Perkhidmatan Pangkalan Data
pt-br: Serviço de Banco de Dados
ru: Сервис баз данных
ko: 데이터베이스 서비스
zh-hant: 資料庫服務
zh: 数据库服务
required: true
type: apps
values:
- label: MySQL
value: mysql
- label: MariaDB
value: mariadb
- default: dnsmgr
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库
label:
en: Database
ja: データベース
ms: Pangkalan Data
pt-br: Banco de Dados
ru: База данных
ko: 데이터베이스
zh-hant: 資料庫
zh: 数据库
random: true
required: true
rule: paramCommon
type: text
- default: dnsmgr
envKey: PANEL_DB_USER
labelEn: Database User
labelZh: 数据库用户
label:
en: Database User
ja: データベースユーザー
ms: Pengguna Pangkalan Data
pt-br: Usuário do Banco de Dados
ru: Пользователь базы данных
ko: 데이터베이스 사용자
zh-hant: 資料庫用戶
zh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: dnsmgr
envKey: PANEL_DB_USER_PASSWORD
labelEn: Database Password
labelZh: 数据库密码
label:
en: Database Password
ja: データベースのパスワード
ms: Kata Laluan Pangkalan Data
pt-br: Senha do Banco de Dados
ru: Пароль базы данных
ko: 데이터베이스 비밀번호
zh-hant: 資料庫密碼
zh: 数据库密码
random: true
required: true
type: password
- default: 8080
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
label:
en: Port
ja: ポート
ms: Port
pt-br: Porta
ru: Порт
ko: 포트
zh-Hant: 埠
zh: 端口
required: true
rule: paramPort
type: number容器配置文件(latest/docker-compose.yml)
services:
dnsmgr:
image: netcccyun/dnsmgr:latest
container_name: ${CONTAINER_NAME}
ports:
- ${PANEL_APP_PORT_HTTP}:80
restart: always
networks:
- 1panel-network
volumes:
- "./data:/app/www"
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true三、应用文件上传与同步
将上述dnsmgr文件夹完整上传至1panel的本地应用目录 /opt/1panel/resource/apps/local,随后进入1panel面板的「应用商店」,点击「同步本地应用」按钮,即可在应用列表中看到「彩虹聚合DNS管理系统(dnsmgr)」。

四、补充说明
-
应用图标未额外设计,直接沿用了最初豆包AI生成的
logo.png文件; -
README.md也未重写编写,直接沿用了最初豆包AI生成的README.md文件; -
域名绑定操作:部署完成后,若需为系统绑定域名,可进入1panel的「创建网站」功能,在「一键部署」选项中找到已创建的dnsmgr应用,按指引完成域名绑定与访问配置,全程无需手动修改配置文件,操作高效便捷。