From 583a15218ff79f658bbd091f8d672f10f945dcc1 Mon Sep 17 00:00:00 2001 From: sans Date: Sun, 19 Jul 2026 01:46:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E4=BC=9A=E5=9C=A8=E9=83=A8=E7=BD=B2=E6=88=90=E5=8A=9F?= =?UTF-8?q?/=E5=A4=B1=E8=B4=A5=E5=90=8E=E8=87=AA=E5=8A=A8=E8=B0=83?= =?UTF-8?q?=E7=94=A8=20/api/report=20=E4=B8=8A=E6=8A=A5=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E3=80=82=E5=90=8C=E6=AD=A5=E5=88=B0=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E9=9C=80=E8=A6=81=E9=87=8D=E6=96=B0=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC=EF=BC=88=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=8F=98=E4=BA=86=EF=BC=89=EF=BC=8C=E5=86=8D=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/templates_cert/deploy-cert.ps1.j2 | 4 +++- backend/templates_cert/deploy-cert.sh.j2 | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/templates_cert/deploy-cert.ps1.j2 b/backend/templates_cert/deploy-cert.ps1.j2 index b0b7b3a..f0899c7 100644 --- a/backend/templates_cert/deploy-cert.ps1.j2 +++ b/backend/templates_cert/deploy-cert.ps1.j2 @@ -36,15 +36,17 @@ Copy-Item "$CertDir\private.key" "$CertDir\private.key.bak" -ErrorAction Sil Move-Item "$TmpDir\fullchain.pem" "$CertDir\fullchain.pem" -Force Move-Item "$TmpDir\private.key" "$CertDir\private.key" -Force -# 5. 校验 & 重载 +# 5. 校验 & 重载 & 上报 try { Invoke-Expression $CheckCmd $remote | Out-File -NoNewline -Encoding ascii $VersionFile Invoke-Expression $ReloadCmd Write-Host "[$(Get-Date -Format o)] updated: $Domain -> $remote" + try { Invoke-WebRequest -Uri "$BaseUrl/api/report?domain=$EncodedDomain&status=success&message=deployed+v$remote" -Headers $headers -Method POST -UseBasicParsing -SkipCertificateCheck | Out-Null } catch {} } catch { Move-Item "$CertDir\fullchain.pem.bak" "$CertDir\fullchain.pem" -Force -ErrorAction SilentlyContinue Move-Item "$CertDir\private.key.bak" "$CertDir\private.key" -Force -ErrorAction SilentlyContinue Write-Error "[$(Get-Date -Format o)] FAILED: $Domain, rolled back" + try { Invoke-WebRequest -Uri "$BaseUrl/api/report?domain=$EncodedDomain&status=failed&message=check+failed+rolled+back" -Headers $headers -Method POST -UseBasicParsing -SkipCertificateCheck | Out-Null } catch {} exit 1 } diff --git a/backend/templates_cert/deploy-cert.sh.j2 b/backend/templates_cert/deploy-cert.sh.j2 index ea6b13e..8de3676 100644 --- a/backend/templates_cert/deploy-cert.sh.j2 +++ b/backend/templates_cert/deploy-cert.sh.j2 @@ -41,14 +41,16 @@ cp -f "${CERT_DIR}/private.key" "${CERT_DIR}/private.key.bak" 2>/dev/null || t mv -f "${TMP_DIR}/fullchain.pem" "${CERT_DIR}/fullchain.pem" mv -f "${TMP_DIR}/private.key" "${CERT_DIR}/private.key" -# 5. 校验 & 重载 +# 5. 校验 & 重载 & 上报 if ${CHECK_CMD}; then echo "${REMOTE}" > "${VERSION_FILE}" ${RELOAD_CMD} echo "[$(date -Is)] updated: ${DOMAIN} -> ${REMOTE}" + curl "${curl_opts[@]}" "${auth[@]}" -X POST "${BASE_URL}/api/report?domain=${DOMAIN}&status=success&message=deployed+v${REMOTE}" 2>/dev/null || true else mv -f "${CERT_DIR}/fullchain.pem.bak" "${CERT_DIR}/fullchain.pem" 2>/dev/null || true mv -f "${CERT_DIR}/private.key.bak" "${CERT_DIR}/private.key" 2>/dev/null || true echo "[$(date -Is)] FAILED: ${DOMAIN}, rolled back" >&2 + curl "${curl_opts[@]}" "${auth[@]}" -X POST "${BASE_URL}/api/report?domain=${DOMAIN}&status=failed&message=check+failed+rolled+back" 2>/dev/null || true exit 1 fi