fix: enhance caddy reload logic to use admin API and improve validation checks
This commit is contained in:
parent
39e3337b8a
commit
a34eac4235
1 changed files with 35 additions and 11 deletions
46
panelctl.sh
46
panelctl.sh
|
|
@ -330,25 +330,49 @@ cmd_render_route() {
|
||||||
}
|
}
|
||||||
|
|
||||||
maybe_reload_caddy() {
|
maybe_reload_caddy() {
|
||||||
|
# Try Caddy admin API first (no root required)
|
||||||
|
if curl -sf -X POST http://localhost:2019/config/ >/dev/null 2>&1; then
|
||||||
|
echo "reloaded caddy via admin API"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate config if caddy binary is available
|
||||||
if [[ -x /run/current-system/sw/bin/caddy && -f /etc/caddy/Caddyfile ]]; then
|
if [[ -x /run/current-system/sw/bin/caddy && -f /etc/caddy/Caddyfile ]]; then
|
||||||
/run/current-system/sw/bin/caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile || echo "warning: caddy validation failed" >&2
|
/run/current-system/sw/bin/caddy validate \
|
||||||
|
--config /etc/caddy/Caddyfile --adapter caddyfile \
|
||||||
|
|| echo "warning: caddy validation failed" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Fall back to systemctl (sudo if needed)
|
||||||
if [[ "${EUID}" -eq 0 ]]; then
|
if [[ "${EUID}" -eq 0 ]]; then
|
||||||
systemctl reload caddy
|
systemctl reload caddy && echo "reloaded caddy"
|
||||||
echo "reloaded caddy"
|
elif sudo -n /run/current-system/sw/bin/systemctl reload caddy 2>/dev/null; then
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
if command -v sudo >/dev/null 2>&1 && sudo -n true >/dev/null 2>&1; then
|
|
||||||
sudo -n /run/current-system/sw/bin/systemctl reload caddy
|
|
||||||
echo "reloaded caddy via sudo"
|
echo "reloaded caddy via sudo"
|
||||||
return
|
else
|
||||||
|
echo "caddy reload requires root; run: sudo systemctl reload caddy"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "caddy reload requires root; run: sudo systemctl reload caddy"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# maybe_reload_caddy() {
|
||||||
|
# if [[ -x /run/current-system/sw/bin/caddy && -f /etc/caddy/Caddyfile ]]; then
|
||||||
|
# /run/current-system/sw/bin/caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile || echo "warning: caddy validation failed" >&2
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# if [[ "${EUID}" -eq 0 ]]; then
|
||||||
|
# systemctl reload caddy
|
||||||
|
# echo "reloaded caddy"
|
||||||
|
# return
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# if command -v sudo >/dev/null 2>&1 && sudo -n true >/dev/null 2>&1; then
|
||||||
|
# sudo -n /run/current-system/sw/bin/systemctl reload caddy
|
||||||
|
# echo "reloaded caddy via sudo"
|
||||||
|
# return
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# echo "caddy reload requires root; run: sudo systemctl reload caddy"
|
||||||
|
# }
|
||||||
|
|
||||||
cmd_deploy() {
|
cmd_deploy() {
|
||||||
local name="$1"
|
local name="$1"
|
||||||
validate_name "${name}"
|
validate_name "${name}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue