luci-app-alist: Add MySQL database support

This commit is contained in:
sbwml 2023-06-22 11:47:05 +08:00
parent 01ff544616
commit bb93e7212f
3 changed files with 54 additions and 1 deletions

View File

@ -31,6 +31,30 @@ o = s:option(Value,"ssl_key", translate("SSL key"), translate("SSL key file path
o.datatype = "file"
o:depends("ssl", "1")
o = s:option(Flag, "mysql", translate("Enable MySQL"))
o.rmempty=false
o = s:option(Value,"mysql_host", translate("MySQL Host"))
o.datatype = "string"
o:depends("mysql", "1")
o = s:option(Value,"mysql_port", translate("MySQL Port"))
o.datatype = "and(port,min(1))"
o.default = "3306"
o:depends("mysql", "1")
o = s:option(Value,"mysql_username", translate("MySQL Username"))
o.datatype = "string"
o:depends("mysql", "1")
o = s:option(Value,"mysql_password", translate("MySQL Password"))
o.datatype = "string"
o:depends("mysql", "1")
o = s:option(Value,"mysql_database", translate("Database Name"))
o.datatype = "string"
o:depends("mysql", "1")
o = s:option(Flag, "allow_wan", translate("Allow Access From Internet"))
o.rmempty = false

View File

@ -96,3 +96,21 @@ msgstr "Web 被反向代理到二级目录时,必须填写该选项以确保 W
msgid "Delayed Start (seconds)"
msgstr "开机延时启动(秒)"
msgid "Enable MySQL"
msgstr "启用 MySQL"
msgid "MySQL Host"
msgstr "主机"
msgid "MySQL Port"
msgstr "端口"
msgid "MySQL Username"
msgstr "用户名"
msgid "MySQL Password"
msgstr "密码"
msgid "Database Name"
msgstr "数据库名"

View File

@ -18,6 +18,15 @@ get_config() {
config_get allow_wan $1 allow_wan 0
config_get max_connections $1 max_connections 0
config_get delayed_start $1 delayed_start 0
# mysql
config_get mysql $1 mysql 0
config_get mysql_host $1 mysql_host ""
config_get mysql_port $1 mysql_port "3306"
config_get mysql_username $1 mysql_username ""
config_get mysql_password $1 mysql_password ""
config_get mysql_database $1 mysql_database ""
config_load network
config_get lan_addr lan ipaddr "0.0.0.0"
if echo "${lan_addr}" | grep -Fq ' '; then
@ -65,10 +74,12 @@ start_service() {
listen_addr=$lan_addr
external_access="deny"
fi
# mysql
[ "$mysql" -eq 1 ] && database=mysql || database=sqlite3
set_firewall
cat /dev/null > $temp_dir/alist.log
cat > $data_dir/config.json <<EOF
{"force":false,"address":"$listen_addr","port":$port,"https_port":$port,"site_url":"$site_url","cdn":"","jwt_secret":"","token_expires_in":$token_expires_in,"database":{"type":"sqlite3","host":"","port":0,"user":"","password":"","name":"","db_file":"$data_dir/data.db","table_prefix":"x_","ssl_mode":""},"scheme":{"disable_http":$SSL,"https":$SSL,"cert_file":"$ssl_cert","key_file":"$ssl_key"},"temp_dir":"$temp_dir","log":{"enable":$LOG,"name":"$temp_dir/alist.log","max_size":10,"max_backups":5,"max_age":28,"compress":false},"delayed_start":$delayed_start,"max_connections":$max_connections}
{"force":false,"address":"$listen_addr","port":$port,"https_port":$port,"site_url":"$site_url","cdn":"","jwt_secret":"","token_expires_in":$token_expires_in,"database":{"type":"$database","host":"$mysql_host","port":$mysql_port,"user":"$mysql_username","password":"$mysql_password","name":"$mysql_database","db_file":"$data_dir/data.db","table_prefix":"x_","ssl_mode":""},"scheme":{"disable_http":$SSL,"https":$SSL,"cert_file":"$ssl_cert","key_file":"$ssl_key"},"temp_dir":"$temp_dir","log":{"enable":$LOG,"name":"$temp_dir/alist.log","max_size":10,"max_backups":5,"max_age":28,"compress":false},"delayed_start":$delayed_start,"max_connections":$max_connections}
EOF
procd_open_instance alist
procd_set_param command $PROG