Giter VIP home page Giter VIP logo

domain-admin's Introduction

Domain Admin

PyPI - Python Version PyPI PyPI - Downloads Docker Image Version (latest semver) Docker Pulls Build Status PyPI - License Documentation Status GitHub release GitHub Stars

基于Python + Vue3.js 技术栈实现的域名和SSL证书监测平台

用于解决,不同业务域名SSL证书,申请自不同的平台,到期后不能及时收到通知,导致线上访问异常,被老板责骂的问题

Domain Admin是一个轻量级监控方案,占用系统资源较少。同时,Domain Admin也可以作为一个Flask 和 Vue.js前后端分离的项目模板

  • 功能描述

    • 核心功能:域名SSL证书托管证书文件 的过期监控,到期提醒
    • 支持证书:单域名证书、多域名证书、通配符证书、IP证书、自签名证书
    • 证书部署: 单一主机部署、多主机部署、动态主机部署
    • 通知渠道:支持邮件、Webhook、企业微信、钉钉、飞书等通知方式
    • 支持平台:macOS、Linux、Windows
    • 辅助功能:Let’s Encrypt SSL证书申请和自动续期
    • 多语言:支持中文、英文
  • 项目地址:后端代码(github)后端代码(国内镜像)

  • 发布渠道:PyPIDockerReleases1Panel

  • 使用文档:readthedocs

  • 接口文档:githubgitee

安装

请参考安装文档:https://domain-admin.readthedocs.io/zh_CN/latest/manual/install.html

如果不想安装,可以直接使用我们部署好的线上应用,需要体验的用户可以加入QQ群,提供邮箱即可

服务器由群友 @Panda 赞助提供

项目截图

账号密码随意(例如:admin/123456),预览模式仅提供模拟数据,无法操作修改

1、网页版:

前端项目地址(请自行解码):aHR0cHM6Ly9naXRodWIuY29tL21vdWRheS9kb21haW4tYWRtaW4td2Vi

2、移动端版:

移动端项目地址(请自行解码):aHR0cHM6Ly9naXRodWIuY29tL21vdWRheS9kb21haW4tYWRtaW4tbWluaQ==

为了更多地人参与到项目中来,现已开放前端代码,加入QQ群即可获取前端项目地址

问题反馈交流

由于访问github的网络不稳定,如果需要及时获得反馈,请通过以下方式联系

QQ群号: 731742868

邀请码:domain-admin

微信交流群

如果二维码过期,请先添加群主微信

回复备注:domain-admin

更新日志

CHANGELOG.md

使用者

虚位以待

赞助商

日期 姓名 金额
2023-11-21 @1275788667 ¥50.00
2024-01-05 @hhdebb ¥50.00

Domain Cloud 众筹

由于本项目需要使用者自行安装,对于使用有一定的技术门槛,所以发起一个众筹

资金将用于部署一个线上版本的domain-admin,直接通过网页就可以使用

目标:¥2000

配置:一个域名 + 一台服务器

友情链接:

Stargazers over time

domain-admin's People

Contributors

buyfakett avatar kudosiscon avatar miss85246 avatar mjwtc0722 avatar mouday avatar poctopus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

domain-admin's Issues

定时任务无法正常执行

这个项目我很需要,但似乎遇到了一些问题,程序以docker方式运行,在“监测日志”里历史执行状态全都是失败,“错误日志”一栏为“-”,我想请问日志在哪里查看?
另外,配置了163的发件邮箱后,向腾讯邮箱发邮件都会被腾讯退回。

建议新增 freenom 的支持

修好后试了一下,不知道是因为网不通还是程序本身不支持freenom域名的原因
导入后全部显示红叉子,到期时间什么的全部不显示

希望增加一个管理二级域名的功能

希望增加一个管理二级域名的功能,也就是要一个二级域名的列表,包括会显示解析到的IP地址、是否是能够正常解析、二级域名创建时间、备注等信息,大佬辛苦。

webhook通知只通知30天内的域名

我在个人设置里面设置了过期时间是30天,然后在通知设置里的webhook模块请求体里面添加了以下内容
{
"msgtype": "text","text": {"content":"===以下SSL证书即将过期===\n {% for item in domain_list %} {{item.domain}} - {{item.expire_days}} \n {% endfor %}"},"at": {"isAtAll": true}
}

