mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-01 16:44:23 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,49 @@
|
||||
# 此配置文件路径:/etc/caddy/Caddyfile
|
||||
|
||||
{ # 全局配置
|
||||
# 启动 cgi 模块
|
||||
order cgi before respond
|
||||
# 启动 webdav 模块
|
||||
order webdav before file_server
|
||||
# 关闭 API 端口
|
||||
admin off
|
||||
}
|
||||
|
||||
:12311 {
|
||||
#启用压缩
|
||||
encode gzip
|
||||
#认证,账号admin 密码123456
|
||||
basicauth {
|
||||
admin $2a$14$RdbOHzJhf5BaapSdlYTCbe.yWY9cEZjyDpfgwStY28K/qsM1tX8tu
|
||||
}
|
||||
#路径 /mnt
|
||||
root * /mnt
|
||||
#文件服务器 端口12311
|
||||
file_server browse
|
||||
|
||||
log {
|
||||
#日志 路径/tmp/caddy/requests.log
|
||||
output file /tmp/caddy/requests.log {
|
||||
roll_size 1MiB
|
||||
roll_local_time
|
||||
roll_keep 5
|
||||
roll_keep_for 120h
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
:12322 {
|
||||
#启用压缩
|
||||
encode gzip
|
||||
#认证,账号admin 密码123456
|
||||
basicauth {
|
||||
admin $2a$14$RdbOHzJhf5BaapSdlYTCbe.yWY9cEZjyDpfgwStY28K/qsM1tX8tu
|
||||
}
|
||||
|
||||
# webdav 路径根目录 端口12322
|
||||
webdav /dav/* {
|
||||
prefix /dav
|
||||
root /
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
config caddy
|
||||
option 'enabled' '0'
|
||||
option cmd '默认'
|
||||
option 'port' '12311'
|
||||
option 'webdav' '0'
|
||||
option 'filezip' '0'
|
||||
option 'webzip' '0'
|
||||
option 'cgi' '0'
|
||||
option 'api' '0'
|
||||
option 'data_dir' '/mnt'
|
||||
option 'file_pass' '0'
|
||||
option 'log' '1'
|
||||
option 'log_dir' '/tmp/caddy/requests.log'
|
||||
option allow_wan '0'
|
||||
Executable
+194
@@ -0,0 +1,194 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
USE_PROCD=1
|
||||
PROG="$(uci -q get caddy.@caddy[0].bin_dir)"
|
||||
|
||||
get_config() {
|
||||
config_get_bool enabled $1 enabled 0
|
||||
config_get cmd $1 cmd "默认"
|
||||
config_get_bool webdav $1 webdav 0
|
||||
config_get port $1 port 12311
|
||||
config_get webdav_port $1 webdav_port 12322
|
||||
config_get log $1 log 1
|
||||
config_get data_dir $1 data_dir "/mnt"
|
||||
config_get webdav_data_dir $1 webdav_data_dir "/mnt"
|
||||
config_get log_dir $1 log_dir "/tmp/caddy/requests.log"
|
||||
config_get caddy_file $1 caddy_file "/etc/caddy/Caddyfile"
|
||||
config_get caddyfile $1 caddyfile
|
||||
config_get file_pass $1 file_pass 0
|
||||
config_get file_username $1 file_username "admin"
|
||||
config_get file_password $1 file_password "123456"
|
||||
config_get webdav_pass $1 webdav_pass 0
|
||||
config_get webdav_username $1 webdav_username "admin"
|
||||
config_get webdav_password $1 webdav_password "123456"
|
||||
config_get api $1 api 0
|
||||
config_get filezip $1 filezip 0
|
||||
config_get webzip $1 webzip 0
|
||||
config_get allow_wan $1 allow_wan 0
|
||||
|
||||
|
||||
}
|
||||
|
||||
set_firewall() {
|
||||
if [ "$external_access" = "allow" ]; then
|
||||
uci -q delete firewall.caddy
|
||||
uci set firewall.caddy=rule
|
||||
uci set firewall.caddy.name="caddy"
|
||||
uci set firewall.caddy.target="ACCEPT"
|
||||
uci set firewall.caddy.src="wan"
|
||||
uci set firewall.caddy.proto="tcp"
|
||||
uci set firewall.caddy.dest_port="$port"
|
||||
[ ! -z "$webdav_port" ] && uci set firewall.caddy.dest_port="$webdav_port"
|
||||
uci set firewall.caddy.enabled="1"
|
||||
uci commit firewall
|
||||
/etc/init.d/firewall reload >/dev/null 2>&1
|
||||
elif [ "$external_access" = "deny" ]; then
|
||||
uci -q delete firewall.caddy
|
||||
uci commit firewall
|
||||
/etc/init.d/firewall reload >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
start_service() {
|
||||
config_load caddy
|
||||
config_foreach get_config caddy
|
||||
[ $enabled -ne 1 ] && return 1
|
||||
log_path="$(dirname $log_dir)"
|
||||
mkdir -p $log_path
|
||||
if [ ! -f "$PROG" ] ;then
|
||||
uci -q set caddy.@caddy[0].enabled=0
|
||||
uci commit caddy
|
||||
echo "$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X) : $PROG 未找到,无法启动!请确认已上传程序" >>$log_dir 2>&1
|
||||
exit 1
|
||||
else
|
||||
chmod +x $PROG
|
||||
if [ $(($($PROG -h | wc -l))) -lt 3 ] ;then
|
||||
uci -q set caddy.@caddy[0].enabled=0
|
||||
uci commit caddy
|
||||
echo "$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X) : $PROG 程序不完整或CPU架构不支持的程序,无法启动!" >>$log_dir 2>&1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [ "$cmd" = "默认" ] ;then
|
||||
mkdir -p $data_dir
|
||||
if [ "$log" -eq 1 ] ;then
|
||||
|
||||
logs="log {
|
||||
output file $log_dir {
|
||||
roll_size 1MiB
|
||||
roll_local_time
|
||||
roll_keep 5
|
||||
roll_keep_for 120h
|
||||
}
|
||||
}"
|
||||
fi
|
||||
if [ "$file_pass" -eq 1 ] ;then
|
||||
filepassword="$($PROG hash-password --plaintext $file_password)"
|
||||
filebasicauth="basicauth {
|
||||
$file_username $filepassword
|
||||
}"
|
||||
fi
|
||||
if [ "$webdav" -eq 1 ] ;then
|
||||
mkdir -p $webdav_data_dir
|
||||
if [ "$webdav_pass" -eq 1 ] ;then
|
||||
password="$($PROG hash-password --plaintext $webdav_password)"
|
||||
basicauth="basicauth {
|
||||
$webdav_username $password
|
||||
}"
|
||||
fi
|
||||
webdavs=":$webdav_port {
|
||||
$basicauth
|
||||
webdav * {
|
||||
prefix /dav
|
||||
root $webdav_data_dir
|
||||
}
|
||||
}"
|
||||
orderweb="order webdav before file_server # 启动 webdav 模块"
|
||||
fi
|
||||
if [ "$filezip" -eq 1 ] ;then
|
||||
filezips="encode gzip"
|
||||
fi
|
||||
if [ "$webzip" -eq 1 ] ;then
|
||||
webzips="encode gzip"
|
||||
fi
|
||||
if [ "$api" != "1" ] ;then
|
||||
apis="admin off # 关闭 API 端口"
|
||||
fi
|
||||
if [ "$allow_wan" -eq "1" ]; then
|
||||
external_access="allow"
|
||||
else
|
||||
external_access="deny"
|
||||
fi
|
||||
if [ "$webdav" -eq 1 ] || [ "$api" != "1" ] ;then
|
||||
order="{ # 全局配置
|
||||
$orderweb
|
||||
$apis
|
||||
} "
|
||||
fi
|
||||
set_firewall
|
||||
|
||||
cat > $caddy_file <<EOF
|
||||
# 此配置文件路径:/etc/caddy/Caddyfile
|
||||
|
||||
$order
|
||||
|
||||
:$port {
|
||||
$filezips
|
||||
$filebasicauth
|
||||
root * $data_dir
|
||||
file_server browse
|
||||
|
||||
$logs
|
||||
|
||||
}
|
||||
|
||||
$webdavs
|
||||
EOF
|
||||
|
||||
uci -q set caddy.@caddy[0].caddyfile="$(cat $caddy_file)"
|
||||
uci commit caddy
|
||||
else
|
||||
caddyf="$(uci -q get caddy.@caddy[0].caddyfile)"
|
||||
logpath="$(echo $caddyf | grep "output file" | awk -F 'output file' '{print $2}' | tr -d '{ ')"
|
||||
[ ! -z "$logpath" ] && uci -q set caddy.@caddy[0].log_dir=$logpath && uci commit caddy
|
||||
if [ ! -z "$caddyf" ] ;then
|
||||
echo "$caddyf" >$caddy_file 2>&1
|
||||
else
|
||||
uci -q set caddy.@caddy[0].enabled=0
|
||||
uci commit caddy
|
||||
echo "$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X) : $caddy_file 配置文件Caddyfile为空,无法启动!" >>$log_dir 2>&1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
$PROG fmt --overwrite $caddy_file
|
||||
procd_open_instance caddy
|
||||
procd_set_param command $PROG
|
||||
procd_append_param command run
|
||||
procd_append_param command --config $caddy_file
|
||||
procd_append_param command --adapter caddyfile
|
||||
|
||||
procd_set_param stdout 0
|
||||
procd_set_param stderr 0
|
||||
procd_set_param respawn
|
||||
procd_close_instance caddy
|
||||
|
||||
echo `date +%s` > /tmp/caddy_time
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "caddy"
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
external_access="deny"
|
||||
set_firewall
|
||||
rm -rf /tmp/caddy.tag /tmp/caddynew.tag
|
||||
rm -rf $(uci -q get caddy.@caddy[0].log_dir)
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
sleep 1
|
||||
start
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
[ ! -f "/usr/share/ucitrack/luci-app-caddy.json" ] && {
|
||||
cat > /usr/share/ucitrack/luci-app-caddy.json << EEOF
|
||||
{
|
||||
"config": "caddy",
|
||||
"init": "caddy"
|
||||
}
|
||||
EEOF
|
||||
}
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@caddy[-1]
|
||||
add ucitrack caddy
|
||||
set ucitrack.@caddy[-1].init=caddy
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
rm -rf /tmp/luci-*
|
||||
chmod 755 /etc/init.d/caddy
|
||||
exit 0
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-caddy": {
|
||||
"description": "Grant UCI access for luci-app-caddy",
|
||||
"read": {
|
||||
"uci": [ "caddy" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "caddy" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user