feat: 添加环境变量管理工具和部署配置改版
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m33s
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:
@@ -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 主流程
|
||||
|
||||
Reference in New Issue
Block a user