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() {
|
||||
# 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
|
||||
/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
|
||||
|
||||
# Fall back to systemctl (sudo if needed)
|
||||
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
|
||||
systemctl reload caddy && echo "reloaded caddy"
|
||||
elif sudo -n /run/current-system/sw/bin/systemctl reload caddy 2>/dev/null; then
|
||||
echo "reloaded caddy via sudo"
|
||||
return
|
||||
else
|
||||
echo "caddy reload requires root; run: sudo systemctl reload caddy"
|
||||
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() {
|
||||
local name="$1"
|
||||
validate_name "${name}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue