config.json 关键字段速查:改配置必须重启的规矩
站点级配置(端口、数据库、JWT、协议开关)都在 data/config.json 里。改完必须重启 OpenList 才生效——这条纪律适用每一个字段。
文件在哪
| 安装方式 | 位置 |
|---|---|
| Windows / macOS 手动 | 程序目录下的 data/config.json |
| Linux 一键脚本 | /opt/openlist/data/config.json |
| Docker | 映射出来的 data 目录里(如 /etc/openlist/data/config.json) |
| OpenWrt | luci 插件在网页里改;其他同手动安装 |
高频字段速查
| 字段 | 作用 |
|---|---|
site_url | 站点对外地址;子目录反代、直链相关功能需要它 |
scheme.http_port | Web 端口,默认 5244 |
scheme.https_port / cert_file / key_file | 站内直接上 HTTPS 的三件套(也可走反代) |
token_expires_in | 登录令牌有效期,默认 48 小时 |
jwt_secret | 令牌签名密钥,首次启动自动生成,泄露需重置 |
database.type | 数据库类型:默认 sqlite3,可换 mysql / postgres |
max_concurrency | 全站并发协程上限,默认 64 |
log.* | 日志开关、路径、滚动大小(默认单文件 50MB) |
tasks.* | 各类后台任务(上传 / 复制 / 离线下载等)的并发数与重试次数 |
ftp.enable / sftp.enable | FTP / SFTP 服务 的总开关 |
s3.enable / s3.port | S3 服务 的总开关与端口(默认 5246) |
mcp.enable | MCP 服务开关,供 AI 工具接入 |
force | 设为 true 后忽略环境变量、强制读配置文件 |
环境变量优先级
程序默认优先从环境变量读配置(Docker 部署常用 -e 传参,且镜像内默认加了 --no-prefix,变量名不用带 OPENLIST_ 前缀)。发现「配置文件改了不生效」时,先怀疑环境变量覆盖了它——要么删掉对应环境变量,要么把 force 设为 true。
数据库什么时候要换
SQLite 默认引擎对个人站完全够用;以下情况换 MySQL / Postgres:
- 文件量巨大、频繁建 搜索索引,SQLite 锁库频繁
- 多实例共享一份数据的进阶架构
- PaaS 平台不提供持久磁盘,用云数据库存配置
换库改 database 段并重启即可,首次启动自动建表;老数据迁移按 备份与恢复 的数据库法子走。