domain-admin配置文件详解:自定义系统行为的所有选项

domain-admin配置文件详解:自定义系统行为的所有选项

【免费下载链接】domain-admin 域名SSL证书监测平台、SSL证书申请自动续签。Domain and SSL Cert monitor System. 【免费下载链接】domain-admin 项目地址: https://gitcode.com/GitHub_Trending/doma/domain-admin

domain-admin作为一款功能强大的域名SSL证书监测与自动续签平台,其灵活性很大程度上体现在配置系统中。通过修改配置文件,用户可以根据实际需求调整系统行为、适配不同环境。本文将详细解析domain-admin的核心配置文件及其所有可自定义选项,帮助用户充分掌握系统定制能力。

配置文件体系概述

domain-admin采用多层次的配置体系,确保系统在不同环境下的灵活部署与运行。核心配置文件位于domain_admin/config/目录下,主要包含三个关键文件:

这种分层设计允许用户通过环境变量覆盖默认设置,同时支持运行时动态配置,满足从开发、测试到生产环境的不同需求。

默认配置详解

default_config.py是系统最基础的配置文件,定义了domain-admin的核心行为参数。以下是关键配置项的详细说明:

管理员账户设置

# 管理员默认的账号,用户名
DEFAULT_ADMIN_USERNAME = 'admin'
DEFAULT_ADMIN_PASSWORD = '123456'

系统初始化时会创建默认管理员账户,建议首次登录后立即修改密码。相关的密码修改功能实现可参考domain_admin/service/auth_service.py

安全配置

# header请求头中携带 token 参数名称
TOKEN_KEY = 'X-Token'

# 默认的token有效时长 单位:天
DEFAULT_TOKEN_EXPIRE_DAYS = 7

# secret_key
DEFAULT_SECRET_KEY = secret_util.get_random_secret()

# prometheus_key
DEFAULT_PROMETHEUS_KEY = md5_util.md5(DEFAULT_SECRET_KEY)

这些配置控制着系统的认证机制和数据安全。其中DEFAULT_SECRET_KEY会在系统首次启动时自动生成随机值,确保每个部署实例的安全性。

数据库配置

# 默认数据库链接
DEFAULT_DB_CONNECT_URL = "sqlite:///database/database.db"

domain-admin默认使用SQLite数据库,文件存储路径为database/database.db。如需使用其他数据库(如MySQL、PostgreSQL),可修改此配置项为相应的数据库连接字符串。数据库模型定义在domain_admin/model/目录下。

SSL证书监控配置

# 默认的过期提醒时间 单位:天
DEFAULT_BEFORE_EXPIRE_DAYS = 3

# 默认续期时间 单位:天
DEFAULT_RENEW_DAYS = 30

这两个参数控制SSL证书的监控行为。系统会在证书过期前DEFAULT_BEFORE_EXPIRE_DAYS天开始发送提醒通知,并在到期前DEFAULT_RENEW_DAYS天尝试自动续签。通知功能的实现可参考domain_admin/service/notify_service.py

网络配置

# 默认的ssh连接端口
DEFAULT_SSH_PORT = 22

# user agent
USER_AGENT = "Mozilla/5.0 (compatible; DomainAdmin/{version}; +{url})".format(
    version=VERSION,
    url=PROJECT_HOME_URL,
)

DEFAULT_SSH_PORT指定了用于证书部署的SSH默认端口,而USER_AGENT则是系统对外发起HTTP请求时使用的用户代理标识。

环境变量配置

env_config.py允许通过环境变量覆盖默认配置,特别适合容器化部署场景。例如,在Docker环境中,可以通过设置环境变量来自定义配置:

# 设置管理员用户名
export ADMIN_USERNAME=myadmin

# 设置数据库连接
export DB_CONNECT_URL=mysql://user:pass@localhost:3306/domain_admin

这种方式使得配置与代码分离,提高了部署的灵活性和安全性。所有支持的环境变量及其对应关系可在env_config.py中查看。

运行时配置

runtime_config.py提供了动态调整系统行为的能力,部分配置可以通过Web界面修改并即时生效。系统配置管理界面的实现代码位于domain_admin/api/system_api.py

系统配置界面

通过运行时配置,用户可以调整诸如监控频率、通知方式、日志级别等系统参数,而无需重启服务。

配置加载流程

domain-admin的配置加载遵循以下优先级顺序(从高到低):

  1. 运行时动态配置(存储在数据库中)
  2. 环境变量配置(env_config.py
  3. 默认配置(default_config.py

系统启动时,配置加载流程的实现代码可参考domain_admin/main.py中的初始化部分。了解这一流程有助于理解配置参数的最终生效机制。

实际应用场景示例

生产环境配置示例

以下是一个典型的生产环境配置方案,通过环境变量设置:

# 基础配置
export ADMIN_USERNAME=admin@example.com
export ADMIN_PASSWORD=SecurePassword123!
export SECRET_KEY=$(python -c "import secrets; print(secrets.token_urlsafe(32))")

# 数据库配置
export DB_CONNECT_URL=postgresql://user:password@db-host:5432/domain_admin

# 日志配置
export LOG_LEVEL=INFO
export LOG_FILE=/var/log/domain-admin/app.log

# 服务器配置
export PORT=8080
export HOST=0.0.0.0

Docker部署配置

使用Docker部署时,可通过docker-compose.yml文件设置环境变量:

version: '3'
services:
  domain-admin:
    image: domain-admin:latest
    environment:
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=your-secure-password
      - DB_CONNECT_URL=mysql://user:pass@mysql:3306/domain_admin
      - TZ=Asia/Shanghai
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/database

相关的Docker部署配置可参考项目根目录下的Dockerfile

常见问题与解决方案

配置修改后不生效

如果修改配置后系统没有按预期行为运行,可按以下步骤排查:

  1. 确认配置文件的路径是否正确
  2. 检查配置参数的格式是否符合要求
  3. 对于环境变量配置,确保变量名称与env_config.py中定义的一致
  4. 某些配置可能需要重启服务才能生效

忘记管理员密码

如果忘记管理员密码,可通过修改数据库直接重置,或者使用项目提供的密码重置脚本。相关操作可参考官方文档中的doc/source/manual/question.md(常见问题)部分。

总结与最佳实践

domain-admin的配置系统设计兼顾了易用性和灵活性,通过合理配置可以满足不同场景的需求。以下是一些配置最佳实践:

  1. 生产环境安全:始终修改默认管理员密码,并使用环境变量设置敏感信息
  2. 数据备份:对于SQLite配置,定期备份database/database.db文件
  3. 版本控制:不要将修改后的配置文件提交到版本控制系统,使用环境变量或外部配置文件
  4. 监控告警:配置适当的SSL证书过期提醒时间,确保及时续签

通过深入理解和合理配置这些参数,您可以充分发挥domain-admin的强大功能,构建稳定可靠的域名和SSL证书管理系统。更多高级配置选项和使用技巧,请参考完整的官方文档doc/source/index.rst

【免费下载链接】domain-admin 域名SSL证书监测平台、SSL证书申请自动续签。Domain and SSL Cert monitor System. 【免费下载链接】domain-admin 项目地址: https://gitcode.com/GitHub_Trending/doma/domain-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值