最后通知出来的内容是所有域名,并没有筛选出小于30天的,请问如何修改 @mouday

SMTP服务需要增加SMTP验证用户名问题

当我使用Resend.com服务的时候,SMTP验证的用户名是固定值resend,密码按照要求生成是token,按照现在程序配置的逻辑,没有发件人这一项可以填写,建议添加上发送人邮箱。

监测ssl smtp port 25 with StartTLS

目前无法正确监测ssl证书之位于端口25上的smtp服务。请问有什么解决办法吗?

感谢这个开源项目,我们使用了一段时间,很不错。

是否考虑下把网站状态一同监控报警了

当前监控证书,域名的状态,是基于网站 的URL访问及其他数据;

考虑一下, 把网站(或者指定的URL)的http(s)返回码一并监控+报警了.
同类的平台虽然很多, 但是当前多这一个或者可以方便很多. 指定URL或者指定的域名访问http(S)返回http状态码,如果不在指定的值,则报警. 用于监控网站运行状态.

作者可以考虑一下这个功能,是否值得添加.
本来就有这块功能,只是没有特意放出来 . 不如考虑一下.

python3.9 login error


[2023-08] ERROR in app: Exception on /api/login [POST]
Traceback (most recent call last):
File "/usr/local/python3.9/lib/python3.9/site-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/python3.9/lib/python3.9/site-packages/flask/app.py", line 1519, in full_dispatch_request
return self.finalize_request(rv)
File "/usr/local/python3.9/lib/python3.9/site-packages/flask/app.py", line 1538, in finalize_request
response = self.make_response(rv)
File "/opt/domain-admin/domain-admin-1.5.15/domain_admin/utils/flask_ext/flask_app.py", line 45, in make_response
return Response(rv.to_json(), content_type='application/json;charset=utf-8')
File "/opt/domain-admin/domain-admin-1.5.15/domain_admin/utils/flask_ext/api_result.py", line 31, in to_json
return json_util.json_encode(self.to_dict())
File "/opt/domain-admin/domain-admin-1.5.15/domain_admin/utils/json_util.py", line 47, in json_encode
return json.dumps(data, default=default, **kwargs)
File "/usr/local/python3.9/lib/python3.9/json/init.py", line 234, in dumps
return cls(
File "/usr/local/python3.9/lib/python3.9/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/python3.9/lib/python3.9/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
ValueError: Circular reference detected

检测不到

image

chat.homeroute.eu.org

windows 本地搭建不行

lunix可以gunicorn 'domain_admin.main:app' -b '0.0.0.0:8000'
用IP+8000访问

对接钉钉群内自定义webhook机器人发送告警注意事项

  1. 钉钉群内创建自定义webhook机器人,获取webhook地址
    image

  2. 后台配置通知设置
    image
    image
    目前因为没做加签配置,所以直接发起请求是报错的,我们可以使用钉钉关键字报警,相对简单些
    比如添加如下两个关键字:
    image

  3. 修改json主体,让发送的请求符合钉钉要求。
    image
    image

  4. 测试发送消息,出现errcode: 0; errmsg: ok 表示消息已经发送成功
    image

PS:效果展示
image

建议:区分连接不上超时和真的证书过期的提醒

作者您好,提一个小小的建议:

现在有的域名因为网络原因(动态IP),导致domain-admin连接不上,然后就会收到证书过期的提醒。我理解这个应该是一个误报,是否可以区分“域名连接不上”和“证书过期”的包括webhook及邮件提醒的模板?

感谢您开发这么好的平台。

功能升级建议和bug

我使用的版本的web版,实例应用是群晖docker里面的套件安装,是网页方式打开的(所以它应该的个docker的web版),在初次使用过程中遇到了一个bug和一个功能上的升级建议(可作参考)。

功能上升级:
1、在添加域名的时候,最好可以给域名增加一个备用的字段添加保存,目的好备注该域名是什么。
2、针对于第一条建议的基础上,可以进一步升级,对于检测域名的SSL证书日期,可以设置成自动检测或者手动检测(手动检测,就是可以自己手填也行)。
3、关于邮件发送通知上,建议可以设置全部通知的基础上再增加可以单独发送只是即将过期或者已过期的域名SSL证书到期通知。

遇到的功能bug:
1、主设置过期通知是3天。我在添加域名的时候,发现该域名的SSL证书已经到期了,但是检测出来的域名SSL证书是没有过期的(它的时间还剩312天),所以这里的不对的,它应该是个bug,希望进一步改进。

【需求】子域名自动拉取

当添加一个域名的时候,可以设置一个开关,是否自动拉取子域名及证书信息。

域名可以通过 crt.sh 获取

示例
https://crt.sh/?q=abc.com

后期,只要添加一个主域名,自动把已经有子域名的ssl证书获取到,然后删除就行了,省的一个一个加

按照 “方式3”安装,dev和prod都装了,页面打开报错

执行步骤

git clone https://github.com/mouday/domain-admin.git

pip install -r requirements/production.txt # 文档那里写错了,有两个文件

# 安装完成后
make pro

# 打开 http://127.0.0.1:8000/

页面报错内容:

{
    "code": -1,
    "data": null,
    "msg": "[Errno 2] No such file or directory: '/Users/{本地路径}/github/domain-admin/domain_admin/public/index.html'"
}

关于监控

作者您好,关于您这个项目,我使用邮箱或者WEBHOOK的方式去进行告警通知,都没有生效,邮箱已经更换过端口了,还行不行喔,是什么原因呢
image
image

更新镜像后, 无法登陆

2023-04-16安装的v1.2.10版本;
今天尝试升级到v1.2.11 or v1.2.12.

升级后都无法登陆;
怀疑是升级镜像, 原来的数据读取有问题。

是微服务直接升级, 并无涉及持久化的变化。 回退后正常。

请确认下1.2.10以后, 是不是密码登陆策略变化了。 导致无法平滑升级

甚谢

[建议]可以加上服务器端口监控

这个界面简洁舒服,该有的功能都有了。希望大佬可以加上服务器端口监控,或者新开一个仓库?我看到证书监控已经可以检测端口,可能稍微改一下设置,端口不通就发通知,就是一个监控各种服务的功能了?也可以加上ping和IP检测。
11

另外域名后缀.ch检测不了,可能是whois限制。
2

ws后缀貌似还是有问题

刚试了一下,另外两个确实ok了。但是ws还有点问题,
你试试我的这个h4ck.ws域名。
多谢。

无法收到每日通知了

经过排查,通知邮件都发送到 [email protected] 了。

image

这个邮件地址在哪里配置呢?

并且,为什么每小时发送一次?
image

通知设置里面,我设置了邮件接收地址的。
image

监测日志里面,显示成功发送
image

[Bug] Edge浏览器兼容问题

感谢开发出这么好的工具,辛苦了。麻烦看下以下浏览器兼容问题。

Chrome 浏览器:正常显示
Snipaste_2023-09-27_00-00-40

Edge 浏览器:顶部导航栏,所有的子菜单都无法显示。最严重的是个人头像里的子菜单,导致无法看到修改密码的按钮。
Snipaste_2023-09-27_00-00-49

Chrome 浏览器:可以正常显示和输入
Snipaste_2023-09-27_00-01-10

Edge 浏览器:无法显示默认内容和输入
Snipaste_2023-09-27_00-01-22

这两个是比较严重的问题,影响正常使用。
另外还有很多显示错位、图标不显示等问题,但不影响使用。

Mac、Windows系统均有问题,Edge都是最新版。

希望开发者能够修改。

建议支持自定义端口和自生成的证书

对于某些特殊服务,尽管也使用https证书,但不是通过443端口。希望能支持自定义端口功能。
另外,由于未能自定义端口,所以我尚未测试是否支持自生成证书。如果不支持,希望提供支持。

同域名不同端口无法重复添加

在之前的版本里,同一个域名在不同端口里部署了不同的服务,可以重复添加至域名列表和证书列表中。但是在1.5.20最新版本中同一域名只能添加一次,请问这个策略可以修改吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.