跳转到主要内容

个人通知渠道

个人交付渠道将您自己的 Kanera 通知发送到电子邮件或浏览器推送以外的其他地方。

电子邮件和浏览器推送对大多数人来说都很有用,但它们并不是唯一有用的目标。 一些团队已经运行了自托管的通知服务器。 有些人希望在手机上收到提醒,但不想授予浏览器通知权限。 Kanera 将事件放入脚本、主仪表板或待命工具中。

Kanera 支持三个个人目的地:

频道什么是适合
非法您通过手机或桌面应用程序订阅的通知服务器 开发者 或者您自己的实例。无需浏览器推送的手机提醒、共享团队主题、家庭实验室设置。
戈蒂菲具有自己的 Android 应用程序和 Web UI 的自托管通知服务器。完全自托管的警报,路径中没有第三方推送服务。
个人网钩您拥有的 HTTPS 端点,用于接收签名的 JSON。脚本、仪表板、呼叫路由、自定义自动化、您已经运行的聊天桥。

这些渠道是个人的,属于您的帐户,而不是工作区,其他人无法查看或更改它们。 它们不依赖于单位推送设置或浏览器通知权限。

他们需要 Pro 30天 Pro试用。它们在托管的 Free 上不可用,其中电子邮件、浏览器推送和应用程序内抽屉继续正常工作。参见 计划所需资源 下文。

如果您希望整个团队都能看到共享频道中的卡片活动,请使用 聊天通知目标 个人频道是私人源;聊天目标是团队源,由工作区管理员设置。

何时使用每个通道​

使用 非法 当您想要手机或桌面提醒,而不想使用浏览器推送时,安装 ntfy 应用程序,订阅一个主题,Kanera 会发布到该主题。 如果您已经在 ntfy 上发布了其他提醒,并且希望 Kanera 与其并列,这也是最简单的选择。

使用 戈蒂菲 Gotify 运行在您自己的服务器上,Android 应用直接与其通信,而 Kanera 只需要服务器 URL 和应用令牌,这样您就可以在任何时候都可以访问您的数据。

使用一个 个人 webhook 当您想要对通知做些什么而不是阅读它时。 常见用法:

  • 将提及和逾期卡片路由到待命或分机工具。
  • 将您的任务发布到个人聊天频道或您已经运行的机器人。
  • 将通知附加到日志、仪表板或个人数据库。
  • 将 Kanera 桥接到通知提供程序 Kanera 不直接支持。

计划所需资源​

个人交付渠道需要 Pro 或 Pro 试用版。 电子邮件、浏览器推送、应用内通知抽屉式导航栏、每日摘要、观看和 工作区规则 所有计划均可用,不受此影响。

主机 Free 上, 其他通知目的地 表演 ntfy、Gotify 和个人 webhook 在您的计划中不可用 是的,这是最好的。

如果一个组织从 Pro 或试用版升级到 Free,Kanera 会关闭每个人的 ntfy、Gotify 和 webhook 通道,不会删除任何内容:服务器 URL、主题、令牌、签名秘密和每种类型的首选项都会保留,任何等待发送的内容都会被丢弃,而不会延迟到达。 再次升级后,会恢复每个人启用的通道,因此无需重新连接任何内容。

设置它们的位置​

开放 个人资料设置 -> 通知 并扩大 其他通知目的地.

每个通道都有自己的卡,连接字段,一个 已启用 切换,通知类型切换,以及 保存, 测试, 和 删除 行动。

在您填写完通道所需的所有内容之前,无法启用通道。您在此处允许的内容是频道向您发送的最多内容: 工作区规则 可以为一个工作区静音一个通道,但绝不会让它发送超过这些设置允许的数量。

您的应用内通知抽屉式导航栏从不受这些设置的影响,它始终显示完整的 Feed。

其他通知目标扩展到 ntfy 设置卡,其中包含专用网络策略、连接字段和通知类型控件。

设置 ntfy​

  1. 选择服务器。使用 https://ntfy.sh 为公共服务,或您自己的实例,如 https://ntfy.example.com.
  2. 选择一个主题名称。将其视为公共服务的秘密,因为任何知道某个主题的人都可以订阅它。像这样的东西 kanera-a7f3c2-amelia 是比 kanera.
  3. 内 Kanera请输入密码 服务器URL 以及 主题。将查询字符串保留在服务器 URL 之外; Kanera 附加主题本身。
  4. 如果主题需要身份验证,请将访问令牌粘贴到 不记名令牌。它在开放服务器上是可选的,在受保护服务器上是必需的。
  5. 点击 保存,然后打开 已启用.
  6. 选择此渠道应传送的通知类型。
  7. 点击 测试 并确认消息到达。
  8. 如果您尚未订阅,请在 ntfy 应用程序或 Web UI 中订阅相同的主题。

