Passer au contenu principal

Canaux de livraison personnelle

Les canaux de diffusion personnels envoient vos propres notifications Kanera ailleurs que par courrier électronique ou par navigateur.

Le courrier électronique et le push du navigateur fonctionnent bien pour la plupart des gens, mais ce ne sont pas les seules destinations utiles. Certaines équipes disposent déjà d'un serveur de notification auto-hébergé. Certaines personnes souhaitent recevoir des alertes sur un téléphone sans accorder l'autorisation de notification au navigateur. Certains souhaitent que les événements Kanera atterrissent dans un script, un tableau de bord d'accueil ou un outil d'astreinte.

Kanera prend en charge trois destinations personnelles :

ChaîneQu'est-ce que c'estBon pour
ntfyUn serveur de notification auquel vous vous abonnez depuis une application de téléphone ou de bureau, soit ntfy.sh ou votre propre instance.Alertes téléphoniques sans poussée du navigateur, sujets d'équipe partagés, configurations homelab.
GotifierUn serveur de notification auto-hébergé avec sa propre application Android et sa propre interface utilisateur Web.Alertes entièrement auto-hébergées sans service push tiers sur le chemin.
Webhook personnelUn point de terminaison HTTPS que vous possédez, recevant du JSON signé.Scripts, tableaux de bord, routage d'astreinte, automatisation personnalisée, ponts de discussion que vous exécutez déjà.

Ces chaînes sont personnelles. Ils appartiennent à votre compte, pas à un espace de travail, et personne d'autre ne peut les voir ou les modifier. Ils ne dépendent pas du paramètre push de l’organisation ni de l’autorisation de notification du navigateur.

Ils ont besoin Pro ou les 30 jours Essai professionnel. Ils ne sont pas disponibles sur Free hébergé, où la messagerie électronique, le navigateur Push et le tiroir intégré à l'application continuent de fonctionner normalement. Voir Exigences du plan ci-dessous.

Si vous souhaitez qu'une équipe entière voie l'activité des cartes dans un canal partagé, utilisez Destinations de discussion à la place. Les chaînes personnelles sont un flux privé ; les destinations de discussion sont un flux d’équipe et sont configurées par un administrateur de l’espace de travail.

Quand utiliser chaque canal​

Utiliser ntfy lorsque vous souhaitez des alertes par téléphone ou sur ordinateur et que vous préférez ne pas utiliser le push du navigateur. Installez l'application ntfy, abonnez-vous à un sujet et Kanera y publie. C'est également l'option la plus simple si vous publiez déjà d'autres alertes sur ntfy et que vous souhaitez que Kanera soit à côté d'elles.

Utiliser Gotifier quand l’exigence est que rien ne quitte votre infrastructure. Gotify fonctionne sur votre propre serveur, l'application Android lui communique directement et Kanera n'a besoin que de l'URL du serveur et d'un jeton d'application.

Utilisez un webhook personnel lorsque vous souhaitez faire quelque chose avec la notification plutôt que de la lire. Utilisations courantes :

  • Acheminez les mentions et les cartes en retard vers un outil de garde ou de radiomessagerie.
  • Publiez vos missions sur un canal de discussion personnel ou sur un bot que vous exécutez déjà.
  • Ajoutez des notifications à un journal, un tableau de bord ou une base de données personnelle.
  • Reliez Kanera à un fournisseur de notifications que Kanera ne prend pas directement en charge.

Exigences du plan​

Les canaux de diffusion personnels nécessitent Pro ou un essai Pro. E-mail, push du navigateur, tiroir de notifications dans l'application, résumé quotidien, visionnage et Règles de l'espace de travail sont disponibles sur tous les forfaits et ne sont pas concernés par cela.

Sur hébergé gratuitement, Destinations de notifications supplémentaires montre ntfy, Gotify et les webhooks personnels ne sont pas disponibles sur votre forfait à la place des cartes de configuration.

Si une organisation passe de Pro ou d'un essai à Free, Kanera désactive les canaux ntfy, Gotify et webhook de chaque personne. Rien n'est supprimé : les URL du serveur, les sujets, les jetons, les secrets de signature et les préférences par type restent tous enregistrés, et tout ce qui est encore en attente d'envoi est supprimé plutôt que d'arriver en retard. La mise à niveau réactive à nouveau exactement les canaux que chaque personne avait activés, donc personne n'a besoin de reconnecter quoi que ce soit.

Où les installer​

Ouvert Paramètres du profil -> Notifications et développer Destinations de notifications supplémentaires.

Chaque canal possède sa propre carte avec des champs de connexion, un Activé bascule, bascule le type de notification et Enregistrer, Tester, et Supprimer actions.

Une chaîne ne peut pas être activée tant que vous n'avez pas rempli tout ce dont elle a besoin. Ce que vous autorisez ici est le maximum qu'une chaîne vous enverra jamais : Règles de l'espace de travail peut rendre silencieux un canal pour un espace de travail, mais ne jamais lui faire envoyer plus que ce que ces paramètres permettent.

Votre tiroir de notifications dans l'application n'est jamais affecté par ces paramètres. Il affiche toujours le flux complet.

Destinations de notification supplémentaires étendues à la carte de configuration ntfy, avec la politique de réseau privé, les champs de connexion et les contrôles de type de notification.

Configurer NTFY​

  1. Choisissez le serveur. Utiliser https://ntfy.sh pour le service public, ou votre propre instance telle que https://ntfy.example.com.
  2. Choisissez un nom de sujet. Traitez-le comme un secret sur le service public, puisque toute personne connaissant un sujet peut s'y abonner. Quelque chose comme kanera-a7f3c2-amelia est mieux que kanera.
  3. Dans Kanera, entrez le URL du serveur et Sujet. Laissez la chaîne de requête hors de l'URL du serveur ; Kanera ajoute le sujet lui-même.
  4. Si le sujet nécessite une authentification, collez un jeton d'accès dans Jeton du porteur. Il est facultatif sur les serveurs ouverts et obligatoire sur les serveurs protégés.
  5. Cliquez Enregistrer, puis allumez Activé.
  6. Choisissez les types de notifications que ce canal doit diffuser.
  7. Cliquez Tester et confirmez que le message arrive.
  8. Abonnez-vous au même sujet dans l'application NTFY ou l'interface utilisateur Web si vous ne l'avez pas déjà fait.

Chaque notification arrive sous la forme d'un message simple avec un titre, et en appuyant dessus, la carte s'ouvre dans Kanera.

Configurer Gotify​

  1. Ouvrez votre interface utilisateur Web Gotify et créez un demande — par exemple, "Kanera".
  2. Copiez le jeton d'application généré par Gotify. Les jetons d'application commencent par A. N'utilisez pas de jeton client.
  3. Dans Kanera, entrez le URL du serveur, comme https://gotify.example.com, et collez le jeton dans Jeton d'application.
  4. Cliquez Enregistrer, puis allumez Activé.
  5. Choisissez les types de notifications que ce canal doit diffuser.
  6. Cliquez Tester et confirmez que le message apparaît dans Gotify.

Les messages apparaissent dans Gotify sous l'application que vous avez créée, avec le titre de la notification, un résumé lisible et un lien qui ouvre la carte. Ils sont envoyés avec une priorité normale, de sorte que les paramètres propres à l'application de Gotify décident du degré d'insistance de l'alerte.

Le jeton d'application est stocké crypté et ne s'affiche plus jamais ; le champ montre Enregistré – laisser vide pour conserver. Utiliser Supprimer le jeton pour l'effacer, ou collez un nouveau jeton et enregistrez-le pour le remplacer.

Configurer un webhook personnel​

  1. Préparez un point de terminaison HTTPS qui accepte POST requêtes avec un corps JSON et renvoie rapidement un statut 2xx.
  2. Dans Kanera, entrez le URL du point de terminaison et cliquez Enregistrer.
  3. Kanera génère un secret de signature et l'affiche une fois. Copiez-le maintenant — il n'est plus affiché.
  4. Stockez le secret dans votre récepteur et vérifiez chaque demande avant de lui faire confiance.
  5. Allumer Activé, puis choisissez les types de notifications que ce canal doit diffuser.
  6. Cliquez Tester et confirmez que votre point de terminaison a reçu et vérifié la demande.

Utiliser Rotation secrète pour émettre un nouveau secret. L'ancien secret cesse de fonctionner immédiatement, alors mettez à jour votre récepteur dans la même fenêtre de maintenance.

En-têtes de requête​

En-têteSignification
Content-TypeToujours application/json.
User-AgentKanera-Personal-Notifications/1.0.
X-Kanera-Event-IdIdentifiant unique pour cette livraison. Matchs id dans le corps.
X-Kanera-TimestampHorodatage Unix en secondes.
X-Kanera-Signaturesha256= plus un HMAC-SHA256 de ${timestamp}.${rawBody} en utilisant votre secret de signature.

Charge utile​

{
"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"
}
}
ChampSignification
idIdentifiant de livraison, également envoyé comme X-Kanera-Event-Id. Utilisez-le pour rendre votre récepteur idempotent.
typeToujours notification pour les diffusions via des canaux personnels.
occurredAtHorodatage ISO 8601 indiquant le moment où la notification a été mise en file d'attente.
notification.kindType de notification, tel que card_assigned, card_comment_added, comment_mentioned, card_due_date_changed, card_overdue, card_reminder, ou test.
notification.reasonPourquoi avez-vous été informé : assigned, comment, mentioned, dueDateChanged, overdue, reminder, ou test.
notification.titleTitre court.
notification.bodyRésumé lisible par l'homme comprenant l'acteur, le tableau et la carte.
notification.urlLien profond vers la carte, lorsque la notification en pointe une.
notification.tagTouche de regroupement pour réduire les notifications répétées concernant la même carte.

Vérifier la signature​

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);
});

Vérifiez toujours par rapport au corps brut de la demande. Si votre framework analyse JSON avant la vérification, la vérification peut échouer ou devenir peu fiable. Rejeter les demandes dont X-Kanera-Timestamp est loin de votre propre horloge, et traitez une répétition X-Kanera-Event-Id en double.

Quelles notifications chaque canal peut envoyer​

Les canaux personnels comportent les mêmes cinq types de notifications que les e-mails et les push :

TapezEnvoyé quand
Carte attribuéeUne carte vous est attribuée.
Commentaire de carte ajoutéQuelqu'un commente une carte qui vous est attribuée.
Tagué dans un commentaireQuelqu'un vous mentionne dans un commentaire.
Date d'échéance de la carte modifiéeLa date d'échéance change sur une carte qui vous est attribuée.
Carte en retardUne carte attribuée ou un élément de liste de contrôle attribué devient en retard.
Vos rappels de carteUn rappel que vous avez défini sur une carte vient à échéance.

Chaque canal possède son propre ensemble de bascules de type, de sorte qu'un canal peut être beaucoup plus silencieux qu'un courrier électronique. Une configuration courante est le courrier électronique pour tout, ntfy pour les mentions et les travaux en retard uniquement, et un webhook pour les devoirs qui alimentent un script personnel.

L'activité de l'observateur passif apparaît dans le tiroir de l'application et le résumé quotidien est uniquement disponible par courrier électronique. Ni l’un ni l’autre n’est diffusé sur les canaux personnels.

Destinations autorisées et sécurité​

Kanera vérifie chaque destination lorsque vous l'enregistrez, et encore avant chaque notification.

Par défaut :

  • Les destinations doivent utiliser HTTPS public.
  • L'URL ne peut pas contenir de nom d'utilisateur et de mot de passe (https://user:pass@host) ou un #fragment.
  • Une URL de serveur ntfy ou Gotify ne peut pas contenir de chaîne de requête. Entrez uniquement l'adresse du serveur.
  • Les adresses sur un réseau privé ou interne sont refusées.
  • Une destination qui redirige vers un autre endroit est traitée comme un échec et Kanera n'attend pas plus de 10 secondes pour une réponse.

Certaines installations Kanera autorisent plutôt les récepteurs sur un réseau interne, ce dont a généralement besoin un serveur NTFY ou Gotify fonctionnant à la maison ou sur le réseau local d'une entreprise. De toute façon, quelques adresses restent bloquées, notamment celles que les fournisseurs de cloud réservent à leur propre infrastructure. La page des paramètres de notification vous indique laquelle des deux politiques s'applique à vous ; si vous avez besoin de la politique de réseau interne, demandez à la personne qui administre votre Kanera.

Vos jetons et secrets de signature sont stockés cryptés et ne s'affichent plus jamais après leur enregistrement. Si une livraison échoue, Kanera enregistre qu'elle a échoué sans enregistrer votre destination ni vos informations d'identification.

À quoi s'attendre de la livraison​

Les notifications arrivent dans un délai d'environ une demi-minute plutôt qu'instantanément. Kanera les envoie en arrière-plan, donc rien de ce que vous faites dans l'application n'attend que votre serveur NTFY ou votre webhook réponde.

Si votre destination est brièvement inaccessible, Kanera essaie encore quelques fois avant d'abandonner cette notification. Rien ne s'accumule non plus pendant des jours. Si vous désactivez une chaîne, effacez ses détails ou si l'organisation passe à un forfait sans chaînes personnelles, tout ce qui est encore en attente est supprimé plutôt que d'arriver des heures plus tard hors de son contexte.

Tester envoie immédiatement et fonctionne avant même d'activer la chaîne, vous pouvez donc d'abord confirmer une connexion.

Dépannage​

ProblèmeVérifier
Kanera refuse l'URL lors de la sauvegarde.Utiliser https://, supprimez tout nom d'utilisateur, mot de passe ou #fragmentet supprimez la chaîne de requête d'une URL de serveur ntfy ou Gotify. Une adresse privée ou interne n'est acceptée que là où votre installation le permet.
Toute la section indique qu'il n'est pas disponible sur votre forfait.Les chaînes personnelles nécessitent Pro ou un essai Pro. Les e-mails, les notifications push du navigateur et le tiroir intégré à l'application ne sont pas affectés.
Chaque chaîne s'est éteinte.Vérifiez si l'organisation est passée à Free. Une mise à niveau désactive la livraison de ntfy, Gotify et webhook et conserve les connexions enregistrées ; la mise à niveau les rallume.
Le Activé la bascule est grisée.Le canal n'est pas entièrement configuré. ntfy a besoin d'une URL de serveur et d'un sujet, Gotify a besoin d'une URL de serveur et d'un jeton d'application, et un webhook a besoin d'une URL avec un secret généré.
Le test indique que le canal n'est pas entièrement configuré.Enregistrez d'abord les champs de connexion, puis testez.
Le test échoue avec un statut HTTP.La destination a rejeté la demande. Pour ntfy, vérifiez le sujet et tout jeton requis. Pour Gotify, confirmez que vous avez utilisé un jeton d'application et non un jeton client. Pour un webhook, renvoyez un statut 2xx.
Le test expire ou signale une panne de réseau.Kanera n'a pas pu joindre l'hôte dans les 10 secondes. Confirmez que l'hôte est accessible depuis le serveur Kanera et rappelez-vous que les redirections ne sont pas suivies.
Rien n'arrive même si le test a fonctionné.Vérifiez le type de notification qui bascule sur ce canal, puis vérifiez si un règle d'espace de travail suspend ou restreint la livraison pour cet espace de travail.
Le récepteur du webhook rejette les signatures.Vérifiez sur le corps brut, et non sur un objet resérialisé, et confirmez que vous utilisez le secret actuel si vous l'avez récemment fait pivoter.
Les notifications se sont arrêtées après la rotation d'un secret.Mettez à jour le récepteur. Le secret précédent cesse de fonctionner immédiatement.