• Stars
    star
    1,563
  • Rank 29,742 (Top 0.6 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 2 years ago
  • Updated 26 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

域名SSL证书监测平台、SSL证书申请自动续签。Domain and SSL Cert monitor System.

Domain Admin

PyPI - Python Version PyPI PyPI - Downloads Docker Image Version (latest semver) Docker Pulls Build Status PyPI - License

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

核心功能:到期自动邮件提醒

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

支持平台:macOS、Linux、Windows

项目截图

网页版:

预览地址:https://mouday.github.io/domain-admin-web/

账号密码随意,预览模式仅提供模拟数据,无法操作修改

安装

方式一:pip安装

运行环境:

  • Python 3.7.0
$ python3 --version
Python 3.7.0

# 创建名为 venv 的虚拟环境
$ python3 -m venv venv

# 激活虚拟环境
$ source venv/bin/activate

# 安装 domain-admin
$ pip install domain-admin

# 升级到最新版本,可选
$ pip3 install -U domain-admin -i https://pypi.org/simple

# 启动运行
$ gunicorn 'domain_admin.main:app'

访问地址:http://127.0.0.1:8000

默认的管理员账号:admin 密码:123456

强烈建议:登录系统后修改默认密码

方式二:docker启动

感谢@miss85246 提供Docker支持

$ docker run -p 8000:8000 mouday/domain-admin

# 后台运行
$ docker run -d -p 8000:8000 mouday/domain-admin

# 本地文件夹和容器文件夹映射
$ docker run \
-v $(pwd)/database:/app/database \
-v $(pwd)/logs:/app/logs \
-p 8000:8000 \
--name domain-admin \
mouday/domain-admin:latest

方式三:克隆源码运行

本方式仅适用于二次开发,推荐采用 pip安装 或者 docker启动 的方式体验

# 后端项目
git clone https://github.com/mouday/domain-admin.git

# 安装依赖
pip install -r requirements.txt

# 启动开发服务
make dev


# 前端项目
git clone https://github.com/mouday/domain-admin-web.git

# 启动开发服务
make dev

为了更多地人参与到项目中来,现已开放前端代码

前端项目地址:https://github.com/mouday/domain-admin-web

项目简介

功能:

  • 权限

    • 用户登录
    • 用户退出
    • 修改密码
  • 域名管理

    • 域名添加
    • 域名删除
    • 域名搜索
    • 域名批量导入
    • 导出功能
    • 域名证书信息
  • 用户管理

    • 添加用户
    • 删除用户
    • 禁用/启用用户
  • 证书监控

    • 定时监控
    • 到期邮件提醒
    • 微信提醒(待开发)
    • 手动/自动更新证书信息
    • 域名信息查询
  • 监控日志

  • 管理界面

    • api接口(用于二次开发)
    • web浏览器
    • 桌面
    • 移动端(app+小程序)

系统设置

如果需要对域名进行到期监控和邮件提醒,必须设置

1、设置系统发送邮件的账号密码

2、批量导入域名

导入文本示例: /docs/domain.txt

3、设置邮件通知

4、设置webhook通知

推送到微信的webhook第三方工具

二次开发

接口文档:https://mouday.github.io/domain-admin/

代码推送

# github
git push -u origin master

# gitee
git push -u gitee master

技术选型

前端选型(网页版)

  • Node.js
  • Vite.js
  • Vue3.js
  • Vue Router
  • Pinia
  • Element Plus
  • Tailwind CSS

前端选型(桌面版)

  • node.js v16.15.1
  • vue3.js
  • quasar + electron

后端选型

问题

1、暂不支持多进程方式启动

使用 master + 多worker 方式启动应用,会启动多个定时任务Scheduler,导致多次执行任务

如果小规模使用,启动一个进程即可

如果是需要支持并发访问,可自行改进应用

将定时器独立出来,单独一个进程控制,行成 scheduler + Flask(master + 多worker)

2、为什么外网访问不到?

# 启动运行
$ gunicorn 'domain_admin.main:app'

# 支持外网可访问,云服务器(阿里云或腾讯云)需要设置安全组 
# 默认内网访问 --bind 127.0.0.1:8000
$ gunicorn --bind '0.0.0.0:8000' domain_admin.main:app'

更多设置,可参考gunicorn

3、Windows平台启动报错,找不到模块 fcntl

gunicorn不支持Windows,可以使用waitress 替换,感谢@cbr252522489提供的解决方案

$ pip install waitress

$ waitress-serve --listen=127.0.0.1:8000 domain_admin.main:app

参考:https://stackoverflow.com/questions/45228395/error-no-module-named-fcntl

4、添加域名数据后系统异常

可按如下步骤删除异常数据

docker 启动方式

# 查看容器的运行信息
$ docker ps

# 进入容器
$ docker exec -it <容器id> /bin/sh

# 安装依赖
$ apk add sqlite

# 进入sqlite3
$ sqlite3

sqlite> .open /app/database/database.db

sqlite> .tables
log_scheduler  tb_group       tb_system      tb_version
tb_domain      tb_notify      tb_user

# 查看数据
sqlite> select * from tb_domain;

# 删除数据
sqlite> DELETE FROM tb_domain WHERE id = 1;

# 退出
sqlite> .quit

5、邮件发送失败

可尝试更换端口25或465

6、webhook模板

可以参考接口文档:更新用户通知配置

7、监控域名非443的端口

域名格式

域名:端口

eg:

www.baidu.com:8080

问题反馈交流

群号:731742868

邀请码:domain-admin

开发计划

  • 已完成 支持企业微信通知
  • 已完成 支持域名分组
  • 增加理员权限,权限分级:root 管理员 普通用户
  • 已完成 解决批量导入超时问题,支持1000条数据导入
  • 已完成 支持域名备注
  • 已完成 支持域名到期数据
  • 已完成 webhook支持变量
  • 已完成 异步操作的前端状态显示
  • 暗黑模式
  • 已完成 支持内网用户自己设置过期时间
  • 已完成 增加筛选功能: 筛选域名状态、证书状态、网站状态
  • 已完成 增加批量删除域名的功能

证书测试:https://badssl.com/

获取证书列表

JSON.stringify([...document.querySelectorAll('a')].map(a=>a.href))

批量域名列表 (746314个)

更新日志

CHANGELOG.md

More Repositories

1

spider-admin-pro

spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具,SpiderAdmin的升级版
Python
545
star
2

wallpaper-database

wallpaper database
Python
200
star
3

SpiderAdmin

SpiderAdmin 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
JavaScript
81
star
4

domain-admin-web

domain-admin-web
Vue
46
star
5

PageParser

网页解析器,用于网络爬虫解析页面, 不懂网页解析也能写爬虫
Python
41
star
6

chinesename

get a chinese name by random
Python
35
star
7

today-news

通过抓取微信文章和今日头条新闻,打造一个自己的今日头条
Python
32
star
8

stock-open-api

股票数据接口
Python
25
star
9

mo-quarter-picker

一个基于 Vue 和 ElementUI 的季节范围选择器
Vue
21
star
10

spider-admin-pro-web

Vue
21
star
11

coding-tree

程序员工作、学习笔记
20
star
12

echarts-map

echarts 用到的 map 地图文件
JavaScript
16
star
13

student-course-selection-system

SpringBoot+Vue 的学生选课管理系统源码
Vue
15
star
14

work-weixin-api

企业微信接口封装库
Python
9
star
15

MyBatis-demo

MyBatis-demo
Java
9
star
16

spring-boot-demo

Spring Boot Demo
JavaScript
7
star
17

TencentCaptcha

Tencent Captcha demo for Python Flask
HTML
7
star
18

FTPServer

一个支持多用户在线的FTP程序,实现上传下载等简单功能
Python
6
star
19

chrome-search-tool

a simple search tool for chrome extension
HTML
6
star
20

wallpaper

bing必应壁纸
Vue
6
star
21

more-editor

a rich-text editor demo
JavaScript
6
star
22

hao123

程序员网址导航
Vue
6
star
23

ChooseCourseSys

选课系统
Python
6
star
24

scrapy-util

scrapy_util
Python
5
star
25

browser_useragent

get a browser user_agent by random
Python
5
star
26

scrapyd-api

Python
5
star
27

vue-element-admin-demo

Vue
5
star
28

domain-admin-mini

mini h5 code for domain-admin
Vue
4
star
29

chinaarea

get a china area by province, city or county
Python
4
star
30

more-cdn

整合常用的js库,便于自建cdn
JavaScript
3
star
31

weixin-open-api

Python
3
star
32

vue-cdn-template

vue cdn template
JavaScript
3
star
33

Atm

ATM+购物车程序
Python
3
star
34

PyCase

a tool for camel case convert
Python
3
star
35

coder

parse browser header and cookie to json
Java
3
star
36

vue-excel

JavaScript
3
star
37

PyThink

simple CURD of mysql for python
Python
3
star
38

email_helper

email helper for simple send email and receive email of python
Python
3
star
39

StudentManagerSys

StudentManagerSystem
Python
3
star
40

china-calendar

china-calendar
Python
3
star
41

TodoList

使用Python后端实现的TotoList
Python
3
star
42

cron-admin

Cron Admin 基于Golang + React.js 的定时任务管理平台
Go
3
star
43

enterprise-website

enterprise-website企业官网布局实例
HTML
2
star
44

more-copy.js

copy template generate code file
JavaScript
2
star
45

vue-demo

JavaScript
2
star
46

miniprogram-validator

JavaScript
2
star
47

file-admin

file admin
Makefile
2
star
48

github-oauth-demo

Python
2
star
49

notifier

基于Golang的邮件通知服务
Go
2
star
50

ThinkPHP-Webpack-Template

ThinkPHP-Webpack-Template
PHP
2
star
51

session-request

Python
2
star
52

good-dev

一个基于webpack + react的chrome 插件
JavaScript
2
star
53

gt-project

get template project
Shell
2
star
54

LearningNote

LearningNote
JavaScript
2
star
55

mo-cache

a simple cache lib support memory、file、redis
Python
2
star
56

fastapi-demo

fastapi demo
CSS
2
star
57

MyQuery

一个MySQL快捷操作方式
Python
2
star
58

quick-env

运维脚本整合,快速部署运行环境
Shell
1
star
59

momo-util

js 常用工具方法整理
JavaScript
1
star
60

vue-condition-filter

vue-condition-filter
Vue
1
star
61

cator

a quick tool base dict for mysql and sqlite
Python
1
star
62

flask-controller

a extension for flask which can auto register route rule
Python
1
star
63

md5util

a python3 util for md5
Python
1
star
64

tools

a collections online tools
Vue
1
star
65

more-utils.js

a browser env util package
JavaScript
1
star
66

Django-website

Process management used Django
CSS
1
star
67

HttpServer

用于爬虫请求头测试的简单服务器,使用Python + Flask
Python
1
star
68

ElasticSearch-Head.crx

1
star
69

consolecolor

consolecolor for pycharm or liunx console
Python
1
star
70

todo-list

Todo List Demo
Java
1
star
71

PureMySQL

一个MySQL简单操作方式
Python
1
star
72

more-logger.js

more-logger
JavaScript
1
star
73

moon-cake

make a moon cake online
Vue
1
star
74

FreeIpProxy

通过抓取免费代理ip维护一个有效的proxy代理池
Python
1
star
75

jest-start

jest quick start template
JavaScript
1
star
76

weixin-app-demo

简单的微信小程序电影列表+详情,主要是实现功能,界面没有特别处理
JavaScript
1
star
77

webpack-simple-template

webpack simple template
JavaScript
1
star
78

spring-struts-mybatis-demo

ssm整合示例
Java
1
star
79

Clask

a http client based on requests just like Flask
Python
1
star
80

tampermonkey-script

tampermonkey-script
JavaScript
1
star
81

flask-template

flask template
Python
1
star
82

shell-runner

shell-runner
Go
1
star
83

Mo-Blog

a demo for SpringBoot + Vue + Flask
JavaScript
1
star
84

article-admin-web

article-admin-web
TypeScript
1
star
85

article-admin

article-admin
Go
1
star
86

front-end-demo

front-end-demo
HTML
1
star