Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

混合云 DNS 统一管理面板 (Hybrid Cloud DNS Unified Management Panel)

这是一个基于 Flask 和 jQuery 构建的轻量级 Web 应用,旨在提供一个统一的界面,用于集中管理来自多个云服务商(当前支持阿里云、腾讯云、Cloudflare)的 DNS 解析记录。

This is a lightweight web application built with Flask and jQuery, designed to provide a unified interface for managing DNS records from multiple cloud providers (currently supporting Aliyun, Tencent Cloud, and Cloudflare).

Snipaste_2025-10-30_17-57-45

Snipaste_2025-10-30_17-58-07

Snipaste_2025-10-30_17-58-23

Snipaste_2025-10-30_17-57-17

✨ 核心功能 (Core Features)

  • 多云支持: 统一管理阿里云、腾讯云、Cloudflare 的 DNS 解析记录。
  • Web 界面配置: 无需修改代码,直接在网页上安全地配置和测试各平台的 API 凭证。
  • 本地数据缓存: 所有解析记录缓存在本地 SQLite 数据库中,访问速度快,减少 API 请求。
  • 分组与过滤:
    • 按主域名分组,以卡片形式清晰展示。
    • 按记录类型 (A, CNAME, TXT 等) 快速筛选。
  • 自定义视图: 用户可以选择性地显示或隐藏不同的数据列(如 TTL、状态等),并保存偏好设置。
  • 完整的 CRUD 操作: 支持对解析记录的增、删、改、查操作。
  • Docker 快速部署: 提供 Dockerfiledocker-compose.yml,实现一键部署和持久化数据。
  • 安全登录: 通过管理员账号密码保护面板访问。

🛠️ 技术栈 (Technology Stack)

  • 后端 (Backend): Flask
  • 前端 (Frontend): HTML, CSS, jQuery, Bootstrap 5, DataTables
  • 数据库 (Database): SQLite 3
  • 部署 (Deployment): Docker / Docker Compose

🚀 快速开始 (Getting Started)

我们提供两种部署方式:本地直接运行和 Docker 部署(推荐)。

方式一:本地直接运行 (Without Docker)

  1. 克隆项目

    git clone <your-repository-url>
    cd dns-manager
  2. 创建并激活虚拟环境 (推荐)

    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # macOS / Linux
    source venv/bin/activate
  3. 安装依赖

    pip install -r requirements.txt
  4. 启动应用

    # 在 Windows 上,端口 500 可能需要管理员权限
    python app.py
    
    # 在 macOS / Linux 上,使用低于 1024 的端口需要 sudo
    sudo python app.py

    应用将在 http://127.0.0.1:500 上运行。

方式二:使用 Docker 部署 (推荐)

这是最推荐的部署方式,可以保证环境一致性和数据持久化。

  1. 克隆项目

    git clone <your-repository-url>
    cd dns-manager
  2. 使用 docker-compose 一键启动 (最简单) 在项目根目录下创建一个 docker-compose.yml 文件:

    version: '3.8'
    
    services:
      web:
        build: .
        container_name: dns-app
        ports:
          - "500:500"
        volumes:
          - ./data:/app

    然后运行:

    docker-compose up -d
  3. 或者,手动构建和运行 Docker 容器

    # 1. 构建 Docker 镜像
    docker build -t dns-manager .
    
    # 2. 运行容器,并将数据持久化到本地的 data 目录
    # Windows (CMD)
    docker run -d -p 500:500 --name dns-app -v "%cd%/data:/app" dns-manager
    # Windows (PowerShell)
    docker run -d -p 500:500 --name dns-app -v "${PWD}/data:/app" dns-manager
    # macOS / Linux
    docker run -d -p 500:500 --name dns-app -v "$(pwd)/data:/app" dns-manager

📖 使用指南 (Usage Guide)

  1. 访问应用: 打开浏览器,访问 http://127.0.0.1:500
  2. 登录: 使用默认管理员凭证登录:
    • 用户名: admin
    • 密码: 123456
  3. 配置授权:
    • 首次登录后,点击右上角的 "⚙️ 配置授权" 按钮。
    • 在配置页面填入您在各个云平台的 API 凭证,然后点击 "保存所有配置"。您可以使用 "测试连接" 按钮来验证凭证是否有效。
  4. 同步记录:
    • 返回主页,点击右上角的 "🔄 刷新缓存" 按钮。
    • 应用将从您已配置的所有云平台拉取 DNS 记录并存入本地数据库。
  5. 日常操作:
    • 使用顶部的按钮按记录类型筛选。
    • 点击 "显示列" 按钮自定义表格视图。
    • 在每个域名卡片内的搜索框中搜索特定记录。
    • 点击 "编辑" 或 "删除" 按钮管理记录。

🔑 API 凭证权限要求

为了保证安全,建议为本应用创建独立的、权限受限的子账号或 API Token。

  • 阿里云: 创建 RAM 子账号,并授予 AliyunDNSFullAccess 权限。
  • 腾讯云: 创建子用户,并授予 QcloudDNSPodFullAccess 权限。
  • Cloudflare:
    • 前往 "My Profile" -> "API Tokens" -> "Create Token"。
    • 使用 "Edit zone DNS" 模板创建一个 API Token。
    • 在 "Zone Resources" 部分,选择 "All zones" 或您希望管理的特定区域。

📁 项目结构

dns-manager/
├── Dockerfile # Docker 镜像构建文件
├── app.py # Flask 后端主程序
├── requirements.txt # Python 依赖列表
├── static/ # 存放本地 JS/CSS 文件
│ └── js/
└── templates/ # 存放 HTML 前端文件
├── index.html
├── login.html
└── settings.html

About

用于进行多服务商的域名管理

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages