update 2023-06-22 14:01:04

This commit is contained in:
github-actions[bot]
2023-06-22 14:01:04 +08:00
parent 544eff462d
commit c137e9c922
4 changed files with 69 additions and 8 deletions

View File

@ -41,8 +41,8 @@ function clear_log()
end
function admin_info()
local username = luci.sys.exec("/usr/bin/alist --data /etc/alist password 2>&1 | tail -2 | awk 'NR==1 {print $2}'")
local password = luci.sys.exec("/usr/bin/alist --data /etc/alist password 2>&1 | tail -2 | awk 'NR==2 {print $2}'")
local username = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==1 {print $2}'")
local password = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==2 {print $2}'")
luci.http.prepare_content("application/json")
luci.http.write_json({username = username, password = password})

View File

@ -31,6 +31,31 @@ 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.password = true
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
@ -52,6 +77,10 @@ o.datatype = "and(uinteger,min(0))"
o.default = "0"
o.rmempty = false
o = s:option(Value, "data_dir", translate("Data directory"))
o.datatype = "string"
o.default = "/etc/alist"
o = s:option(Value, "temp_dir", translate("Cache directory"))
o.datatype = "string"
o.default = "/tmp/alist"

View File

@ -34,6 +34,9 @@ msgstr "SSL 密钥"
msgid "SSL key file path"
msgstr "SSL 密钥文件路径"
msgid "Data directory"
msgstr "数据目录"
msgid "Cache directory"
msgstr "缓存目录"
@ -93,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

@ -3,13 +3,13 @@
START=99
USE_PROCD=1
PROG=/usr/bin/alist
CONFIG_DIR=/etc/alist
get_config() {
config_get_bool enabled $1 enabled 1
config_get port $1 port 5244
config_get log $1 log 1
config_get site_url $1 site_url ""
config_get data_dir $1 data_dir "/etc/alist"
config_get temp_dir $1 temp_dir "/tmp/alist"
config_get ssl $1 ssl 0
config_get ssl_cert $1 ssl_cert ""
@ -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
@ -50,11 +59,11 @@ start_service() {
config_load alist
config_foreach get_config alist
[ $enabled != 1 ] && return 1
mkdir -p $temp_dir
mkdir -p $temp_dir $data_dir
[ "$ssl" -eq 1 ] && SSL=true || SSL=false
[ "$log" -eq 1 ] && LOG=true || LOG=false
if [ -e /proc/uptime ]; then
[ $(awk -F. '{print $1}' /proc/uptime) -lt "300" ] && delayed_start=$delayed_start || delayed_start=0
[ $(awk -F. '{print $1}' /proc/uptime) -lt "120" ] && delayed_start=$delayed_start || delayed_start=0
else
delayed_start=$delayed_start
fi
@ -65,14 +74,16 @@ 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 > $CONFIG_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":"/etc/alist/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}
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":"$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
procd_append_param command server --data $CONFIG_DIR
procd_append_param command server --data $data_dir
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn