配置文件

Andy HsuConfigConfigSettings大约 5 分钟

初始配置

{
  "force": false,
  "address": "0.0.0.0",
  "port": 5244,
  "site_url": "",
  "cdn": "",
  "jwt_secret": "random generated",
  "token_expires_in": 48,
  "database": {
    "type": "sqlite3",
    "host": "",
    "port": 0,
    "user": "",
    "password": "",
    "name": "",
    "db_file": "data\\data.db",
    "table_prefix": "x_",
    "ssl_mode": ""
  },
  "scheme": {
    "https": false,
    "cert_file": "",
    "key_file": ""
  },
  "temp_dir": "data\\temp",
  "bleve_dir": "data\\bleve",
  "log": {
    "enable": true,
    "name": "data\\log\\log.log",
    "max_size": 10,
    "max_backups": 5,
    "max_age": 28,
    "compress": false
  },
  "max_connections": 0,
  "tls_insecure_skip_verify": false
}

字段说明

force

程序会优先从环境变量中读取配置,设置 forcetrue 会使程序忽略环境变量强制读取配置文件。

address

要监听的地址,默认为 0.0.0.0

port

要监听的端口,默认为 5244

site_url

你的网站URL,比如https://pan.nn.ci,这个地址会在程序中的某些地方使用,如果不设置这个字段,一些功能可能无法正常工作,比如

  • 本地存储的缩略图
  • 开启web代理后的预览
  • 开启web代理后的下载地址
  • 反向代理至二级目录
  • ...

URL链接结尾请勿携带 / ,参照如下示例,否则也将无法使用上述功能或出现异常

# 正确写法:
"site_url": "https://pan.nn.ci",
# 错误写法:
"site_url": "https://pan.nn.ci/",

cdn

CDN 地址,如果要使用 CDN,可以设置该字段,$version 会被替换为 alist-web 的实际版本 这是动态的。 现有的 dist 资源托管在 npm 和 GitHub 上,它们的位置是:

所以你可以使用任何 npm 或 GitHub CDN 作为路径,例如:

您也可以将其设置为空以使用本地 dist。

jwt_secret

用于签署 JWT 令牌的密钥,第一次启动时随机生成。

token_expires_in

用户登录过期时间,单位:小时

database

数据库配置,默认是 sqlite3,也可以使用 mysql 或者 postgres

  • 如果不使用MySQL或者postgres,配置文件数据库选项不用修改
  "database": {
    "type": "sqlite3",	//数据库类型
    "host": "",			//数据库地址
    "port": 0,			//数据库端口号
    "user": "",			//数据库账号
    "password": "",		//数据库密码
    "name": "",			//数据库库名
    "db_file": "data\\data.db",		//数据库位置,sqlite3使用的
    "table_prefix": "x_",			//数据库表名前缀
    "ssl_mode": ""		//来控制SSL握手时的加密选项,参数自行搜索,或者查看下方来自ChatGPT的回答
  },
展开查看`ssl_mode`参数选项

如果不知道如何填,默认空白即可,不用修改,不填不能用的话自行研究,无法提供太多有效的帮助


在MySQL中,ssl_mode参数是用于指定SSL连接的验证模式。以下是几种常见的选项:

  • DISABLED: 禁用SSL连接。
  • PREFERRED: 如果服务器启用了SSL,则使用SSL连接;否则使用普通连接。
  • REQUIRED: 必须使用SSL连接,如果服务器不支持SSL连接,则连接失败。
  • VERIFY_CA: 必须使用SSL连接,并验证服务器证书的可信性。
  • VERIFY_IDENTITY: 必须使用SSL连接,并验证服务器证书的可信性和名称是否与连接的主机名匹配。

MySQL 5.x和8.x也不一样。如果使用服务商提供的免费/收费数据库,服务商会有文档说明。自己部署的数据库那自己肯定知道。


在PostgreSQL中,ssl_mode参数用于指定客户端如何使用SSL连接。以下是几种常见的选项:

  • disable: 禁用SSL连接。
  • allow: 允许使用SSL连接,但不需要。
  • prefer: 如果服务器启用了SSL,则使用SSL连接;否则使用普通连接。
  • require: 必须使用SSL连接,如果服务器不支持SSL连接,则连接失败。
  • verify-ca: 必须使用SSL连接,并验证服务器证书的可信性。
  • verify-full: 必须使用SSL连接,并验证服务器证书的可信性和名称是否与连接的主机名匹配。

⚠️⚠️以上参数来自ChatGPT,未验证真实性/实用性/准确性⚠️⚠️

scheme

协议配置,如果要使用 HTTPS,可以设置该字段。

  • 填写示例:记得把证书文件丢到data目录里面才会识别到喔~
  "scheme": {
    "https": true,
    "cert_file": "data\\public.crt",
    "key_file": "data\\key.key"
  },

temp_dir

程序临时目录,默认 data/temp

警告

temp_dir为alist独占的临时文件夹,为避免程序中断产生垃圾文件会在每次启动时清空,故请不要手动在此文件夹内放置任何内容,也不要在使用docker时将此文件夹及其子文件夹映射至正在使用的文件夹。

log

日志配置,如果要查看详细日志(或禁用它),可以设置该字段。

max_connections

同时最多的连接数(并发),默认为0即不限制.

  • 对于一般的设备比如n1推荐10或者20
    • 使用场景(例如打开图片模式会并发不是很好的设备就会崩溃)

tls_insecure_skip_verify

是否检查SSL证书,开启后如使用的网站的证书出现问题(如未包含中级证书、证书过期、证书伪造等),将不能使用该服务,关闭该选项请尽量在安全的网络环境下运行程序