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 运行模式:debug、release、test |
http.load_static |
HTTP_LOAD_STATIC |
true |
是否加载静态资源 |
http.static_mode |
HTTP_STATIC_MODE |
embed |
embed 或 disk |
http.static_dir |
HTTP_STATIC_DIR |
admin |
静态目录列表 |
http.templates_mode |
HTTP_TEMPLATES_MODE |
embed |
embed 或 disk |
http.templates_dir |
HTTP_TEMPLATES_DIR |
templates |
磁盘模板目录 |
database.driver |
DATABASE_DRIVER |
mysql |
mysql、postgresql、sqlite |
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 |
memory、redis 或驱动管理器支持的其他值 |
id_generator.driver |
ID_GENERATOR_DRIVER |
local |
local 或 redis |
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_ADDR、SERVER_MODE、DATABASE_NAME 和 SHORTLINK_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 startMySQL + 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