Initialize Clash Web source and deployment documentation

This commit is contained in:
lhc committed 2026-10-05 17:32:00 +08:00
commit 8e0fa00a73
66 files changed
+8532

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -euo pipefail
[[ $EUID -eq 0 ]] || { echo 'Run on the service VM as root.' >&2; exit 1; }
task_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
task_staging=$(mktemp -d)
trap 'rm -rf "$task_staging"' EXIT
python3 "$task_root/scripts/fetch-rules.py" --output "$task_staging/new"
mkdir -p "$task_staging/old"
cp -a /var/lib/clashweb-core/rules/. "$task_staging/old/"
install -m 0640 -o clashweb -g clashweb-core "$task_staging/new/"*.mrs /var/lib/clashweb-core/rules/
if ! sudo -u clashweb-mihomo /usr/local/bin/mihomo -t -d /var/lib/clashweb-core -f /var/lib/clashweb-core/config.yaml; then
cp -a "$task_staging/old/." /var/lib/clashweb-core/rules/
echo 'Validation failed; previous rules restored.' >&2
exit 1
fi
if ! systemctl restart clashweb-mihomo.service || ! systemctl is-active --quiet clashweb-mihomo.service; then
cp -a "$task_staging/old/." /var/lib/clashweb-core/rules/
systemctl restart clashweb-mihomo.service
echo 'Reload failed; previous rules restored.' >&2
exit 1
fi
echo 'Rule resources updated. Select a node in the UI if needed.'