diff --git a/luci-app-caddy/luasrc/model/cbi/caddy/caddy.lua b/luci-app-caddy/luasrc/model/cbi/caddy/caddy.lua new file mode 100644 index 0000000..efaed4f --- /dev/null +++ b/luci-app-caddy/luasrc/model/cbi/caddy/caddy.lua @@ -0,0 +1,102 @@ +local m, s +local fs = require "luci.fs" +m = Map("caddy", translate("Caddy"), translate("Caddy 是一个可扩展的服务器平台,具有自动 HTTPS 功能的快速且可扩展的多平台 HTTP/1-2-3 Web 服务器") .. "
" .. "项目地址:" .. [[]] .. translate("github.com/caddyserver/caddy") .. "    " .. " caddy文档:" .. [[]] .. translate("caddyserver.com/docs/") .. [[]]) + +m:section(SimpleSection).template = "caddy/caddy_status" + +s = m:section(TypedSection, "caddy") +s.addremove = false +s.anonymous = true + +o = s:option(Flag, "enabled", translate("Enabled")) +o.rmempty = false +o.default = 0 + +e=s:option(ListValue,"cmd",translate("启动方式"), + translate("自定义配置文件启动,若不懂参数请勿选择自定义")) +e:value("默认") +e:value("自定义") + +o = s:option(TextValue, "caddyfile", translate("Caddyfile配置文件"), + translate("这是caddy的启动配置文件Caddyfile,路径在/etc/caddy/Caddyfile
使用的命令是:caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
如需设置密码,这里就不能使用明文密码,需要转换
转换命令:$(uci -q get caddy.@caddy[0].bin_dir) hash-password --plaintext 新密码")) +o.rows = 3 +o.wrap = "off" +o:depends("cmd", "自定义") +o.cfgvalue = function(self, section) + return nixio.fs.readfile("/etc/caddy/Caddyfile") or "" +end +o.write = function(self, section, value) + fs.writefile("/etc/caddy/Caddyfile", value:gsub("\r\n", "\n")) +end + +o = s:option(Value, "port", translate("端口")) +o.datatype = "and(port,min(1))" +o.default = "12311" +o:depends("cmd", "默认") + +o = s:option(Flag, "log", translate("启用日志")) +o.default = 1 +o:depends("cmd", "默认") + +o = s:option(Value, "log_dir", translate("日志路径"), + translate("日志的存放路径,填写完整的路径及日志文件名
建议/tmp里,例如:/tmp/caddy/requests.log")) +o.datatype = "string" +o.default = "/tmp/caddy/requests.log" +o:depends("log", "1") + +o = s:option(Value, "bin_dir", translate("程序路径"), + translate("caddy二进制的存放路径,填写完整的路径及caddy名称
例如:/usr/bin/caddy     例如:/tmp/caddy
可自行编译对应架构的二进制程序:编译教程")) +o.datatype = "string" +o.placeholder = "/usr/bin/caddy" + +o = s:option(Value, "data_dir", translate("指向路径"), + translate("指向一个路径,可在web界面访问你的文件,默认为 /mnt")) +o.datatype = "string" +o.default = "/mnt" +o:depends("cmd", "默认") + +o = s:option(Flag, "ssl", translate("启用 SSL")) +o.default = "0" +o:depends("cmd", "默认") + +o = s:option(Flag, "webdav", translate("启用 webdav")) +o.default = "0" +o:depends("cmd", "默认") + +o = s:option(Flag,"webdav_pass", translate("启用 认证")) +o.datatype = "string" +o:depends("webdav", "1") +o.default = "0" + +o = s:option(Value,"webdav_username", translate("用户名")) +o.datatype = "string" +o.default = "admin" +o:depends("webdav_pass", "1") + +o = s:option(Value,"webdav_password", translate("密码")) +o.datatype = "string" +o.password = true +o.default = "123456" +o:depends("webdav_pass", "1") + +o = s:option(Value,"webdav_port", translate("webdav端口")) +o.datatype = "and(port,min(1))" +o.default = "12322" +o:depends("webdav", "1") + +o = s:option(Value, "webdav_data_dir", translate("webdav指向路径"), + translate("指向一个路径,使用webdav访问你的文件,默认为 /mnt
连接地址须加/dav后缀  如: 192.168.1.1:12311/dav")) +o.datatype = "string" +o:depends("webdav", "1") +o.default = "/mnt" + +o = s:option(Flag, "allow_wan", translate("允许从外网访问")) +o.rmempty = false + +o = s:option(Flag, "cgi", translate("启用 cgi模块")) +o:depends("cmd", "默认") + +o = s:option(Flag, "api", translate("启用 API接口")) +o:depends("cmd", "默认") + +return m