剪藏#剪藏#爱分享丫

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

2026 年 1 月 16 日1 分钟
分享Twitter / XTelegram微博
创建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. 最终成果

文件结构

JAVASCRIPT
├──dnsmgr
    ├── logo.png
    ├── data.yml // 应用声明文件
    ├── README.md
    ├── latest
        ├── data.yml // 应用的参数配置
        └── docker-compose.yml

应用声明文件(data.yml)

JAVASCRIPT
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
    crossVersionUpdatetrue
    limit0
    recommend25
    websitehttps://github.com/netcccyun/dnsmgr
    githubhttps://github.com/netcccyun/dnsmgr
    documenthttps://github.com/netcccyun/dnsmgr/blob/main/README.md
    architectures:
      - amd64

应用参数配置文件(latest/data.yml)

JAVASCRIPT
additionalProperties:
  formFields:
    - child:
        default""
        envKeyPANEL_DB_HOST
        requiredtrue
        type: service
      default: mysql
      envKeyPANEL_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: 数据库服务
      requiredtrue
      type: apps
      values:
        - label: MySQL
          value: mysql
        - label: MariaDB
          value: mariadb
    - default: dnsmgr
      envKeyPANEL_DB_NAME
      labelEn: Database
      labelZh: 数据库
      label:
        en: Database
        ja: データベース
        ms: Pangkalan Data
        pt-br: Banco de Dados
        ru: База данных
        ko: 데이터베이스
        zh-hant: 資料庫
        zh: 数据库
      randomtrue
      requiredtrue
      rule: paramCommon
      type: text
    - default: dnsmgr
      envKeyPANEL_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: 数据库用户
      randomtrue
      requiredtrue
      rule: paramCommon
      type: text
    - default: dnsmgr
      envKeyPANEL_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: 数据库密码
      randomtrue
      requiredtrue
      type: password
    - default8080
      envKeyPANEL_APP_PORT_HTTP
      labelEn: Port
      labelZh: 端口
      label:
        en: Port
        ja: ポート
        ms: Port
        pt
JAVASCRIPT
-br: Porta
        ru: Порт
        ko: 포트
        zh-Hant: 埠
        zh: 端口
      requiredtrue
      rule: paramPort
      type: number

容器配置文件(latest/docker-compose.yml)

JAVASCRIPT
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:
    externaltrue

三、应用文件上传与同步

将上述dnsmgr文件夹完整上传至1panel的本地应用目录 /opt/1panel/resource/apps/local,随后进入1panel面板的「应用商店」,点击「同步本地应用」按钮,即可在应用列表中看到「彩虹聚合DNS管理系统(dnsmgr)」。

Notion image

四、补充说明

  1. 应用图标未额外设计,直接沿用了最初豆包AI生成的logo.png文件;

  2. README.md也未重写编写,直接沿用了最初豆包AI生成的README.md文件;

  3. 域名绑定操作:部署完成后,若需为系统绑定域名,可进入1panel的「创建网站」功能,在「一键部署」选项中找到已创建的dnsmgr应用,按指引完成域名绑定与访问配置,全程无需手动修改配置文件,操作高效便捷。

原文地址: https://mp.weixin.qq.com/s?__biz=MzIyODg5NjI2MA==&mid=2247485390&idx=1&sn=3d540ce6b3e58f816aa770421ea440df&chksm=e9dddad4b9380d04ec61faebc8a67f36a794bb243cd0ce105370bfe8949cc2334cb7bdf47384&mpshare=1&scene=1&srcid=0116B3BJ0IQaKVt80TvWca9E&sharer_shareinfo=b5de5012384116de2210dc6033f5289a&sharer_shareinfo_first=b5de5012384116de2210dc6033f5289a#rd

相关文章