配置
StackRivet 从环境变量读取配置(带合理的本地默认值),因此同一个产物在每个环境都能跑。密钥留在环境里,绝不提交进代码仓库。
下面是最常设置的几组变量。本地常用模式:
set -a && source .env && set +a # 一次性加载下面所有变量| 变量 | 用途 | 示例 |
|---|---|---|
STACKRIVET_DB_VENDOR | 方言 | mysql(默认)/ postgresql |
SPRING_DATASOURCE_URL | 通用部署的完整 JDBC URL | jdbc:mysql://db:3306/stackrivet?... |
SPRING_DATASOURCE_USERNAME / SPRING_DATASOURCE_PASSWORD | 数据库用户 / 密码 | (仅环境) |
STACKRIVET_DB_HOST / _PORT / _NAME / _USER / _PASSWORD | 内置 dev、dev-postgres 和 aliyun profile 使用 | localhost |
STACKRIVET_DB_VENDOR 会选择 Flyway 的数据库方言目录。即使你提供完整 SPRING_DATASOURCE_URL,也应设置它。
缓存(必需)
Section titled “缓存(必需)”Redis 支撑 JWT 吊销和健康检查,因此必须配置:
| 变量 | 用途 |
|---|---|
STACKRIVET_REDIS_HOST / STACKRIVET_REDIS_PORT | Redis 连接 |
STACKRIVET_REDIS_USERNAME / STACKRIVET_REDIS_PASSWORD | Redis 认证(若设置) |
STACKRIVET_REDIS_DATABASE / STACKRIVET_REDIS_SSL | DB 索引 / TLS 开关 |
| 变量 | 用途 |
|---|---|
STACKRIVET_SECURITY_JWT_SECRET | Token 签名密钥——每个非本地环境都设强值 |
STACKRIVET_SECURITY_JWT_ACCESS_TOKEN_TTL / _REFRESH_TOKEN_TTL | 可选 token TTL 覆盖 |
生产级 profile(prod、production、staging、aliyun)会拒绝开发默认 secret 和种子 admin 密码。
HTTP 端口
Section titled “HTTP 端口”| 变量 | 用途 | 默认 |
|---|---|---|
STACKRIVET_PORT | 应用 API 端口 | 8080 |
STACKRIVET_MANAGEMENT_PORT | Actuator 管理端口 | 9090 |
STACKRIVET_MANAGEMENT_ADDRESS | 管理端口绑定地址 | 127.0.0.1 |
存储(Asset Service)
Section titled “存储(Asset Service)”| 变量 | 用途 |
|---|---|
STACKRIVET_STORAGE_TYPE | local(默认)/ s3 / aliyun_oss |
STACKRIVET_S3_ENDPOINT / _REGION / _ACCESS_KEY / _SECRET_KEY | S3 兼容(MinIO、AWS S3) |
STACKRIVET_ALIYUN_OSS_ENDPOINT / _ACCESS_KEY / _SECRET_KEY | 阿里云 OSS |
它们注入 stackrivet.asset.* 块(storage-type、max-file-size、allowed-extensions、signed-url-ttl)。完整映射和 region 匹配注意事项见配置对象存储。
| 键 | 用途 |
|---|---|
stackrivet.scheduler.snailjob.enabled | 默认 false;设 true 激活可选的 SnailJob 适配器(Pro / Enterprise)。见任务。 |
Profile
Section titled “Profile”| 变量 | 用途 |
|---|---|
STACKRIVET_PROFILE | Spring profile,如 dev 或 dev,otel(启用 OpenTelemetry profile) |
面向具体部署环境时,请把密钥保留在运行环境中,并在自己的运维手册中记录该环境选择的配置值。