每条通知都会以带有标题的普通消息形式到达,点击它将在 Kanera 中打开卡片。

设置 Gotify​

  1. 打开您的 Gotify 网页界面并创建一个 适用 例如,"Kanera " 。
  2. 复制 Gotify 生成的应用程序令牌。 应用程序令牌以 A。不要使用客户端令牌。
  3. 内 Kanera请输入密码 服务器URL,例如 https://gotify.example.com,并将令牌粘贴到 应用令牌.
  4. 点击 保存,然后打开 已启用.
  5. 选择此渠道应传送的通知类型。
  6. 点击 测试 并确认消息在 Gotify 中出现。

消息会在 Gotify 中显示在您创建的应用程序下,并附有通知标题、可读摘要和打开卡片的链接。 它们以正常优先级发送,因此 Gotify 的每个应用程序设置决定警报的强度。

应用令牌以加密方式存储,并且不会再次显示;该字段显示 保存 — 留空以保留。使用 移除标记 要清除它,或者粘贴一个新令牌并保存以替换它。

设置个人 webhook​

  1. 准备一个接受 HTTPS 的端点 POST 使用 JSON 主体请求并快速返回 2xx 状态。
  2. 内 Kanera请输入密码 端点URL 并点击 保存.
  3. Kanera 生成一个签名秘密并显示一次。 现在就复制 再次,这是不可能的。
  4. 将密码存储在接收器中,并在信任之前验证每个请求。
  5. 开机 已启用,然后选择此通道应传送的通知类型。
  6. 点击 测试 并确认您的端点已收到并验证了请求。

使用 旋转秘密 旧的密码会立即停止工作,因此请在同一维护窗口更新您的接收器。

请求头​

头条意义
Content-Type总是 application/json.
User-AgentKanera-Personal-Notifications/1.0.
X-Kanera-Event-Id此交付的唯一 ID。 id 身体的。
X-Kanera-TimestampUnix 时间戳(秒 ) 。
X-Kanera-Signaturesha256= 加上一个 HMAC-SHA256 的 ${timestamp}.${rawBody} 使用您的签名秘密。

有效载荷​

{
"id": "0199c3ab-6f5e-7d21-9b0c-8b31a7e40f2d",
"type": "notification",
"occurredAt": "2026-07-30T09:14:22.481Z",
"notification": {
"kind": "comment_mentioned",
"reason": "mentioned",
"title": "Mentioned in a comment",
"body": "Amelia mentioned you in Website Redesign / Prepare kickoff agenda: can you review the copy?",
"url": "https://kanera.example.com/b/48a52a55-763e-4c64-8a76-51ac56247f5c/c/70c39cef-1aec-44e6-a8f5-f36f765a818d",
"tag": "card:70c39cef-1aec-44e6-a8f5-f36f765a818d:mentioned"
}
}
外地意义
id交付 id,也发送为 X-Kanera-Event-Id。用它来使你的接收者幂等。
type总是 notification 个人渠道交付。
occurredAt通知被排队时的 ISO 8601 时间戳。
notification.kind通知类型,如 card_assigned, card_comment_added, comment_mentioned, card_due_date_changed, card_overdue, card_reminder, 或 test.
notification.reason为什么你被通知: assigned, comment, mentioned, dueDateChanged, overdue, reminder, 或 test.
notification.title简短的标题。
notification.body人类可读的摘要,包括演员、板和卡片。
notification.url深层链接到卡片,当通知指向一个。
notification.tag分组键,用于折叠有关同一卡片的重复通知。

验证签名​

import crypto from "node:crypto";
import express from "express";

const app = express();

app.post("/kanera/notifications", express.raw({ type: "application/json" }), (req, res) => {
const timestamp = req.header("X-Kanera-Timestamp") ?? "";
const signature = req.header("X-Kanera-Signature") ?? "";
const expected = "sha256=" + crypto
.createHmac("sha256", process.env.KANERA_NOTIFICATION_SECRET!)
.update(`${timestamp}.${req.body.toString("utf8")}`)
.digest("hex");

const ok = signature.length === expected.length
&& crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
if (!ok) return res.status(401).send("invalid signature");

const event = JSON.parse(req.body.toString("utf8"));
// Handle event.notification.reason, .title, .body, and .url.
res.sendStatus(204);
});

