From 90a7fd079803832fefe9f6505b99b03014218917 Mon Sep 17 00:00:00 2001 From: action Date: Thu, 13 Aug 2026 17:06:08 +0800 Subject: [PATCH] update 2026-08-13 17:06:08 --- dae/Makefile | 4 +- .../luasrc/controller/passwall.lua | 10 ++-- .../model/cbi/passwall/server/index.lua | 17 +++--- .../server/{user.lua => server_config.lua} | 0 .../luasrc/passwall/server_app.lua | 58 +++++++++---------- .../view/passwall/server/config_footer.htm | 2 +- .../passwall/server/server_list_status.htm | 38 ++++++++++++ .../passwall/server/users_list_status.htm | 38 ------------ luci-app-passwall/po/zh-cn/passwall.po | 3 + 9 files changed, 88 insertions(+), 82 deletions(-) rename luci-app-passwall/luasrc/model/cbi/passwall/server/{user.lua => server_config.lua} (100%) create mode 100644 luci-app-passwall/luasrc/view/passwall/server/server_list_status.htm delete mode 100644 luci-app-passwall/luasrc/view/passwall/server/users_list_status.htm diff --git a/dae/Makefile b/dae/Makefile index 108a811e..27e7e3b8 100644 --- a/dae/Makefile +++ b/dae/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dae -PKG_VERSION:=2026.08.12 +PKG_VERSION:=2026.08.13 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=2fb733f16292e7fb04d532bd9dd1b93fb597b054 +PKG_SOURCE_VERSION:=039adf5080465653d166b8c7428515dfa11431d9 PKG_SOURCE_URL:=https://github.com/olicesx/dae.git PKG_MIRROR_HASH:=skip diff --git a/luci-app-passwall/luasrc/controller/passwall.lua b/luci-app-passwall/luasrc/controller/passwall.lua index 213ddb9e..7696f474 100644 --- a/luci-app-passwall/luasrc/controller/passwall.lua +++ b/luci-app-passwall/luasrc/controller/passwall.lua @@ -55,12 +55,12 @@ function index() --[[ Server ]] entry({"admin", "services", appname, "server"}, cbi(appname .. "/server/index"), _("Server-Side"), 99).leaf = true - entry({"admin", "services", appname, "server_user"}, cbi(appname .. "/server/user")).leaf = true + entry({"admin", "services", appname, "server_config"}, cbi(appname .. "/server/server_config")).leaf = true --[[ API ]] entry({"admin", "services", appname, "server_update_config"}, call("server_update_config")).leaf = true - entry({"admin", "services", appname, "server_user_status"}, call("server_user_status")).leaf = true - entry({"admin", "services", appname, "server_user_log"}, call("server_user_log")).leaf = true + entry({"admin", "services", appname, "server_status"}, call("server_status")).leaf = true + entry({"admin", "services", appname, "server_log"}, call("server_log")).leaf = true entry({"admin", "services", appname, "server_get_log"}, call("server_get_log")).leaf = true entry({"admin", "services", appname, "server_clear_log"}, call("server_clear_log")).leaf = true entry({"admin", "services", appname, "link_add_node"}, call("link_add_node")).leaf = true @@ -786,14 +786,14 @@ function server_update_config() http_write_json_error() end -function server_user_status() +function server_status() local e = {} e.index = http.formvalue("index") e.status = luci.sys.call(string.format("/bin/busybox top -bn1 | grep -v 'grep' | grep '%s/bin/' | grep -i '%s' >/dev/null", appname .. "_server", http.formvalue("id"))) == 0 http_write_json(e) end -function server_user_log() +function server_log() local id = http.formvalue("id") if fs.access("/tmp/etc/passwall_server/" .. id .. ".log") then local content = luci.sys.exec("cat /tmp/etc/passwall_server/" .. id .. ".log") diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua index 0cca99bc..46bf66e7 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua @@ -18,13 +18,12 @@ e.default = "90" e.datatype = "range(0,600)" e.rmempty = false -local cfgname = "user" -t = m:section(TypedSection, cfgname, translate("Users Manager")) +t = m:section(TypedSection, "server", translate("Servers Manager")) t.anonymous = true t.addremove = true t.sortable = true t.template = "cbi/tblsection" -t.extedit = api.url("server_user", "%s") +t.extedit = api.url("server_config", "%s") function t.create(e, t) local uid = api.gen_random_char() TypedSection.create(e, uid) @@ -43,7 +42,7 @@ e.rmempty = false e = t:option(DummyValue, "status", translate("Status")) e.rawhtml = true e.cfgvalue = function(t, n) - return string.format('%s', translate("Collecting data...")) + return string.format('%s', translate("Collecting data...")) end e = t:option(DummyValue, "remarks", translate("Remarks")) @@ -96,11 +95,15 @@ e.rmempty = false local sortable = Template(appname .. "/cbi/sortable") sortable.api = api sortable.appname = m.config -sortable.target_cfgname = cfgname +sortable.target_cfgname = t.sectiontype m:append(sortable) +local server_list_status = Template(appname .. "/server/server_list_status") +server_list_status.api = api +server_list_status.appname = m.config +server_list_status.sectiontype = t.sectiontype +m:append(server_list_status) + m:append(Template(appname .. "/server/log")) -m:append(Template(appname .. "/server/users_list_status")) - return api.return_map(m) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/server_config.lua similarity index 100% rename from luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua rename to luci-app-passwall/luasrc/model/cbi/passwall/server/server_config.lua diff --git a/luci-app-passwall/luasrc/passwall/server_app.lua b/luci-app-passwall/luasrc/passwall/server_app.lua index bec17f8e..321e7a19 100644 --- a/luci-app-passwall/luasrc/passwall/server_app.lua +++ b/luci-app-passwall/luasrc/passwall/server_app.lua @@ -102,29 +102,29 @@ local function start() nft_file:write('flush chain inet fw4 PSW-SERVER\n') nft_file:write('insert rule inet fw4 input position 0 jump PSW-SERVER comment "PSW-SERVER"\n') end - uci:foreach(CONFIG, "user", function(user) - local id = user[".name"] - local enable = user.enable + uci:foreach(CONFIG, "server", function(server) + local id = server[".name"] + local enable = server.enable if enable and tonumber(enable) == 1 then - local enable_log = user.log + local enable_log = server.log local log_path = nil if enable_log and enable_log == "1" then log_path = CONFIG_PATH .. "/" .. id .. ".log" else log_path = nil end - local remarks = user.remarks - local port = tonumber(user.port) + local remarks = server.remarks + local port = tonumber(server.port) local bin local config = {} local config_file = CONFIG_PATH .. "/" .. id .. ".json" local udp_forward = 1 - local type = user.type or "" + local type = server.type or "" if type == "Socks" then local auth = "" - if user.auth and user.auth == "1" then - local username = user.username or "" - local password = user.password or "" + if server.auth and server.auth == "1" then + local username = server.username or "" + local password = server.password or "" if username ~= "" and password ~= "" then username = "-u " .. username password = "-P " .. password @@ -133,59 +133,59 @@ local function start() end bin = ln_run("/usr/bin/microsocks", "microsocks_" .. id, string.format("-i :: -p %s %s", port, auth), log_path) elseif type == "SSR" then - if user.custom == "1" and user.config_str then - config = jsonc.parse(api.base64Decode(user.config_str)) + if server.custom == "1" and server.config_str then + config = jsonc.parse(api.base64Decode(server.config_str)) else - config = require(require_dir .. "util_shadowsocks").gen_config_server(user) + config = require(require_dir .. "util_shadowsocks").gen_config_server(server) end local udp_param = "" - udp_forward = tonumber(user.udp_forward) or 1 + udp_forward = tonumber(server.udp_forward) or 1 if udp_forward == 1 then udp_param = "-u" end type = type:lower() bin = ln_run("/usr/bin/" .. type .. "-server", type .. "-server", "-c " .. config_file .. " " .. udp_param, log_path) elseif type == "SS-Rust" then - if user.custom == "1" and user.config_str then - config = jsonc.parse(api.base64Decode(user.config_str)) + if server.custom == "1" and server.config_str then + config = jsonc.parse(api.base64Decode(server.config_str)) else - config = require(require_dir .. "util_shadowsocks").gen_config_server(user) + config = require(require_dir .. "util_shadowsocks").gen_config_server(server) end bin = ln_run("/usr/bin/ssserver", "ssserver", "-c " .. config_file, log_path) elseif type == "Xray" then - if user.custom == "1" and user.config_str then - config = jsonc.parse(api.base64Decode(user.config_str)) + if server.custom == "1" and server.config_str then + config = jsonc.parse(api.base64Decode(server.config_str)) if log_path then if not config.log then config.log = {} end - config.log.loglevel = user.loglevel + config.log.loglevel = server.loglevel end else - config = require(require_dir .. "util_xray").gen_config_server(user) + config = require(require_dir .. "util_xray").gen_config_server(server) end bin = ln_run(api.get_app_path("xray"), "xray", "run -c " .. config_file, log_path) elseif type == "sing-box" then - if user.custom == "1" and user.config_str then - config = jsonc.parse(api.base64Decode(user.config_str)) + if server.custom == "1" and server.config_str then + config = jsonc.parse(api.base64Decode(server.config_str)) if log_path then if not config.log then config.log = {} end config.log.timestamp = true config.log.disabled = false - config.log.level = user.loglevel + config.log.level = server.loglevel config.log.output = log_path end else - config = require(require_dir .. "util_sing-box").gen_config_server(user) + config = require(require_dir .. "util_sing-box").gen_config_server(server) end bin = ln_run(api.get_app_path("sing-box"), "sing-box", "run -c " .. config_file, log_path) elseif type == "Hysteria2" then - if user.custom == "1" and user.config_str then - config = jsonc.parse(api.base64Decode(user.config_str)) + if server.custom == "1" and server.config_str then + config = jsonc.parse(api.base64Decode(server.config_str)) else - config = require(require_dir .. "util_hysteria2").gen_config_server(user) + config = require(require_dir .. "util_hysteria2").gen_config_server(server) end bin = ln_run(api.get_app_path("hysteria"), "hysteria", "-c " .. config_file .. " server", log_path) end @@ -203,7 +203,7 @@ local function start() cmd(bin) end - local bind_local = user.bind_local or 0 + local bind_local = server.bind_local or 0 if bind_local and tonumber(bind_local) ~= 1 and port then if nft_flag == "0" then ipt(string.format('-A PSW-SERVER -p tcp --dport %s -m comment --comment "%s" -j ACCEPT', port, remarks)) diff --git a/luci-app-passwall/luasrc/view/passwall/server/config_footer.htm b/luci-app-passwall/luasrc/view/passwall/server/config_footer.htm index e6e88d4a..b4cdd637 100644 --- a/luci-app-passwall/luasrc/view/passwall/server/config_footer.htm +++ b/luci-app-passwall/luasrc/view/passwall/server/config_footer.htm @@ -4,7 +4,7 @@ local api = self.api \ No newline at end of file diff --git a/luci-app-passwall/luasrc/view/passwall/server/users_list_status.htm b/luci-app-passwall/luasrc/view/passwall/server/users_list_status.htm deleted file mode 100644 index 8ba385aa..00000000 --- a/luci-app-passwall/luasrc/view/passwall/server/users_list_status.htm +++ /dev/null @@ -1,38 +0,0 @@ -<% -local api = require "luci.passwall.api" --%> - diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po index 85d6092b..98cd9371 100644 --- a/luci-app-passwall/po/zh-cn/passwall.po +++ b/luci-app-passwall/po/zh-cn/passwall.po @@ -1622,6 +1622,9 @@ msgstr "服务器端" msgid "Server Config" msgstr "服务器配置" +msgid "Servers Manager" +msgstr "服务器管理" + msgid "Users Manager" msgstr "用户管理"