• 简体中文
  • 环境变量

    application.yml 中的所有配置值都可以通过环境变量覆盖。以下是部署时最重要的变量。

    核心

    变量配置路径默认值说明
    JWT_SECRETmicronaut.security.token.jwt.signatures.secret.default.secret(开发默认值)JWT 签名密钥
    JWT_REFRESH_SECRETmicronaut.security.token.jwt.generator.refresh-token.secret(开发默认值)刷新令牌密钥

    数据库

    变量配置路径默认值说明
    DB_URLdatasources.default.urljdbc:h2:./data/matrix;DB_CLOSE_DELAY=-1JDBC 连接 URL
    DB_USERNAMEdatasources.default.usernamesa数据库用户名
    DB_PASSWORDdatasources.default.password(空)数据库密码

    Matrix 服务器

    变量配置路径默认值说明
    matrix.homeserver.base-urlhttp://localhost:8899公开服务器 URL
    matrix.identity.modedisabled身份服务模式

    示例:Docker Compose

    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:-}

    示例:Systemd 服务

    [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

    示例:Shell

    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} 语法提供回退默认值:

    secret: ${JWT_SECRET:myDefaultDevValue}

    如果设置了 JWT_SECRET,则使用它。否则使用 myDefaultDevValue