环境变量配置文档
概述
君鸿卡管系统使用嵌入式配置机制,默认配置编译在二进制文件中,通过环境变量进行覆盖。
环境变量前缀: JUNHONG_
格式规则: 配置路径中的 . 替换为 _,全部大写
必填配置
以下配置没有合理的默认值,必须通过环境变量设置:
数据库配置
| 环境变量 |
说明 |
示例 |
JUNHONG_DATABASE_HOST |
数据库主机地址 |
localhost |
JUNHONG_DATABASE_PORT |
数据库端口 |
5432 |
JUNHONG_DATABASE_USER |
数据库用户名 |
postgres |
JUNHONG_DATABASE_PASSWORD |
数据库密码 |
your_password |
JUNHONG_DATABASE_DBNAME |
数据库名称 |
junhong_cmp |
Redis 配置
| 环境变量 |
说明 |
示例 |
JUNHONG_REDIS_ADDRESS |
Redis 主机地址 |
localhost |
JWT 配置
| 环境变量 |
说明 |
示例 |
JUNHONG_JWT_SECRET_KEY |
JWT 签名密钥(生产环境必须修改) |
your-secret-key |
可选配置
以下配置有合理的默认值,可按需覆盖:
服务器配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_SERVER_ADDRESS |
:3000 |
服务监听地址 |
JUNHONG_SERVER_READ_TIMEOUT |
30s |
读取超时时间 |
JUNHONG_SERVER_WRITE_TIMEOUT |
30s |
写入超时时间 |
JUNHONG_SERVER_SHUTDOWN_TIMEOUT |
30s |
优雅关闭超时 |
JUNHONG_SERVER_PREFORK |
false |
是否启用预分叉模式 |
数据库连接池
| 环境变量 |
默认值 |
说明 |
JUNHONG_DATABASE_SSLMODE |
disable |
SSL 模式 |
JUNHONG_DATABASE_MAX_OPEN_CONNS |
25 |
最大打开连接数 |
JUNHONG_DATABASE_MAX_IDLE_CONNS |
10 |
最大空闲连接数 |
JUNHONG_DATABASE_CONN_MAX_LIFETIME |
1h |
连接最大生命周期 |
Redis 配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_REDIS_PORT |
6379 |
Redis 端口 |
JUNHONG_REDIS_PASSWORD |
"" |
Redis 密码 |
JUNHONG_REDIS_DB |
0 |
Redis 数据库编号 |
JUNHONG_REDIS_POOL_SIZE |
100 |
连接池大小 |
JUNHONG_REDIS_MIN_IDLE_CONNS |
10 |
最小空闲连接数 |
JUNHONG_REDIS_DIAL_TIMEOUT |
5s |
连接超时 |
JUNHONG_REDIS_READ_TIMEOUT |
3s |
读取超时 |
JUNHONG_REDIS_WRITE_TIMEOUT |
3s |
写入超时 |
日志配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_LOGGING_LEVEL |
info |
日志级别 (debug/info/warn/error) |
JUNHONG_LOGGING_DEVELOPMENT |
false |
开发模式(启用彩色输出) |
JUNHONG_LOGGING_APP_LOG_FILENAME |
logs/app.log |
应用日志文件路径 |
JUNHONG_LOGGING_APP_LOG_MAX_SIZE |
100 |
日志文件最大大小 (MB) |
JUNHONG_LOGGING_APP_LOG_MAX_BACKUPS |
7 |
最大备份文件数 |
JUNHONG_LOGGING_APP_LOG_MAX_AGE |
30 |
日志保留天数 |
JUNHONG_LOGGING_APP_LOG_COMPRESS |
true |
是否压缩旧日志 |
JUNHONG_LOGGING_ACCESS_LOG_FILENAME |
logs/access.log |
访问日志文件路径 |
JWT 配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_JWT_TOKEN_DURATION |
24h |
Token 有效期 |
JUNHONG_JWT_ACCESS_TOKEN_TTL |
24h |
Access Token TTL |
JUNHONG_JWT_REFRESH_TOKEN_TTL |
168h |
Refresh Token TTL (7天) |
队列配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_QUEUE_CONCURRENCY |
10 |
并发 Worker 数量 |
JUNHONG_QUEUE_RETRY_MAX |
3 |
最大重试次数 |
JUNHONG_QUEUE_TIMEOUT |
30m |
任务超时时间 |
限流中间件
| 环境变量 |
默认值 |
说明 |
JUNHONG_MIDDLEWARE_ENABLE_RATE_LIMITER |
false |
启用限流 |
JUNHONG_MIDDLEWARE_RATE_LIMITER_MAX |
100 |
最大请求数 |
JUNHONG_MIDDLEWARE_RATE_LIMITER_EXPIRATION |
1m |
时间窗口 |
JUNHONG_MIDDLEWARE_RATE_LIMITER_STORAGE |
memory |
存储后端 (memory/redis) |
对象存储配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_STORAGE_PROVIDER |
"" |
存储提供商 (s3) |
JUNHONG_STORAGE_TEMP_DIR |
/tmp/junhong |
临时文件目录 |
JUNHONG_STORAGE_S3_ENDPOINT |
"" |
S3 端点 |
JUNHONG_STORAGE_S3_REGION |
"" |
S3 区域 |
JUNHONG_STORAGE_S3_BUCKET |
"" |
S3 存储桶 |
JUNHONG_STORAGE_S3_ACCESS_KEY_ID |
"" |
S3 访问密钥 ID |
JUNHONG_STORAGE_S3_SECRET_ACCESS_KEY |
"" |
S3 访问密钥 |
JUNHONG_STORAGE_S3_USE_SSL |
true |
是否使用 SSL |
JUNHONG_STORAGE_S3_PATH_STYLE |
true |
是否使用路径风格 |
JUNHONG_STORAGE_PRESIGN_UPLOAD_EXPIRES |
1h |
预签名上传 URL 有效期 |
JUNHONG_STORAGE_PRESIGN_DOWNLOAD_EXPIRES |
1h |
预签名下载 URL 有效期 |
短信配置
| 环境变量 |
默认值 |
说明 |
JUNHONG_SMS_GATEWAY_URL |
"" |
短信网关 URL |
JUNHONG_SMS_USERNAME |
"" |
短信账号 |
JUNHONG_SMS_PASSWORD |
"" |
短信密码 |
JUNHONG_SMS_SIGNATURE |
"" |
短信签名 |
JUNHONG_SMS_TIMEOUT |
10s |
请求超时 |
默认管理员
| 环境变量 |
默认值 |
说明 |
JUNHONG_DEFAULT_ADMIN_USERNAME |
admin |
默认管理员用户名 |
JUNHONG_DEFAULT_ADMIN_PASSWORD |
Admin@123456 |
默认管理员密码 |
JUNHONG_DEFAULT_ADMIN_PHONE |
13800000000 |
默认管理员手机号 |
Docker Compose 示例
本地开发
本地开发可以创建 .env 文件(不要提交到 Git):
然后使用 source .env 加载环境变量后运行: