From 226fbf901f4e5204a581016c8fdae42a0f27a627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E7=8A=80=E9=BA=9F?= Date: Sun, 13 Sep 2026 17:57:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(kuma):=20=E5=A4=87=E5=A5=BD=20Bark=20?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=A2=9E=E5=BC=BA=E8=A1=A5=E4=B8=81=E4=B8=8E?= =?UTF-8?q?=E7=B4=A0=E6=9D=90=EF=BC=88=E5=BE=85=E9=83=A8=E7=BD=B2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .workbuddy/memory/2026-09-13.md | 2 + .workbuddy/memory/DEPLOY.md | 11 +- .workbuddy/tmp/bark-assets/down.png | Bin 0 -> 48725 bytes .workbuddy/tmp/bark-assets/icon.png | Bin 0 -> 22523 bytes .workbuddy/tmp/bark-assets/up.png | Bin 0 -> 77547 bytes .workbuddy/tmp/bark.js | 194 ++++++++++++++++++++++++++ .workbuddy/tmp/deploy-bark-custom.ps1 | 72 ++++++++++ .workbuddy/tmp/deploy-bark-custom.sh | 85 +++++++++++ .workbuddy/tmp/make-bark-assets.py | 126 +++++++++++++++++ .workbuddy/tmp/recon-assets.sh | 27 ++++ .workbuddy/tmp/status.xpcool.com.conf | 11 ++ 11 files changed, 527 insertions(+), 1 deletion(-) create mode 100644 .workbuddy/tmp/bark-assets/down.png create mode 100644 .workbuddy/tmp/bark-assets/icon.png create mode 100644 .workbuddy/tmp/bark-assets/up.png create mode 100644 .workbuddy/tmp/bark.js create mode 100644 .workbuddy/tmp/deploy-bark-custom.ps1 create mode 100644 .workbuddy/tmp/deploy-bark-custom.sh create mode 100644 .workbuddy/tmp/make-bark-assets.py create mode 100644 .workbuddy/tmp/recon-assets.sh diff --git a/.workbuddy/memory/2026-09-13.md b/.workbuddy/memory/2026-09-13.md index 0c33c71..a7e3b59 100644 --- a/.workbuddy/memory/2026-09-13.md +++ b/.workbuddy/memory/2026-09-13.md @@ -1,5 +1,7 @@ # 2026-09-13 +2026-09-13 | CHG | 备好 Bark 通知增强(自定义图标/分组/重要警告/图片/角标):Kuma 官方 provider 不支持这些参数,改为「只读挂载覆盖 `/app/server/notification-providers/bark.js`」实现;素材用 Pillow 手绘(icon/down/up 三张)自托管到 `/data/www/bark-assets/`;**因沙箱连续拦截 SSH,部署改由用户执行 `.workbuddy/tmp/deploy-bark-custom.ps1`,尚未落地** +2026-09-13 | FIX | 本机取图脚本踩坑:PIL 波形归一化数值超出画布(v=-6 → 偏移 6×振幅)导致尖峰压到文字上;改为所有波形值控制在 [-1,1] 并加 assert 断言 2026-09-13 | CHG | Uptime Kuma 接入 Bark 告警:新增通知渠道「Bark 手机推送」(type 必须写 `Bark` 首字母大写,端点用容器网关 `http://172.17.0.1:8081/`),已关联全部 9 个监控;用临时监控触发真实 DOWN 完成端到端验证(Bark 日志实测收到并返 200)后清理 2026-09-13 | DEP | 安装用户级技能 `design-taste-frontend`(taste-skill v2,源 github.com/Leonxlnx/taste-skill,上游路径 skills/taste-skill/SKILL.md);安装前完成安全审计(P2 安全,纯 Markdown 无脚本);description 追加中文触发词;来源与审计记录见 `~/.workbuddy/skills/design-taste-frontend/SOURCE.md` 2026-09-13 | FIX | 本机 git 走系统代理(HTTP_PROXY=127.0.0.1:58412)导致 github clone 失败(Empty reply / CONNECT 502)→ 清空代理 env 后用 `curl --noproxy "*"` 拉 codeload tarball 再解压可正常下载;另 Bash 工具在本机不可用(shim 报 dirname: command not found),需改用 PowerShell diff --git a/.workbuddy/memory/DEPLOY.md b/.workbuddy/memory/DEPLOY.md index 912b184..e01b55a 100644 --- a/.workbuddy/memory/DEPLOY.md +++ b/.workbuddy/memory/DEPLOY.md @@ -52,7 +52,7 @@ ### Uptime Kuma(status.xpcool.com,2026-09-13 部署) - 镜像 `louislam/uptime-kuma:2.5.3`(2.x 稳定线;1.x 已停维护,v2 有破坏性变更,跨大版本需迁移数据库)。 -- 启动参数:`--restart unless-stopped -p 127.0.0.1:3001:3001 -e TZ=Asia/Shanghai -v /data/uptime-kuma:/app/data --memory 512m`。服务器内存仅 3.7G 且 **swap=0**,必须限内存,避免 OOM 波及同机其他容器。 +- 启动参数:`--restart unless-stopped -p 127.0.0.1:3001:3001 -e TZ=Asia/Shanghai -v /data/uptime-kuma:/app/data -v /data/uptime-kuma-patch/bark.js:/app/server/notification-providers/bark.js:ro --memory 512m`(**最后一个 -v 是 Bark 增强补丁挂载,2026-09-13 加**;没部署前可省略)。服务器内存仅 3.7G 且 **swap=0**,必须限内存,避免 OOM 波及同机其他容器。 - **v2 首次启动是「选择数据库」引导页**(逻辑在 `/app/server/setup-database.js`,读 `data/db-config.json`),选 SQLite 即可,之后进入创建管理员账号页。Uptime Kuma **没有找回密码入口**,密码丢失只能改数据库/清 2FA,务必记牢。 - nginx 反代**必须透传 WebSocket**(`proxy_http_version 1.1` + `Upgrade`/`Connection` 头),否则面板无限重连、状态刷不出来。 - **证书**:腾讯云免费 DV,CN/SAN 均为 `status.xpcool.com`,**有效期仅 3 个月(至 2026-12-12),到期必须重新申请并替换**;落点 `/data/nginx/ssl/status.xpcool.com/`(crt/pem/csr 644、key 600),本地源 `E:\CentOS\ssl\status.xpcool.com_nginx\`。部署时用 `openssl x509 -pubkey | md5` 与 `openssl pkey -pubout | md5` 比对,确认证书与私钥配套。 @@ -76,3 +76,12 @@ - 脚本:`.workbuddy/tmp/kuma-bark-setup.sh`(幂等写入)、`.workbuddy/tmp/kuma-bark-verify.sh`(端到端验证 + 自清理);改库前必备份 `/tmp/kuma.db.backup.<时间戳>`。 - **端到端验证方法(推荐复用)**:临时插一个指向 `http://127.0.0.1:9/` 的监控(`interval=20/retry_interval=20/maxretries=0`)→ 重启容器 → 十几秒即 DOWN 并推送 → 查 `docker logs bark` 确认真的收到 GET 推送(200)→ 删掉临时监控与其 heartbeat 再重启。全程不清真站点,可靠性最高。 - 全部 9 个监控 `expiry_notification=1`(证书到期通知已开),当前均 UP。 +- **Bark 通知增强(2026-09-13 · 自定义图标/分组/重要警告/图片/角标)**:⏳ **补丁与素材已备好,待执行部署**(沙箱连续拦截 SSH,改由 `.workbuddy/tmp/deploy-bark-custom.ps1` 由用户本机一键执行)。官方 provider 只支持 `barkEndpoint/barkGroup/barkSound`,且图标写死 GitHub 上的 Kuma logo。扩展办法 = **用只读挂载覆盖 provider 单文件**: + - 宿主机 `/data/uptime-kuma-patch/bark.js` ←→ 容器 `/app/server/notification-providers/bark.js`(`:ro`)。补丁源码在 `.workbuddy/tmp/bark.js`,改动点集中在 `statusParams()` 与 `additionalParameters()`,均以中文注释标了「xpcool 定制」。 + - 行为:DOWN → `level=critical`(重要警告,穿透静音/专注)+ `volume=5` + `badge=auto`(角标自增)+ `isArchive=1` + 异常配图;UP → `badge=0`(清角标)+ 恢复配图。`call=1`(持续响铃 30s)**默认关闭**,要开就在 config 里加 `"barkCall": true`。 + - 所有项都可用通知 `config` 里的同名字段覆盖:`barkIcon / barkGroup / barkSound / barkLevel / barkVolume / barkCall / barkBadge / barkImageDown / barkImageUp / barkBadgeReset`。**但 UI 里保存通知会重写 config、丢掉这些额外字段** —— 保持默认行为即可(补丁有兜底默认值),要改就走 SQL。 + - 素材自托管在 `https://status.xpcool.com/bark-assets/{icon,down,up}.png`(落点 `/data/www/bark-assets/`,nginx 新增 `location /bark-assets/`,`alias + default_type image/png + expires 7d`)。**必须公网 HTTPS 可匿名访问**:图是手机端收到通知后自己去拉的。 + - 素材由 `.workbuddy/tmp/make-bark-assets.py`(Pillow 手绘)生成,纯几何 + 微软雅黑文字,体积 22~78 KB。 + - **⚠️ 升级 uptime-kuma 镜像后**:`bark.js` 会被挂载覆盖成旧版实现,必须重新对照新版官方 `bark.js` 更新补丁(或临时去掉挂载)。 + - **⚠️ 重建容器必须带回挂载**,否则补丁失效(表现为:通知还发,但图标/重要警告/配图/角标全没了)。完整启动参数见上。 + - 部署脚本:`.workbuddy/tmp/deploy-bark-custom.sh`(远端执行,幂等)+ `.workbuddy/tmp/deploy-bark-custom.ps1`(本机一键:上传 → 部署 → 端到端验证,日志写 `.workbuddy/tmp/logs/`)。 diff --git a/.workbuddy/tmp/bark-assets/down.png b/.workbuddy/tmp/bark-assets/down.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfb716e0244d2f3712227076c1dd7d5cbe2c94c GIT binary patch literal 48725 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

