feat: 添加环境变量管理工具和部署配置改版
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m33s

主要改动:
- 新增交互式环境配置脚本 (scripts/setup-env.sh)
- 新增本地启动快捷脚本 (scripts/run-local.sh)
- 新增环境变量模板文件 (.env.example)
- 部署模式改版:使用嵌入式配置 + 环境变量覆盖
- 添加对象存储功能支持
- 改进 IoT 卡片导入任务
- 优化 OpenAPI 文档生成
- 删除旧的配置文件,改用嵌入式默认配置
This commit is contained in:
2026-01-26 10:28:29 +08:00
parent 194078674a
commit 45aa7deb87
94 changed files with 6532 additions and 1967 deletions

View File

@@ -140,17 +140,16 @@ if err := initDefaultAdmin(deps, services); err != nil {
### 自定义配置
`configs/config.yaml` 中添加
通过环境变量自定义
```yaml
default_admin:
username: "自定义用户名"
password: "自定义密码"
phone: "自定义手机号"
```bash
export JUNHONG_DEFAULT_ADMIN_USERNAME="自定义用户名"
export JUNHONG_DEFAULT_ADMIN_PASSWORD="自定义密码"
export JUNHONG_DEFAULT_ADMIN_PHONE="自定义手机号"
```
**注意**
- 配置项为可选,不参与 `Validate()` 验证
- 配置项为可选,不参与 `ValidateRequired()` 验证
- 任何字段留空则使用代码默认值
- 密码必须足够复杂(建议包含大小写字母、数字、特殊字符)
@@ -192,12 +191,11 @@ go run cmd/api/main.go
### 场景3使用自定义配置
**配置文件** (`configs/config.yaml`)
```yaml
default_admin:
username: "myadmin"
password: "MySecurePass@2024"
phone: "13900000000"
**设置环境变量**
```bash
export JUNHONG_DEFAULT_ADMIN_USERNAME="myadmin"
export JUNHONG_DEFAULT_ADMIN_PASSWORD="MySecurePass@2024"
export JUNHONG_DEFAULT_ADMIN_PHONE="13900000000"
```
**启动服务**
@@ -230,11 +228,11 @@ go run cmd/api/main.go
- ✅ 包含时间戳、用户名、手机号
- ⚠️ 日志中不会记录明文密码
### 4. 配置文件安全
### 4. 配置安全
- ⚠️ `config.yaml` 中的密码是明文存储
- ⚠️ 确保配置文件访问权限受限(不要提交到公开仓库
- ⚠️ 生产环境建议使用环境变量或密钥管理服务
- ✅ 配置通过环境变量设置,不存储在代码仓库中
- ⚠️ 确保环境变量安全(使用密钥管理服务或加密存储
- ⚠️ 生产环境务必修改默认密码
## 手动创建管理员(备用方案)
@@ -285,7 +283,8 @@ func main() {
- `pkg/constants/constants.go` - 默认值常量定义
- `pkg/config/config.go` - 配置结构定义
- `configs/config.yaml` - 配置示例
- `pkg/config/defaults/config.yaml` - 嵌入式默认配置
- `docs/environment-variables.md` - 环境变量配置文档
- `internal/service/account/service.go` - CreateSystemAccount 方法
- `internal/bootstrap/admin.go` - initDefaultAdmin 函数
- `internal/bootstrap/bootstrap.go` - Bootstrap 主流程