4.4 环境变量参考

环境变量参考

配置键中的点会映射为下划线并转为大写,例如 database.dbname 对应 DATABASE_DBNAME。环境变量优先于 YAML。

有效运行时配置

YAML 键 环境变量 默认值 说明
app.app_name APP_APP_NAME dwz-server 应用名称
app.mode APP_MODE release 日志驱动模式;release 使用生产格式
http.addr HTTP_ADDR :8080 HTTP 监听地址
http.mode HTTP_MODE release HTTP 运行模式:debugreleasetest
http.load_static HTTP_LOAD_STATIC true 是否加载静态资源
http.static_mode HTTP_STATIC_MODE embed embeddisk
http.static_dir HTTP_STATIC_DIR admin 静态目录列表
http.templates_mode HTTP_TEMPLATES_MODE embed embeddisk
http.templates_dir HTTP_TEMPLATES_DIR templates 磁盘模板目录
database.driver DATABASE_DRIVER mysql mysqlpostgresqlsqlite
database.filepath DATABASE_FILEPATH ./config/sqlite.db SQLite 文件;SQLite 时会作为数据库 host 使用
database.host DATABASE_HOST localhost MySQL/PostgreSQL 主机
database.port DATABASE_PORT 3306 TCP 端口;PostgreSQL 通常为 5432
database.dbname DATABASE_DBNAME dwz 数据库名
database.username DATABASE_USERNAME dwz 数据库用户名
database.password DATABASE_PASSWORD dwz 数据库密码
redis.host REDIS_HOST localhost Redis 主机
redis.port REDIS_PORT 6379 Redis 端口
redis.password REDIS_PASSWORD Redis 密码
redis.db REDIS_DB 0 Redis DB 编号
cache.driver CACHE_DRIVER memory memoryredis 或驱动管理器支持的其他值
id_generator.driver ID_GENERATOR_DRIVER local localredis
jwt.secret JWT_SECRET 自动生成 JWT 签名密钥
jwt.expire_hours JWT_EXPIRE_HOURS 24 登录 JWT 有效小时数
ip_region.enabled IP_REGION_ENABLED true 是否查询 IP 归属地
ip_region.db_path_v4 IP_REGION_DB_PATH_V4 外部 IPv4 xdb,非空时优先于内嵌数据
ip_region.db_path_v6 IP_REGION_DB_PATH_V6 外部 IPv6 xdb,非空时优先于内嵌数据

旧文档中的 SERVER_ADDRSERVER_MODEDATABASE_NAMESHORTLINK_DOMAIN 不是本版本的有效运行时键。短链域名在“域名”页面或 /api/v1/domains 管理,不是全局环境变量。

SQLite 示例

HTTP_ADDR=:8081 \
DATABASE_DRIVER=sqlite \
DATABASE_FILEPATH=./config/sqlite.db \
CACHE_DRIVER=memory \
ID_GENERATOR_DRIVER=local \
./dwz-server start

MySQL + Redis 示例

HTTP_ADDR=:8080 \
DATABASE_DRIVER=mysql \
DATABASE_HOST=127.0.0.1 \
DATABASE_PORT=3306 \
DATABASE_DBNAME=dwz \
DATABASE_USERNAME=dwz \
DATABASE_PASSWORD='使用密钥管理器注入' \
CACHE_DRIVER=redis \
ID_GENERATOR_DRIVER=redis \
REDIS_HOST=127.0.0.1 \
REDIS_PORT=6379 \
REDIS_PASSWORD='使用密钥管理器注入' \
JWT_SECRET='至少 32 字节随机值' \
./dwz-server start

配置文件示例

app:
  mode: release
http:
  addr: ":8080"
  mode: release
database:
  driver: sqlite
  filepath: ./config/sqlite.db
cache:
  driver: memory
id_generator:
  driver: local
jwt:
  secret: "替换为随机值"
  expire_hours: 24

修改配置后重启服务或向前台进程发送其支持的重载信号。部署细节见单机部署Docker 部署