application.yml 中的所有配置值都可以通过环境变量覆盖。以下是部署时最重要的变量。
application.yml
JWT_SECRET
micronaut.security.token.jwt.signatures.secret.default.secret
JWT_REFRESH_SECRET
micronaut.security.token.jwt.generator.refresh-token.secret
DB_URL
datasources.default.url
jdbc:h2:./data/matrix;DB_CLOSE_DELAY=-1
DB_USERNAME
datasources.default.username
sa
DB_PASSWORD
datasources.default.password
matrix.homeserver.base-url
http://localhost:8899
matrix.identity.mode
disabled
environment: - JWT_SECRET=${JWT_SECRET:-devSecretKey123456789012345678901234567890123456789012345678901234567890} - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET:-devRefreshKey123456789012345678901234567890123456789012345678901234567890} - DB_URL=${DB_URL:-jdbc:h2:./data/matrix;DB_CLOSE_DELAY=-1} - DB_USERNAME=${DB_USERNAME:-sa} - DB_PASSWORD=${DB_PASSWORD:-}
[Service] Environment=JWT_SECRET=your-production-secret Environment=JWT_REFRESH_SECRET=your-production-refresh-secret Environment=DB_URL=jdbc:h2:/var/lib/firmiana/data/matrix;DB_CLOSE_DELAY=-1 Environment=DB_USERNAME=sa Environment=DB_PASSWORD=your-db-password ExecStart=/usr/bin/java -cp "target/classes:$(cat target/cp.txt)" com.firmiana.matrix.Application
export JWT_SECRET="your-secret-key" export JWT_REFRESH_SECRET="your-refresh-secret" export DB_URL="jdbc:h2:./data/matrix;DB_CLOSE_DELAY=-1" mvn exec:java
环境变量覆盖 application.yml 中的值。YAML 中的 ${VAR:default} 语法提供回退默认值:
${VAR:default}
secret: ${JWT_SECRET:myDefaultDevValue}
如果设置了 JWT_SECRET,则使用它。否则使用 myDefaultDevValue。
myDefaultDevValue