diff --git a/README.md b/README.md index e7f80d4..32df5ac 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,12 @@ CREATE DATABASE websoft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ### 3. 配置文件 本项目的 `application-*.yml` 已使用环境变量占位符,避免将真实密码提交到 Git。 -开发环境可通过环境变量配置数据库/Redis连接(示例): +推荐使用 `.env` 管理本地开发环境变量: +- 复制模板:`cp .env.example .env` +- 在 `.env` 中填好值后,启动前加载(zsh/bash): + - `set -a; source .env; set +a` + +开发环境可通过环境变量配置数据库/Redis 连接(示例): ```bash 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' @@ -99,7 +104,7 @@ export SPRING_REDIS_PORT='6379' 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 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' @@ -124,40 +129,36 @@ mvn spring-boot:run ## ⚙️ 配置说明 ### 数据库配置 -在 `application-dev.yml` 中配置数据库连接: -```yaml -spring: - datasource: - url: jdbc:mysql://localhost:3306/websoft_db - username: root - password: your_password - driver-class-name: com.mysql.cj.jdbc.Driver -``` +`application-dev.yml` / `application-prod.yml` 里使用占位符读取以下环境变量: +- `SPRING_DATASOURCE_URL` +- `SPRING_DATASOURCE_USERNAME` +- `SPRING_DATASOURCE_PASSWORD` ### Redis配置 -```yaml -spring: - redis: - host: localhost - port: 6379 - password: your_redis_password - database: 0 -``` +环境变量: +- `SPRING_REDIS_HOST` +- `SPRING_REDIS_PORT` +- `SPRING_REDIS_PASSWORD` ### 阿里云OSS配置 -```yaml -config: - endpoint: https://oss-cn-shenzhen.aliyuncs.com - accessKeyId: your_access_key_id - accessKeySecret: your_access_key_secret - bucketName: your_bucket_name - bucketDomain: https://your-domain.com -``` +环境变量: +- `ALIYUN_OSS_ENDPOINT` +- `ALIYUN_OSS_ACCESS_KEY_ID` +- `ALIYUN_OSS_ACCESS_KEY_SECRET` +- `ALIYUN_OSS_BUCKET_NAME` +- `ALIYUN_OSS_BUCKET_DOMAIN` +- `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` 本地文件存储路径 - **邮件服务**:配置SMTP服务器用于发送邮件 +- **微信支付**:`WECHATPAY_API_V3_KEY` + +### 开源注意事项 +- 不要把数据库/Redis/MQTT/云服务密钥等写入 `application-*.yml` 或代码里;用环境变量或部署平台的 Secret 管理。 +- 如果历史上曾提交过真实密钥,需要在对应平台轮换/作废,并清理 Git 历史(否则旧提交仍可被检出)。 ## 🎯 核心功能 @@ -251,7 +252,7 @@ src/main/java/com/gxwebsoft/ ```bash # 1. 启动MySQL和Redis服务 # 2. 创建数据库并导入初始数据 -# 3. 修改配置文件 +# 3. 配置环境变量(推荐:cp .env.example .env,然后 set -a; source .env; set +a) # 4. 启动应用 mvn spring-boot:run ``` @@ -261,12 +262,29 @@ mvn spring-boot:run # 1. 打包应用 mvn clean package -Dmaven.test.skip=true -# 2. 运行jar包 -java -jar target/com-gxwebsoft-modules-1.5.0.jar --spring.profiles.active=prod +# 2. 配置生产环境变量(示例) +export SPRING_PROFILES_ACTIVE=prod +export SPRING_DATASOURCE_URL='jdbc:mysql://:3306/?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai' +export SPRING_DATASOURCE_USERNAME='' +export SPRING_DATASOURCE_PASSWORD='' +export SPRING_REDIS_HOST='' +export SPRING_REDIS_PORT='6379' +export SPRING_REDIS_PASSWORD='' -# 3. 使用Docker部署(可选) +# 3. 运行jar包 +java -jar target/com-gxwebsoft-modules-1.5.0.jar + +# 4. 使用Docker部署(可选) 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://:3306/?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai' \ + -e SPRING_DATASOURCE_USERNAME='' \ + -e SPRING_DATASOURCE_PASSWORD='' \ + -e SPRING_REDIS_HOST='' \ + -e SPRING_REDIS_PORT='6379' \ + -e SPRING_REDIS_PASSWORD='' \ + websoft-api ``` ## 🤝 贡献指南