gadget/docs/cn/config.md

207 lines
5.1 KiB
Markdown
Raw Normal View History

2023-12-05 11:33:44 +08:00
#
## 宏
使用$[x]$来引用宏目前config.json文件中支持两个宏
### workdir
工作目录gadget程序启动时的目录
### ProgramPath
gadget程序所在目录
例子
```
"logger":{
"name":"iptvserver",
"levelname":"debug",
"logfile":"$[workdir]$/logs/iptv.log"
}
```
上述例子定义了logfile为工作目录下的logs/iptv.log
## logger
定义日志
例子
```
"logger":{
"name":"iptvserver",
"levelname":"debug",
"logfile":"$[workdir]$/logs/iptv.log"
},
```
### name
日志名称
### levelname
日志级别名称
* debug
* info
* error
### logfile
日志文件路径
## databases
字典类型每个key定义一个数据库定义 支持链接多个数据库,可以同时定义多个不同类型的数据库
例子
```
“databases”:{
"kboss":{
"driver":"aiomysql",
"async_mode":true,
"coding":"utf8",
"dbname":"kboss",
"maxconn":100,
"kwargs":{
"user":"test",
"db":"kboss",
"password":"QUZVcXg5V1p1STMybG5Ia6mX9D0v7+g=",
"host":"localhost"
}
}
}
```
上述定义了一个名为“kboss”的数据库使用aiomysql“模块操作数据库
异步模式
最大支持100个链接链接参数等
## website
字典类型定义website属性
### port
端口号
### host
定义网站主机ip地址通常设置为”0.0.0.0“, 内网外网都能访问
### ssl
定义网站使用https访问格式如下
```
"ssl":{
"crtfile":证书绝对路径,
"keyfile":证书密码文件绝对路径
}
```
### coding
定义网站编码建议使用”utf-8“编码
### processors
数组,定义文件后缀网站路由,每一个元素定义一个后缀
例子
```
"processors":[
[".proxy","proxy"],
[".xlsxds","xlsxds"],
[".sqlds","sqlds"],
[".tmpl.js","tmpl"],
[".tmpl.css","tmpl"],
[".tmpl.html","tmpl"],
[".bcrud", "bricks_crud"],
[".tmpl","tmpl"],
[".ui","tmpl"],
[".dspy","dspy"],
[".md","md"]
```
上述例子定义:
* .proxy 后缀的路径使用ProxyProcessor来处理
* .xlsxds后缀的路径使用XlsxdsProcessor处理器来处理
* .sqlds后缀的路径采用SqldsProcessor处理器来处理
* .tmpl.js后缀的路径使用TmplProcessor处理器来处理
* .tmpl.css后缀的路径使用TmplProcessor处理器来处理
* .tmpl.html后缀的路径使用TmplProcessor处理器来处理
* .bcrud后缀的路径使用BricksCrudProcessor处理器来处理
* .tmpl后缀的路径使用TmplProcessor处理器来处理
* .ui后缀的路径使用TmplProcessor处理器来处理
* .dspy后缀的路径使用DspyProcessor处理器来处理
* .md后缀的路径使用MarkdownProcessor处理器来处理
### startswiths
数组类型,定义网站的前缀路由,前缀路由使用注册函数实现
例子
```
"startswiths":[
{
"leading":"/public/publickey",
"registerfunction":"getPublicKey"
},
{
"leading":"/public/i18n",
"registerfunction":"getI18nMapping"
},
{
"leading":"/idfile",
"registerfunction":"idFileDownload"
},
{
"leading":"/thumb",
"registerfunction":"makeThumb",
"width":512,
"quality":50,
"keep_ratio":1
}
],
```
上述定义了4个前缀路由除“leading””registerfunction“外的属性均被当作参数传递给注册函数
### rsakey
支持rsa公开密钥加密在这个属性下提供rsa的私钥和公钥
例子
```
"rsakey":{
"privatekey":"$[workdir]$/conf/rsa_private_key.pem",
"publickey":"$[workdir]$/conf/rsa_public_key.pem"
}
```
## 登录控制
在config.json文件对website属性下
### authpaths
authpaths是一个数组 每个元素定义一个路径或路径的起始字符串在authpaths中定义的路径用户访问的URL的起始字符串与其相同时需要登录
例子1
```
"authpaths":[
"/"
]
```
上面的例子整个网站都需要登录后才能访问,这种情况需要设置例外,放出登录界面让用户访问
例子2
```
"authparhs":[
"/scrent",
"/private"
]
```
以上例子定义了需要登录后才能访问的路径,所以以上述两个字符串开始的路径的访问都需要登录
### whitelist
白名单,数组,每项定义一个例外
例子1
```
"whitelist":[
"/login",
"/login"
]
```
以上例子将根目录下所有以“login”开始的路径都设置成例外不用登录也可以访问
## langMapping
语言对照
不同的浏览器和操作系统,向后台船队的语言差异挺大,这里定义了一个映射
例子
```
"langMapping":{
"zh-Hans-CN":"zh-cn",
"zh-CN":"zh-cn",
"en-us":"en",
"en-US":"en"
}
```