chore(config): 将配置文件中的敏感信息替换为环境变量占位符
- 将 application.yml 中的邮件密码、token密钥、阿里云OSS等敏感配置替换为环境变量 - 将 application-dev.yml 中的数据库连接、Redis、MQTT等配置替换为环境变量占位符 - 将 application-prod.yml 中的数据库连接、Redis、MQTT、阿里云等配置替换为环境变量 - 为代码生成器添加环境变量支持和 .env 文件加载功能 - 更新 .gitignore 文件以忽略 .env 相关配置文件 - 修改 README.md 文档说明环境变量配置方式 - 修复联系邮箱地址错误
This commit is contained in:
84
README.md
84
README.md
@@ -89,7 +89,12 @@ CREATE DATABASE websoft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|||||||
### 3. 配置文件
|
### 3. 配置文件
|
||||||
本项目的 `application-*.yml` 已使用环境变量占位符,避免将真实密码提交到 Git。
|
本项目的 `application-*.yml` 已使用环境变量占位符,避免将真实密码提交到 Git。
|
||||||
|
|
||||||
开发环境可通过环境变量配置数据库/Redis连接(示例):
|
推荐使用 `.env` 管理本地开发环境变量:
|
||||||
|
- 复制模板:`cp .env.example .env`
|
||||||
|
- 在 `.env` 中填好值后,启动前加载(zsh/bash):
|
||||||
|
- `set -a; source .env; set +a`
|
||||||
|
|
||||||
|
开发环境可通过环境变量配置数据库/Redis 连接(示例):
|
||||||
```bash
|
```bash
|
||||||
export SPRING_DATASOURCE_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
|
export SPRING_DATASOURCE_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
|
||||||
export SPRING_DATASOURCE_USERNAME='your_username'
|
export SPRING_DATASOURCE_USERNAME='your_username'
|
||||||
@@ -99,7 +104,7 @@ export SPRING_REDIS_PORT='6379'
|
|||||||
export SPRING_REDIS_PASSWORD='your_redis_password'
|
export SPRING_REDIS_PASSWORD='your_redis_password'
|
||||||
```
|
```
|
||||||
|
|
||||||
代码生成器(`src/test/java/com/gxwebsoft/generator/*Generator.java`)使用:
|
代码生成器(`src/test/java/com/gxwebsoft/generator/*Generator.java`)使用(支持从项目根目录自动读取 `.env`;也可直接导出环境变量):
|
||||||
```bash
|
```bash
|
||||||
export CODEGEN_DB_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
|
export CODEGEN_DB_URL='jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8'
|
||||||
export CODEGEN_DB_USERNAME='your_username'
|
export CODEGEN_DB_USERNAME='your_username'
|
||||||
@@ -124,40 +129,36 @@ mvn spring-boot:run
|
|||||||
## ⚙️ 配置说明
|
## ⚙️ 配置说明
|
||||||
|
|
||||||
### 数据库配置
|
### 数据库配置
|
||||||
在 `application-dev.yml` 中配置数据库连接:
|
`application-dev.yml` / `application-prod.yml` 里使用占位符读取以下环境变量:
|
||||||
```yaml
|
- `SPRING_DATASOURCE_URL`
|
||||||
spring:
|
- `SPRING_DATASOURCE_USERNAME`
|
||||||
datasource:
|
- `SPRING_DATASOURCE_PASSWORD`
|
||||||
url: jdbc:mysql://localhost:3306/websoft_db
|
|
||||||
username: root
|
|
||||||
password: your_password
|
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
||||||
```
|
|
||||||
|
|
||||||
### Redis配置
|
### Redis配置
|
||||||
```yaml
|
环境变量:
|
||||||
spring:
|
- `SPRING_REDIS_HOST`
|
||||||
redis:
|
- `SPRING_REDIS_PORT`
|
||||||
host: localhost
|
- `SPRING_REDIS_PASSWORD`
|
||||||
port: 6379
|
|
||||||
password: your_redis_password
|
|
||||||
database: 0
|
|
||||||
```
|
|
||||||
|
|
||||||
### 阿里云OSS配置
|
### 阿里云OSS配置
|
||||||
```yaml
|
环境变量:
|
||||||
config:
|
- `ALIYUN_OSS_ENDPOINT`
|
||||||
endpoint: https://oss-cn-shenzhen.aliyuncs.com
|
- `ALIYUN_OSS_ACCESS_KEY_ID`
|
||||||
accessKeyId: your_access_key_id
|
- `ALIYUN_OSS_ACCESS_KEY_SECRET`
|
||||||
accessKeySecret: your_access_key_secret
|
- `ALIYUN_OSS_BUCKET_NAME`
|
||||||
bucketName: your_bucket_name
|
- `ALIYUN_OSS_BUCKET_DOMAIN`
|
||||||
bucketDomain: https://your-domain.com
|
- `ALIYUN_OSS_ALIYUN_DOMAIN`
|
||||||
```
|
|
||||||
|
|
||||||
### 其他配置
|
### 其他配置
|
||||||
- **JWT密钥**:`config.token-key` 用于JWT令牌加密
|
- **JWT密钥**:`JWT_SECRET`(`application-dev.yml`)
|
||||||
|
- **令牌加密Key**:`APP_TOKEN_KEY`(`application.yml` 的 `config.token-key`)
|
||||||
- **文件上传路径**:`config.upload-path` 本地文件存储路径
|
- **文件上传路径**:`config.upload-path` 本地文件存储路径
|
||||||
- **邮件服务**:配置SMTP服务器用于发送邮件
|
- **邮件服务**:配置SMTP服务器用于发送邮件
|
||||||
|
- **微信支付**:`WECHATPAY_API_V3_KEY`
|
||||||
|
|
||||||
|
### 开源注意事项
|
||||||
|
- 不要把数据库/Redis/MQTT/云服务密钥等写入 `application-*.yml` 或代码里;用环境变量或部署平台的 Secret 管理。
|
||||||
|
- 如果历史上曾提交过真实密钥,需要在对应平台轮换/作废,并清理 Git 历史(否则旧提交仍可被检出)。
|
||||||
|
|
||||||
## 🎯 核心功能
|
## 🎯 核心功能
|
||||||
|
|
||||||
@@ -251,7 +252,7 @@ src/main/java/com/gxwebsoft/
|
|||||||
```bash
|
```bash
|
||||||
# 1. 启动MySQL和Redis服务
|
# 1. 启动MySQL和Redis服务
|
||||||
# 2. 创建数据库并导入初始数据
|
# 2. 创建数据库并导入初始数据
|
||||||
# 3. 修改配置文件
|
# 3. 配置环境变量(推荐:cp .env.example .env,然后 set -a; source .env; set +a)
|
||||||
# 4. 启动应用
|
# 4. 启动应用
|
||||||
mvn spring-boot:run
|
mvn spring-boot:run
|
||||||
```
|
```
|
||||||
@@ -261,12 +262,29 @@ mvn spring-boot:run
|
|||||||
# 1. 打包应用
|
# 1. 打包应用
|
||||||
mvn clean package -Dmaven.test.skip=true
|
mvn clean package -Dmaven.test.skip=true
|
||||||
|
|
||||||
# 2. 运行jar包
|
# 2. 配置生产环境变量(示例)
|
||||||
java -jar target/com-gxwebsoft-modules-1.5.0.jar --spring.profiles.active=prod
|
export SPRING_PROFILES_ACTIVE=prod
|
||||||
|
export SPRING_DATASOURCE_URL='jdbc:mysql://<host>:3306/<db>?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai'
|
||||||
|
export SPRING_DATASOURCE_USERNAME='<user>'
|
||||||
|
export SPRING_DATASOURCE_PASSWORD='<password>'
|
||||||
|
export SPRING_REDIS_HOST='<host>'
|
||||||
|
export SPRING_REDIS_PORT='6379'
|
||||||
|
export SPRING_REDIS_PASSWORD='<password>'
|
||||||
|
|
||||||
# 3. 使用Docker部署(可选)
|
# 3. 运行jar包
|
||||||
|
java -jar target/com-gxwebsoft-modules-1.5.0.jar
|
||||||
|
|
||||||
|
# 4. 使用Docker部署(可选)
|
||||||
docker build -t websoft-api .
|
docker build -t websoft-api .
|
||||||
docker run -d -p 9200:9200 websoft-api
|
docker run -d -p 9200:9200 \
|
||||||
|
-e SPRING_PROFILES_ACTIVE=prod \
|
||||||
|
-e SPRING_DATASOURCE_URL='jdbc:mysql://<host>:3306/<db>?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai' \
|
||||||
|
-e SPRING_DATASOURCE_USERNAME='<user>' \
|
||||||
|
-e SPRING_DATASOURCE_PASSWORD='<password>' \
|
||||||
|
-e SPRING_REDIS_HOST='<host>' \
|
||||||
|
-e SPRING_REDIS_PORT='6379' \
|
||||||
|
-e SPRING_REDIS_PASSWORD='<password>' \
|
||||||
|
websoft-api
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🤝 贡献指南
|
## 🤝 贡献指南
|
||||||
|
|||||||
Reference in New Issue
Block a user