开源彩虹聚合DNS管理系统

一个站点就能管理多个平台的域名解析管理,申请证书以及部署到宝塔面板的彩虹聚合DNS管理系统。这是一个基于ThinkPHP开发的网站程序——彩虹聚合DNS管理系统,当下已支持的域名解析平台如下:阿里云、腾讯云、华为云、百度云、西部数码、火山引擎、DNSLA、CloudFlare、Namesilo、PowerDNS,以及更多等。目前作者还在持续更新中。

程序截图

功能特性

  • 多用户管理,可为每个用户可分配不同的域名解析权限;
  • 提供API接口,可获取域名单独的登录链接,方便各种IDC系统对接;
  • 容灾切换功能,支持ping、tcp、http(s)检测协议并自动暂停/修改域名解析,并支持发送通知;
  • 定时切换功能,设置在指定时间/周期,自动修改/开启/暂停/删除域名解析;
  • CF优选IP功能,支持获取最新的Cloudflare优选IP,并自动更新到解析记录;
  • SSL证书申请与自动部署功能,支持从Let's Encrypt等渠道申请SSL证书,并自动部署到各种面板、云服务商、服务器等;
  • 支持邮件、微信公众号、Telegram、钉钉、飞书、企业微信等多种通知渠道。

部署方式

1、运行环境要求PHP8.0+,MySQL5.6+

2、设置网站运行目录为public

3、设置伪静态为ThinkPHP

4、访问网站,会自动跳转到安装页面,根据提示安装完成

5、访问首页登录控制面板

首先需要安装Docker,然后执行以下命令拉取镜像并启动(启动后监听8081端口):

docker run --name dnsmgr -dit -p 8081:80 -v /var/dnsmgr:/app/www netcccyun/dnsmgr

访问并安装好后如果容灾切换未自动启动,重启容器即可:

docker restart dnsmgr

从国内镜像地址拉取:

docker pull swr.cn-east-3.myhuaweicloud.com/netcccyun/dnsmgr:latest

docker-compose 部署

services:
  dnsmgr-web:
    container_name: dnsmgr-web
    stdin_open: true
    tty: true
    ports:
      - 8081:80
    volumes:
      - ./web:/app/www
    image: netcccyun/dnsmgr
    depends_on:
      - dnsmgr-mysql
    networks:
      - dnsmgr-network

  dnsmgr-mysql:
    container_name: dnsmgr-mysql
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./mysql/conf/my.cnf:/etc/mysql/my.cnf
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - TZ=Asia/Shanghai
    image: mysql:5.7
    networks:
      - dnsmgr-network

networks:
  dnsmgr-network:
    driver: bridge

在运行之前请创建好目录

mkdir -p ./web
mkdir -p ./mysql/conf
mkdir -p ./mysql/logs
mkdir -p ./mysql/data

vim mysql/conf/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

登陆mysql容器创建数据库

docker exec -it dnsmgr-mysql /bin/bash
mysql -uroot -p123456
create database dnsmgr;

在install界面链接IP填写dnsmgr-mysql

伪静态规则

location ~* (runtime|application)/ {
    return 403;
}
location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=$1 last; break;
    }
}
<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

项目地址

Github:彩虹聚合DNS管理系统

© 版权声明
THE END
喜欢就支持一下吧
点赞18 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容