nM9<#mNaV?s6X(Ws)OOPib{>c5TyQ%9+ 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 literal 0 HcmV?d00001 diff --git a/.workbuddy/tmp/bark-assets/up.png b/.workbuddy/tmp/bark-assets/up.png new file mode 100644 index 0000000000000000000000000000000000000000..b14741679cf4dfe265154306e1e55624af373e8d GIT binary patch literal 77547 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

G@5C< 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 literal 0 HcmV?d00001 diff --git a/.workbuddy/tmp/bark.js b/.workbuddy/tmp/bark.js new file mode 100644 index 0000000..76c2ca5 --- /dev/null +++ b/.workbuddy/tmp/bark.js @@ -0,0 +1,194 @@ +// +// bark.js —— xpcool 定制版(基于 Uptime Kuma 2.5.3 官方实现) +// +// 为什么要定制:官方 Bark provider 只支持 endpoint / group / sound 三个参数, +// 且图标写死成 GitHub 上的 Uptime Kuma 图标。本项目需要: +// 1. 自定义推送图标(自托管 PNG,手机端直接拉取) +// 2. 推送消息分组(可选 config.barkGroup 覆盖) +// 3. 重要警告 level=critical,穿透静音 / 专注模式(仅 DOWN) +// 4. 图片推送通知 image,按状态区分「异常图 / 恢复图」 +// 5. 设置角标 badge(DOWN 自增、UP 清零) +// 6. 附带:call=1 持续响铃、isArchive=1 自动保存(仅 DOWN) +// +// 部署方式:宿主文件 /data/uptime-kuma-patch/bark.js 只读挂载覆盖本路径。 +// ⚠️ 升级 uptime-kuma 镜像后需重新核对此文件与新版官方实现的差异。 +// +const NotificationProvider = require("./notification-provider"); +const { DOWN, UP } = require("../../src/util"); +const { default: axios } = require("axios"); + +// ===== xpcool 定制:素材地址与默认值 ===== +const barkNotificationAvatar = "https://status.xpcool.com/bark-assets/icon.png"; // 自定义推送图标 +const IMAGE_DOWN = "https://status.xpcool.com/bark-assets/down.png"; // 服务异常配图 +const IMAGE_UP = "https://status.xpcool.com/bark-assets/up.png"; // 服务恢复配图 +const DEFAULT_GROUP = "Uptime-Kuma"; // 默认推送分组 + +const successMessage = "Successes!"; + +class Bark extends NotificationProvider { + name = "Bark"; + + /** + * @inheritdoc + */ + async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { + let barkEndpoint = notification.barkEndpoint; + + // check if the endpoint has a "/" suffix, if so, delete it first + if (barkEndpoint.endsWith("/")) { + barkEndpoint = barkEndpoint.substring(0, barkEndpoint.length - 1); + } + + // xpcool 定制:按 UP / DOWN 状态生成附加参数(重要警告、角标、配图等) + const status = heartbeatJSON != null ? heartbeatJSON["status"] : null; + const extra = this.statusParams(notification, status); + + if (msg != null && heartbeatJSON != null && status === UP) { + let title = "UptimeKuma Monitor Up"; + return await this.postNotification(notification, title, msg, barkEndpoint, extra); + } + + if (msg != null && heartbeatJSON != null && status === DOWN) { + let title = "UptimeKuma Monitor Down"; + return await this.postNotification(notification, title, msg, barkEndpoint, extra); + } + + if (msg != null) { + let title = "UptimeKuma Message"; + return await this.postNotification(notification, title, msg, barkEndpoint, extra); + } + } + + /** + * xpcool 定制:按告警状态生成 Bark 附加参数 + * 所有项都可用通知 config 里的同名字段覆盖(barkLevel / barkVolume / barkCall / + * barkBadge / barkImageDown / barkImageUp / barkBadgeReset),无需改代码。 + * @param {BeanModel} notification 通知配置 + * @param {number|null} status 心跳状态(0=DOWN 1=UP) + * @returns {object} 追加到 Bark 请求上的参数 + */ + statusParams(notification, status) { + const p = {}; + + if (status === DOWN) { + // 重要警告:无视静音与专注模式(手机上需在 Bark App 里允许「重要警告」) + p.level = notification.barkLevel || "critical"; + p.volume = notification.barkVolume != null ? notification.barkVolume : 5; + + // 持续响铃约 30 秒:默认关闭(避免半夜长时间吵闹), + // 想开启就在通知 config 里加 "barkCall": true + if (notification.barkCall === true) { + p.call = 1; + } + + // 角标:auto = 自动累加未处理告警数,也可填具体数字 + p.badge = notification.barkBadge != null ? notification.barkBadge : "auto"; + + // 自动保存到通知中心,便于事后回看 + p.isArchive = 1; + + // 异常配图 + p.image = notification.barkImageDown || IMAGE_DOWN; + } else if (status === UP) { + // 恢复配图 + p.image = notification.barkImageUp || IMAGE_UP; + + // 恢复时清掉角标(设 barkBadgeReset=false 可保留) + if (notification.barkBadgeReset !== false) { + p.badge = 0; + } + } + + return p; + } + + /** + * Add additional parameter for Bark v1 endpoints. + * Leads to better on device styles (iOS 15 optimized) + * @param {BeanModel} notification Notification to be sent + * @param {object} extra xpcool 定制:状态相关附加参数 + * @returns {string} Additional URL parameters + */ + additionalParameters(notification, extra = {}) { + // xpcool 定制:图标改为自托管 PNG(可被 config.barkIcon 覆盖) + let params = "?icon=" + encodeURIComponent(notification.barkIcon || barkNotificationAvatar); + + // 推送消息分组 + params += "&group=" + encodeURIComponent(notification.barkGroup || DEFAULT_GROUP); + + // picked a sound, this should follow system's mute status when arrival + params += "&sound=" + encodeURIComponent(notification.barkSound || "telegraph"); + + // xpcool 定制:追加状态相关参数(level / volume / call / badge / image / isArchive) + for (const key of Object.keys(extra)) { + const value = extra[key]; + if (value === undefined || value === null || value === "") { + continue; + } + params += "&" + key + "=" + encodeURIComponent(value); + } + + return params; + } + + /** + * Check if result is successful + * @param {object} result Axios response object + * @returns {void} + * @throws {Error} The status code is not in range 2xx + */ + checkResult(result) { + if (result.status == null) { + throw new Error("Bark notification failed with invalid response!"); + } + if (result.status < 200 || result.status >= 300) { + throw new Error("Bark notification failed with status code " + result.status); + } + } + + /** + * Send the message + * @param {BeanModel} notification Notification to be sent + * @param {string} title Message title + * @param {string} subtitle Message + * @param {string} endpoint Endpoint to send request to + * @param {object} extra xpcool 定制:状态相关附加参数 + * @returns {Promise} Success message + */ + async postNotification(notification, title, subtitle, endpoint, extra = {}) { + let result; + let config = this.getAxiosConfigWithProxy({}); + + if (notification.apiVersion === "v1" || notification.apiVersion == null) { + // url encode title and subtitle + title = encodeURIComponent(title); + subtitle = encodeURIComponent(subtitle); + const params = this.additionalParameters(notification, extra); + result = await axios.get(`${endpoint}/${title}/${subtitle}${params}`, config); + } else { + // xpcool 定制:v2(POST) 分支同样带上附加参数 + const body = { + title, + body: subtitle, + icon: notification.barkIcon || barkNotificationAvatar, + sound: notification.barkSound || "telegraph", + group: notification.barkGroup || DEFAULT_GROUP, + }; + for (const key of Object.keys(extra)) { + if (extra[key] !== undefined && extra[key] !== null) { + body[key] = extra[key]; + } + } + result = await axios.post(endpoint, body, config); + } + + this.checkResult(result); + if (result.statusText != null) { + return "Bark notification succeed: " + result.statusText; + } + // because returned in range 200 ..< 300 + return successMessage; + } +} + +module.exports = Bark; diff --git a/.workbuddy/tmp/deploy-bark-custom.ps1 b/.workbuddy/tmp/deploy-bark-custom.ps1 new file mode 100644 index 0000000..eb543aa --- /dev/null +++ b/.workbuddy/tmp/deploy-bark-custom.ps1 @@ -0,0 +1,72 @@ +# ===================================================================== +# 一键部署:Uptime Kuma 的 Bark 通知增强 +# 自定义推送图标 / 消息分组 / 重要警告 / 图片推送 / 角标 +# 2026-09-13 +# +# 用法(在本机 PowerShell 里执行): +# powershell -ExecutionPolicy Bypass -File "E:\Project\workbuddy.xpcool.com\.workbuddy\tmp\deploy-bark-custom.ps1" +# +# 执行完会把全过程日志写到 logs\bark-deploy-<时间戳>.log,把它发我即可。 +# ===================================================================== + +$ErrorActionPreference = "Continue" + +$T = "E:\Project\workbuddy.xpcool.com\.workbuddy\tmp" +$scp = "$env:SystemRoot\System32\OpenSSH\scp.exe" +$ssh = "$env:SystemRoot\System32\OpenSSH\ssh.exe" +$key = "$env:USERPROFILE\.ssh\xpcool_ed25519" +$host_ = "xxcool@193.112.118.168" +$port = "22025" + +$logDir = Join-Path $T "logs" +New-Item -ItemType Directory -Path $logDir -Force | Out-Null +$logFile = Join-Path $logDir ("bark-deploy-{0}.log" -f (Get-Date -Format "yyyyMMdd-HHmmss")) +$log = New-Object System.Collections.Generic.List[string] + +function Say($text) { + Write-Host $text + $log.Add($text) +} + +Say "===== Bark 通知增强部署 $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') =====" + +# --- 1. 上传(单个文件逐个传:多文件 scp 会静默丢文件) --- +$pairs = @( + @("$T\bark-assets\icon.png", "/tmp/bark-icon.png"), + @("$T\bark-assets\down.png", "/tmp/bark-down.png"), + @("$T\bark-assets\up.png", "/tmp/bark-up.png"), + @("$T\bark.js", "/tmp/bark.js"), + @("$T\status.xpcool.com.conf", "/tmp/status.xpcool.com.conf"), + @("$T\deploy-bark-custom.sh", "/tmp/deploy-bark-custom.sh"), + @("$T\kuma-bark-verify.sh", "/tmp/kuma-bark-verify.sh") +) + +Say "" +Say "--- 1. 上传文件 ---" +foreach ($p in $pairs) { + $leaf = Split-Path $p[0] -Leaf + if (-not (Test-Path $p[0])) { Say ("!! 本地缺少 {0},跳过" -f $leaf); continue } + $out = & $scp -o BatchMode=yes -o StrictHostKeyChecking=no -i $key -P $port $p[0] "$host_:$($p[1])" 2>&1 + Say ("scp {0} -> exit={1} {2}" -f $leaf, $LASTEXITCODE, ($out -join " ")) +} + +$out = & $ssh -o BatchMode=yes -o StrictHostKeyChecking=no -i $key -p $port $host_ "ls -l /tmp/bark-*.png /tmp/bark.js /tmp/status.xpcool.com.conf /tmp/deploy-bark-custom.sh /tmp/kuma-bark-verify.sh" 2>&1 +Say ($out -join "`n") + +# --- 2. 执行部署 --- +Say "" +Say "--- 2. 部署(素材 + provider 补丁 + nginx + 重建容器) ---" +$out = & $ssh -o BatchMode=yes -o StrictHostKeyChecking=no -i $key -p $port $host_ "chmod +x /tmp/deploy-bark-custom.sh && /tmp/deploy-bark-custom.sh" 2>&1 +Say ($out -join "`n") + +# --- 3. 端到端验证(临时监控触发真实 DOWN,验证后自动清理) --- +Say "" +Say "--- 3. 端到端验证(会往你手机推一条真实的 Down 告警) ---" +$out = & $ssh -o BatchMode=yes -o StrictHostKeyChecking=no -i $key -p $port $host_ "chmod +x /tmp/kuma-bark-verify.sh && /tmp/kuma-bark-verify.sh" 2>&1 +Say ($out -join "`n") + +Say "" +Say "===== 结束,日志:$logFile =====" +$log -join "`r`n" | Out-File -FilePath $logFile -Encoding utf8 +Write-Host "" +Write-Host ("日志已保存:" + $logFile) -ForegroundColor Green diff --git a/.workbuddy/tmp/deploy-bark-custom.sh b/.workbuddy/tmp/deploy-bark-custom.sh new file mode 100644 index 0000000..e745b2f --- /dev/null +++ b/.workbuddy/tmp/deploy-bark-custom.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# 为 Uptime Kuma 的 Bark 通知启用:自定义图标 / 消息分组 / 重要警告 / 图片推送 / 角标 +# 2026-09-13 +# 前置:以下文件需先 scp 到 /tmp(单个文件逐个传,多文件 scp 会静默丢文件) +# /tmp/bark-icon.png /tmp/bark-down.png /tmp/bark-up.png +# /tmp/bark.js /tmp/status.xpcool.com.conf +# 幂等:可重复执行 + +ASSET_DIR=/data/www/bark-assets +PATCH_DIR=/data/uptime-kuma-patch +IMAGE=louislam/uptime-kuma:2.5.3 +TS=$(date +%Y%m%d%H%M%S) + +echo "=== 0. 备份当前容器配置与 nginx 配置(便于回滚) ===" +sudo docker inspect uptime-kuma > "/tmp/kuma-inspect.$TS.json" +echo "inspect 已存 /tmp/kuma-inspect.$TS.json" +sudo docker inspect uptime-kuma --format 'restart={{json .HostConfig.RestartPolicy}} mem={{.HostConfig.Memory}}B port={{json .HostConfig.PortBindings}} env={{json .Config.Env}}' +sudo cp -a /data/nginx/conf.d/status.xpcool.com.conf "/data/nginx/conf.d/status.xpcool.com.conf.bak.$TS" + +echo "" +echo "=== 1. 部署 Bark 素材 ===" +sudo mkdir -p "$ASSET_DIR" "$PATCH_DIR" +for f in icon down up; do + if [ -f "/tmp/bark-$f.png" ]; then + sudo mv -f "/tmp/bark-$f.png" "$ASSET_DIR/$f.png" + fi +done +sudo chmod 644 "$ASSET_DIR"/*.png +sudo chmod 755 "$ASSET_DIR" +ls -l "$ASSET_DIR" + +echo "" +echo "=== 2. 安装 provider 补丁 ===" +if [ -f /tmp/bark.js ]; then + sudo mv -f /tmp/bark.js "$PATCH_DIR/bark.js" +fi +sudo chmod 644 "$PATCH_DIR/bark.js" +sudo cp -f "$PATCH_DIR/bark.js" /tmp/_bark_check.js +sudo docker cp /tmp/_bark_check.js uptime-kuma:/tmp/_bark_check.js > /dev/null +sudo docker exec uptime-kuma node --check /tmp/_bark_check.js && echo "补丁语法检查 OK" +sudo docker exec uptime-kuma rm -f /tmp/_bark_check.js +rm -f /tmp/_bark_check.js +echo "补丁 md5:$(md5sum "$PATCH_DIR/bark.js" | cut -d' ' -f1)" + +echo "" +echo "=== 3. 部署 nginx 配置(新增 /bark-assets/ 静态位置) ===" +if [ -f /tmp/status.xpcool.com.conf ]; then + sudo mv -f /tmp/status.xpcool.com.conf /data/nginx/conf.d/status.xpcool.com.conf +fi +sudo nginx -t +sudo systemctl reload nginx +echo "nginx reload OK" + +echo "" +echo "=== 4. 公网取图验证(手机端要能直接拉到) ===" +for f in icon down up; do + curl -s -o /dev/null -m 15 -w "$f.png code=%{http_code} type=%{content_type} size=%{size_download}\n" \ + "https://status.xpcool.com/bark-assets/$f.png" +done + +echo "" +echo "=== 5. 重建容器以挂载补丁(数据卷 /data/uptime-kuma 不变) ===" +sudo docker rm -f uptime-kuma > /dev/null 2>&1 +sudo docker run -d --name uptime-kuma --restart unless-stopped \ + -p 127.0.0.1:3001:3001 \ + -e TZ=Asia/Shanghai \ + -v /data/uptime-kuma:/app/data \ + -v /data/uptime-kuma-patch/bark.js:/app/server/notification-providers/bark.js:ro \ + --memory 512m \ + "$IMAGE" > /dev/null +sleep 20 +sudo docker ps --filter name=uptime-kuma --format '{{.Names}} | {{.Status}} | {{.Ports}}' + +echo "" +echo "=== 6. 确认补丁确实生效 ===" +echo -n "宿主机补丁 md5 : "; md5sum "$PATCH_DIR/bark.js" | cut -d' ' -f1 +echo -n "容器内文件 md5 : "; sudo docker exec uptime-kuma md5sum /app/server/notification-providers/bark.js 2>&1 | cut -d' ' -f1 +echo -n "定制标记行数 : "; sudo docker exec uptime-kuma grep -c "xpcool 定制" /app/server/notification-providers/bark.js 2>&1 +echo -n "图标常量 : "; sudo docker exec uptime-kuma grep -m1 "barkNotificationAvatar =" /app/server/notification-providers/bark.js 2>&1 + +echo "" +echo "=== 7. 面板可用性 ===" +curl -s -o /dev/null -m 10 -w "panel=%{http_code}\n" http://127.0.0.1:3001/ +sudo docker exec uptime-kuma sqlite3 /app/data/kuma.db "SELECT id,name,active,json_extract(config,'\$.type') FROM notification;" +echo "DONE" diff --git a/.workbuddy/tmp/make-bark-assets.py b/.workbuddy/tmp/make-bark-assets.py new file mode 100644 index 0000000..a6f7e7b --- /dev/null +++ b/.workbuddy/tmp/make-bark-assets.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +""" +生成 Bark 推送用的图标与告警配图(2026-09-13,v2 修正版) +产物: + icon.png 512x512 通知图标 + down.png 1200x630 服务异常告警配图(平线 = 心跳停止) + up.png 1200x630 服务恢复配图(正常心电) +要点:所有坐标必须落在画布内;波形与文字分区,互不重叠。 +""" +import os +from PIL import Image, ImageDraw, ImageFont, ImageFilter + +OUT = r"E:\Project\workbuddy.xpcool.com\.workbuddy\tmp\bark-assets" +os.makedirs(OUT, exist_ok=True) + +FONT_BOLD = r"C:\Windows\Fonts\msyhbd.ttc" +FONT_REG = r"C:\Windows\Fonts\msyh.ttc" + + +def vgrad(size, top, bottom): + """竖向线性渐变""" + w, h = size + base = Image.new("RGB", (1, h)) + d = ImageDraw.Draw(base) + for y in range(h): + t = y / max(h - 1, 1) + d.point((0, y), tuple(int(top[i] + (bottom[i] - top[i]) * t) for i in range(3))) + return base.resize((w, h), Image.BILINEAR) + + +def rounded_mask(size, radius): + m = Image.new("L", size, 0) + ImageDraw.Draw(m).rounded_rectangle([0, 0, size[0] - 1, size[1] - 1], radius=radius, fill=255) + return m + + +# 归一化波形(v 为相对基线的倍数,正=向上);幅度一律控制在 [-1, 1] 内 +SHAPE_NORMAL = [ + (0.00, 0.00), (0.12, 0.00), (0.16, 0.12), (0.20, 0.00), + (0.30, 0.00), (0.33, 0.18), (0.36, 1.00), (0.40, -0.42), + (0.44, 0.00), (0.58, 0.00), (0.64, 0.16), (0.70, 0.00), (1.00, 0.00), +] +SHAPE_FLAT = [ # 心跳停止:几乎一条直线,末尾一点微弱扰动 + (0.00, 0.00), (0.62, 0.00), (0.68, -0.10), (0.74, 0.06), (1.00, 0.00), +] + + +def ecg_points(x0, x1, ybase, amp, shape, cycles=1): + pts, span = [], x1 - x0 + for c in range(cycles): + for t, v in shape: + pts.append((x0 + (c + t) * span / cycles, ybase - v * amp)) + ymin = min(p[1] for p in pts) + ymax = max(p[1] for p in pts) + assert amp + 1 < ybase < 630 - amp, f"基线 {ybase} 超出安全范围" + return pts, ymin, ymax + + +def draw_glow_line(img, pts, color, width, glow=16): + """带柔和外发光的折线""" + layer = Image.new("RGBA", img.size, (0, 0, 0, 0)) + ImageDraw.Draw(layer).line(pts, fill=color + (105,), width=width + glow * 2, joint="curve") + img.alpha_composite(layer.filter(ImageFilter.GaussianBlur(glow))) + ImageDraw.Draw(img).line(pts, fill=color + (255,), width=width, joint="curve") + + +def center_text(d, cx, y, text, font, fill): + l, t, r, b = d.textbbox((0, 0), text, font=font) + d.text((cx - (r - l) / 2 - l, y), text, font=font, fill=fill) + + +# ---------------- 1. 通知图标 512x512 ---------------- +def make_icon(): + S = 512 + img = vgrad((S, S), (30, 27, 75), (15, 23, 42)).convert("RGBA") + img.putalpha(rounded_mask((S, S), 116)) + + d = ImageDraw.Draw(img) + d.rounded_rectangle([14, 14, S - 15, S - 15], radius=102, outline=(99, 102, 241, 95), width=3) + + pts, _, _ = ecg_points(80, S - 80, 272, 128, SHAPE_NORMAL, cycles=1) + draw_glow_line(img, pts, (34, 211, 238), 20, glow=15) + d.ellipse([65, 257, 95, 287], fill=(165, 243, 252, 255)) + + img.convert("RGB").save(os.path.join(OUT, "icon.png"), optimize=True) + print("icon.png OK") + + +# ---------------- 2. 告警配图 1200x630 ---------------- +def make_banner(name, top, bottom, line, dot, title, subtitle, flat): + W, H = 1200, 630 + img = vgrad((W, H), top, bottom).convert("RGBA") + + halo = Image.new("RGBA", (W, H), (0, 0, 0, 0)) + ImageDraw.Draw(halo).ellipse([700, -260, 1460, 500], fill=dot + (52,)) + img.alpha_composite(halo.filter(ImageFilter.GaussianBlur(95))) + + # 波形放在上半区,基线 175,振幅 62 → 范围 113~237,与下方文字完全分离 + shape = SHAPE_FLAT if flat else SHAPE_NORMAL + pts, ymin, ymax = ecg_points(110, W - 110, 175, 62, shape, cycles=1 if flat else 3) + draw_glow_line(img, pts, line, 11, glow=13) + + # 基线参考 + 底部细分隔线 + d = ImageDraw.Draw(img) + d.line([(110, 175), (W - 110, 175)], fill=line + (55,), width=2) + d.line([(110, 300), (W - 110, 300)], fill=line + (70,), width=2) + + center_text(d, W / 2, 350, title, ImageFont.truetype(FONT_BOLD, 96), (255, 255, 255, 255)) + center_text(d, W / 2, 480, subtitle, ImageFont.truetype(FONT_REG, 32), line + (230,)) + + # 左下角状态点 + d.ellipse([112, 515, 148, 551], fill=dot + (255,)) + + img.convert("RGB").save(os.path.join(OUT, f"{name}.png"), optimize=True) + print(f"{name}.png OK (波形 y: {ymin:.0f}~{ymax:.0f})") + + +make_icon() +make_banner("down", (127, 29, 29), (43, 6, 6), (252, 165, 165), (239, 68, 68), + "服务异常", "UPTIME KUMA · SERVICE DOWN", flat=True) +make_banner("up", (6, 78, 59), (2, 34, 25), (110, 231, 183), (16, 185, 129), + "服务已恢复", "UPTIME KUMA · SERVICE RECOVERED", flat=False) + +print("---") +for f in sorted(os.listdir(OUT)): + print(f"{f} {os.path.getsize(os.path.join(OUT, f))} bytes") diff --git a/.workbuddy/tmp/recon-assets.sh b/.workbuddy/tmp/recon-assets.sh new file mode 100644 index 0000000..7f2e527 --- /dev/null +++ b/.workbuddy/tmp/recon-assets.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# 勘查:静态资源落点 + 现有 logo 资源(用于 Bark 自定义图标/配图) +echo "=== /data/www ===" +ls -1 /data/www 2>/dev/null || echo "无 /data/www" + +echo "" +echo "=== 各站点的 favicon / logo 资源 ===" +for d in /data/www/*/; do + [ -d "$d" ] || continue + found=$(find "$d" -maxdepth 2 -iregex ".*\(favicon\|logo\|icon\).*\.\(png\|ico\|svg\|jpg\|webp\)" 2>/dev/null | head -6) + if [ -n "$found" ]; then + echo "--- $d" + echo "$found" + fi +done + +echo "" +echo "=== /data 目录 ===" +ls -1 /data + +echo "" +echo "=== 当前 status 站点配置 ===" +cat /data/nginx/conf.d/status.xpcool.com.conf + +echo "" +echo "=== bark 容器信息 ===" +sudo docker inspect bark --format '{{.Config.Image}} | {{json .NetworkSettings.Ports}} | {{json .Mounts}}' diff --git a/.workbuddy/tmp/status.xpcool.com.conf b/.workbuddy/tmp/status.xpcool.com.conf index 85b00c7..3529a70 100644 --- a/.workbuddy/tmp/status.xpcool.com.conf +++ b/.workbuddy/tmp/status.xpcool.com.conf @@ -1,6 +1,7 @@ # status.xpcool.com 服务监控面板(Uptime Kuma 2.5.3) # 反代后端容器 uptime-kuma:127.0.0.1:3001 # 2026-09-13 部署;证书为腾讯云免费 DV 证书(本地源 E:\CentOS\ssl\status.xpcool.com_nginx\) +# 2026-09-13 追加 /bark-assets/ 静态位置,供 Bark 推送取图标与告警配图(手机端直接访问,必须公开) # HTTP -> HTTPS 跳转 server { @@ -24,6 +25,16 @@ server { add_header X-Content-Type-Options nosniff always; add_header X-Frame-Options SAMEORIGIN always; + # Bark 推送素材:手机收到通知后会主动来拉取,故必须可匿名访问、走 HTTPS + location /bark-assets/ { + alias /data/www/bark-assets/; + default_type image/png; + autoindex off; + access_log off; + expires 7d; + add_header Cache-Control "public, max-age=604800"; + } + # 面板依赖 WebSocket 实时推送状态,必须透传 Upgrade 头,否则页面无限重连 location / { proxy_pass http://127.0.0.1:3001;