56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# 宝塔建站完成后钩子:为站点启用 Cloak 路由
|
||
|
|
# 用法:post_site.sh <域名> <网站根目录>
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
if [[ -f /etc/cloaka.env ]]; then
|
||
|
|
# shellcheck disable=SC1091
|
||
|
|
source /etc/cloaka.env
|
||
|
|
fi
|
||
|
|
CLOAK_ROOT="${CLOAK_ROOT:-/www/cloaka}"
|
||
|
|
|
||
|
|
SITE_DOMAIN="${1:-}"
|
||
|
|
SITE_PATH="${2:-}"
|
||
|
|
MARK_BEGIN="# BEGIN IPCLOAKAPI"
|
||
|
|
MARK_END="# END IPCLOAKAPI"
|
||
|
|
|
||
|
|
[[ -z "$SITE_DOMAIN" ]] && exit 0
|
||
|
|
|
||
|
|
VHOST="/www/server/panel/vhost/nginx/${SITE_DOMAIN}.conf"
|
||
|
|
SNIPPET_INST="${CLOAK_ROOT}/deploy/baota/nginx/cloaka-site.conf.installed"
|
||
|
|
|
||
|
|
if [[ ! -f "$VHOST" ]]; then
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ ! -f "$SNIPPET_INST" ]]; then
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
if ! grep -qF "$MARK_BEGIN" "$VHOST" 2>/dev/null; then
|
||
|
|
{
|
||
|
|
echo ""
|
||
|
|
echo "$MARK_BEGIN"
|
||
|
|
cat "$SNIPPET_INST"
|
||
|
|
echo "$MARK_END"
|
||
|
|
} >> "$VHOST"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ -f "${CLOAK_ROOT}/cong.php" ]]; then
|
||
|
|
php -r "
|
||
|
|
require '${CLOAK_ROOT}/cong.php';
|
||
|
|
require '${CLOAK_ROOT}/lib/Cloak/DomainRepository.php';
|
||
|
|
try {
|
||
|
|
\$pdo = DomainRepository::pdo();
|
||
|
|
DomainRepository::ensureTable(\$pdo);
|
||
|
|
\$host = DomainRepository::normalizeHostname('${SITE_DOMAIN}');
|
||
|
|
if (!DomainRepository::findByHostname(\$pdo, \$host)) {
|
||
|
|
DomainRepository::add(\$pdo, \$host);
|
||
|
|
}
|
||
|
|
} catch (Throwable \$e) {}
|
||
|
|
" 2>/dev/null || true
|
||
|
|
fi
|
||
|
|
|
||
|
|
nginx -t 2>/dev/null && nginx -s reload 2>/dev/null || true
|