始终根据原始请求正文进行验证。如果您的框架在验证之前解析 JSON,则检查可能会失败或变得不可靠。拒绝其请求 X-Kanera-Timestamp 从你自己的时钟,并且对待一个重复 X-Kanera-Event-Id 作为一个复制。

每个通道可以发送哪些通知​

个人通道与电子邮件和推送通知类型相同:

类型发送时
已分配卡您被分配到一张卡片。
已添加卡片评论有人在分配给您的卡片上发表评论。
发表评论有人在评论中提到您。
卡到期日期已更改分配给您的卡片上的到期日期发生了变化。
卡逾期分配的卡或分配的清单项目已过期。
您的卡提醒一个 您设置的提醒 卡上到期。

每个通道都有自己的类型切换,因此通道比电子邮件安静得多。 一个常见的设置是用电子邮件处理所有内容,用 ntfy 处理提及和逾期工作,用 webhook 处理给个人脚本输入的任务。

被动观察者活动会显示在应用内抽屉式导航栏中,每日摘要仅限电子邮件。

允许的目的地和安全​

Kanera 在您保存时检查每个目的地,并在每次通知发出之前再次检查。

默认情况下:

  • 目的地必须使用 公共 HTTPS.
  • 请输入用户名和密码登录https://user:pass@host)或一个 #fragment.
  • ntfy 或 Gotify 服务器 URL 不能携带查询字符串。仅输入服务器地址。
  • 私人或内部网络上的地址将被拒绝。
  • 重定向到其他地方的目的地被视为失败,Kanera 等待回复的时间不超过 10 秒。

一些Kanera安装允许在内部网络上接收,这是家庭或公司局域网上运行的ntfy或Gotify服务器通常需要的。 无论如何,有少数地址仍然被阻止,包括云提供商为自己的基础设施保留的那些地址。 通知设置页面会告诉你这两种策略中哪一种适用于你;如果需要内部网络策略,请询问管理Kanera的人。

您的令牌和签名秘密以加密方式存储,并且在您保存后不会再显示。 如果交付失败,Kanera 会记录失败,但不会记录您的目标或凭据。

从交付期望什么​

通知会在半分钟内到达,而不是立即到达。 Kanera 在后台发送通知,因此您在应用程序中所做的任何事情都不会等待 ntfy 服务器或 webhook 响应。

如果您的目的地短暂无法联系,Kanera 会多尝试几次,然后放弃通知。 如果您关闭某个通道,清除其详细信息,或者组织转移到没有个人通道的计划,任何仍在等待的通知都会被丢弃,而不是在几个小时后失去上下文而到达。

测试 即使在启用通道之前,也能立即发送并运行,因此您可以先确认连接。

故障排除​

问题检查
Kanera 在保存时拒绝 URL。使用 https://、删除任何用户名、密码或 #fragment,并从 ntfy 或 Gotify 服务器 URL 中删除查询字符串。仅当您的安装允许时才接受私人或内部地址。
整个部分说它是不可用的您的计划。个人频道需要 Pro 或 Pro 试用版。 电子邮件、浏览器推送和应用内抽屉式导航栏不受影响。
每个频道都关闭了。检查组织是否迁移至Free。降级会禁用 ntfy、Gotify 和 webhook 传送并保留已保存的连接;升级会将它们重新打开。
该 已启用 切换显示为灰色。通道未完全配置。 ntfy 需要服务器 URL 和主题,Gotify 需要服务器 URL 和应用令牌,webhook 需要带有生成的秘密的 URL。
测试表示通道未完全配置。首先保存连接字段,然后进行测试。
测试失败,出现 HTTP 状态。目标拒绝了请求。 对于 ntfy,请检查主题和任何所需令牌。 对于 Gotify,请确认您使用的是应用程序令牌,而不是客户端令牌。
测试超时或报告网络故障。Kanera 无法在 10 秒内连接到主机。 确认主机是否可以从 Kanera 服务器连接到,并记住重定向不会被跟踪。
即使测试成功,也没有任何东西到达。检查该通道上的通知类型切换,然后检查是否 工作区规则 暂停或缩小该工作区的交付范围。
webhook 接收器拒绝签名。检查原始主体,而不是重新序列化的对象,并确认您正在使用当前的秘密(如果您最近旋转了它 ) 。
转换秘密后通知停止。更新接收器。 上一个秘密立即停止工作。