refactor: 整理项目根目录结构

整理内容:
- 删除 60+ 临时测试输出文件 (*.txt)
- 移动二进制文件到 bin/ 目录
- 移动 Shell 脚本到 scripts/ 目录
  - scripts/dev/: check_gitea.sh, check_sub2api.sh, run_tests.sh
  - scripts/deploy/: deploy_*.sh, simple_deploy.sh
  - scripts/ops/: fix_nginx.sh, fix_ssl.sh, install_docker.sh
  - scripts/test/: test_*.sh, test_*.bat
- 移动批处理文件到 scripts/
- 移动 Python 脚本到 tools/
- 清理临时日志文件

保留根目录必要文件:
- go.mod, go.sum, go.work
- Makefile, docker-compose.yml
- .env.example, .gitignore
- README.md, AGENTS.md, DEPLOY_GUIDE.md

验证: go build ./... && go test ./... 通过
This commit is contained in:
2026-04-07 18:10:36 +08:00
parent 5dbb530b76
commit 5b6bd93179
152 changed files with 8775 additions and 4084 deletions

99
.env.example Normal file
View File

@@ -0,0 +1,99 @@
# =============================================================================
# UMS 环境变量配置模板
# 复制本文件为 .env不要提交 .env 到 git填入真实值后启动服务
# =============================================================================
# -------------------------------------
# 数据库
# -------------------------------------
# 数据库文件路径SQLite留空则默认 ./data/user_management.db
DATABASE_PATH=./data/user_management.db
# -------------------------------------
# JWT 密钥(生产环境必须替换为随机强密钥)
# 生成命令openssl rand -hex 32
# -------------------------------------
JWT_SECRET=<your-jwt-secret-here>
JWT_REFRESH_SECRET=<your-refresh-secret-here>
# -------------------------------------
# 默认管理员账号(首次启动 bootstrap 使用)
# -------------------------------------
DEFAULT_ADMIN_EMAIL=admin@example.com
DEFAULT_ADMIN_PASSWORD=<strong-password-here>
# -------------------------------------
# 邮件服务SMTP
# -------------------------------------
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=noreply@example.com
SMTP_PASSWORD=<smtp-password-here>
SMTP_FROM=noreply@example.com
# -------------------------------------
# 短信服务(可选,留空则禁用短信功能)
# -------------------------------------
SMS_PROVIDER=tencent # tencent | aliyun
SMS_SECRET_ID=<secret-id>
SMS_SECRET_KEY=<secret-key>
SMS_APP_ID=<sms-app-id>
SMS_SIGN_NAME=<sms-sign-name>
SMS_TEMPLATE_CODE=<template-code>
# -------------------------------------
# Alertmanager 告警通道CRIT-04 / WARN-03
# 配置飞书机器人 Webhook 地址
# 获取方式:飞书群 → 群设置 → 机器人 → 添加机器人 → 自定义机器人 → 复制 Webhook 地址
# -------------------------------------
# CriticalP0告警 Webhook建议单独频道24x7 On-Call 值守)
FEISHU_WEBHOOK_URL_CRITICAL=https://open.feishu.cn/open-apis/bot/v2/hook/<your-token-critical>
# WarningP1告警 Webhook
FEISHU_WEBHOOK_URL_WARNING=https://open.feishu.cn/open-apis/bot/v2/hook/<your-token-warning>
# InfoP2告警 Webhook可与 Warning 共用同一频道)
FEISHU_WEBHOOK_URL_INFO=https://open.feishu.cn/open-apis/bot/v2/hook/<your-token-info>
# 飞书机器人签名密钥(如果开启了签名校验,填入 Secret否则留空
FEISHU_WEBHOOK_SECRET=
# Alertmanager 邮件配置(兜底通道)
ALERTMANAGER_FROM=alerts@example.com
ALERTMANAGER_DEFAULT_TO=ops-team@example.com
ALERTMANAGER_CRITICAL_TO=oncall@example.com
ALERTMANAGER_SMARTHOST=smtp.example.com:587
ALERTMANAGER_AUTH_USERNAME=alerts@example.com
ALERTMANAGER_AUTH_PASSWORD=<smtp-password-here>
# -------------------------------------
# Prometheus 抓取配置(如果使用 Prometheus 监控)
# /metrics 端点仅允许内网访问WARN-01 修复)
# Prometheus 服务器必须部署在同一内网
# -------------------------------------
# PROMETHEUS_SCRAPE_INTERVAL=15s (在 prometheus.yml 中配置)
# -------------------------------------
# 服务器配置
# -------------------------------------
SERVER_PORT=8080
SERVER_HOST=0.0.0.0
GIN_MODE=release # debug | release | test
# -------------------------------------
# 安全配置
# -------------------------------------
# CORS 允许的来源(生产环境填实际域名)
CORS_ALLOWED_ORIGINS=https://yourdomain.com
# =============================================================================
# 飞书 Webhook 配置步骤:
# 1. 进入飞书群 → 右上角 "…" → 群机器人 → 添加机器人
# 2. 选择 "自定义机器人" → 填写机器人名称(如 "UMS告警-Critical"
# 3. 选择是否开启 "加签" 安全设置推荐开启Secret 填入 FEISHU_WEBHOOK_SECRET
# 4. 复制 Webhook 地址填入对应环境变量
# 5. 建议创建 3 个机器人分别对应 Critical / Warning / Info 三个频道
# 6. 渲染 alertmanager.yml 模板:
# envsubst < deployment/alertmanager/alertmanager.yml > /etc/alertmanager/alertmanager.yml
# =============================================================================