初始化1

This commit is contained in:
zg
2026-07-16 13:03:11 +08:00
parent 0bdfcbc1c8
commit e6b0f287cc
100 changed files with 12184 additions and 0 deletions

37
sql/cert_migration.sql Normal file
View File

@@ -0,0 +1,37 @@
-- ============================================
-- 证书管理功能 - 数据库迁移脚本
-- 执行日期: 2026-06-11
-- ============================================
USE nginxserver;
-- 1. 给 certificates 表增加通知相关字段
ALTER TABLE certificates
ADD COLUMN IF NOT EXISTS cert_type VARCHAR(20) DEFAULT 'internal_ca' COMMENT '证书类型: internal_ca / letsencrypt',
ADD COLUMN IF NOT EXISTS notify_email VARCHAR(500) DEFAULT NULL COMMENT '通知收件人邮箱,多个用逗号分隔',
ADD COLUMN IF NOT EXISTS notify_enabled TINYINT DEFAULT 1 COMMENT '是否启用到期通知: 0-禁用, 1-启用',
ADD COLUMN IF NOT EXISTS notify_days_before INT DEFAULT 15 COMMENT '提前多少天开始通知',
ADD COLUMN IF NOT EXISTS last_renew_time DATETIME DEFAULT NULL COMMENT '上次续期时间',
ADD COLUMN IF NOT EXISTS renew_log TEXT DEFAULT NULL COMMENT '续期/签发日志(JSON)';
-- 2. 创建证书通知发送日志表
CREATE TABLE IF NOT EXISTS cert_notify_log (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
cert_id BIGINT NOT NULL COMMENT '关联 certificates.id',
domain VARCHAR(255) NOT NULL COMMENT '域名',
days_left INT NOT NULL COMMENT '到期剩余天数',
email_to VARCHAR(500) NOT NULL COMMENT '收件人邮箱',
success TINYINT DEFAULT 1 COMMENT '是否发送成功: 0-失败, 1-成功',
response_msg VARCHAR(1000) DEFAULT NULL COMMENT '网关API返回信息',
sent_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
INDEX idx_cert_id (cert_id),
INDEX idx_domain (domain),
INDEX idx_sent_at (sent_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='证书到期通知发送日志';
-- 3. 插入 zgitm.com 系统证书记录Let's Encrypt 类型)
INSERT IGNORE INTO certificates (domain, cert_type, notify_email, notify_enabled, notify_days_before, status)
VALUES ('zgitm.com', 'letsencrypt', 'admin@mokee.com', 1, 15, 'active');
INSERT IGNORE INTO certificates (domain, cert_type, notify_email, notify_enabled, notify_days_before, status)
VALUES ('www.zgitm.com', 'letsencrypt', 'admin@mokee.com', 1, 15, 'active');