Notifications Push iOS/Android sur Dicsourse auto-hébergé (Docker)

J’ai passé plus de 6 heures à lire des messages datant de 2018 et au-delà sur Discourse Meta, à discuter avec le robot Discourse AI, à utiliser plusieurs modèles pour faire des recherches approfondies et à tester. Je cherche à confirmer ma compréhension. Merci de votre patience, je réalise que cette question est peut-être souvent posée.

Succès de haut niveau : J’apprécie une excellente expérience utilisateur (UX), et une excellente UX exige que l’utilisateur réfléchisse le moins possible pour accomplir ce qu’il souhaite. Je m’attends à des notifications de nouveaux messages de type WhatsApp sur mon appareil iOS (iPhone 15 Pro, iOS 26.2).

  1. Au plus haut niveau, il semble que la « meilleure réponse » à ce dilemme/aux limitations d’iOS soit Discourse Hub. Il utilise le polling (interrogation), il y a donc un léger délai, mais c’est actuellement la meilleure/plus stable façon d’obtenir des notifications push iOS/Android à partir d’une instance Discourse auto-hébergée (sur Docker). Si oui, quelqu’un sait-il de quels types de délais nous parlons, minutes ou heures ? Je ne trouve pas de détails à ce sujet.

  2. Si le point 1 est vrai, il semble que les notifications push soient limitées aux chats si j’ai bien compris ?

  3. J’ai passé de très nombreuses heures à tester entre Mac OS X Safari, Chrome, Safari Incognito, Chrome Incognito, dans mon environnement de test auprès de plusieurs utilisateurs. Associé à environ 20 tentatives d’installation et de réinstallation de la PWA. J’ai vérifié trois fois les paramètres de notification sur la PWA. J’ai testé avec plusieurs comptes, dans différents navigateurs, tous en envoyant des messages de chat dans Discourse. Je me suis délibérément déconnecté de toutes les sessions pour m’assurer qu’aucun compte n’était actif. À part le message push initial « notifications activées », après plus de 3 heures de tests et plus de 20 réinstallations différentes de la PWA sur plusieurs comptes, je n’arrive à obtenir aucune notification push ou aucun badge sur la PWA. Cela semble-t-il être l’état exact des notifications push PWA sur iOS en janvier 2026 ? Je n’ai pas de téléphone Android pour tester.

  4. Il semble que la principale raison de ces comportements incohérents avec les notifications push soit due à des « choses techniques » de notification d’iOS Safari. À l’heure actuelle, il n’y a pas de lumière au bout du tunnel.

  5. Il existe une option pour l’application Pushover, bien que cela nécessite de créer un compte et 5 $/mois. Si je cherche à créer une excellente UX pour mes utilisateurs, quelque chose comme Pushover n’est certainement pas une option. Je n’ai pas utilisé ntfy, peut-être est-ce plus simple. Même dans ce cas, je ne demanderais probablement pas à mes utilisateurs de le faire. Il s’agit d’un groupe social de personnes non techniques.

  6. J’ai eu des notifications push fonctionnelles sur Safari de bureau. Les e-mails fonctionnent également correctement.

  7. Si les gens pouvaient s’authentifier eux-mêmes pour recevoir des notifications dans une application tierce de leur choix, par exemple Telegram ou WhatsApp, cela pourrait avoir un potentiel. Je vois https://www.discourse.org/plugins/chat-integration pour Telegram. Cela pourrait être une solution de contournement… bien que la seule application que les gens auraient probablement dans mon monde soit Telegram.

  8. Je ne suis pas opposé à une intégration Twilio, même si je payais pour des SMS via Twilio. Je ne vois pas d’option pour cela ni de plugin. Ce changement serait purement par désespoir. Et je devrais facturer un abonnement de 1 à 3 cents par message ou quel que soit le coût de Twilio.

  9. Opter pour une « application iOS Discourse native » est probablement irréalisable et très susceptible d’être rejetée dans l’App Store d’Apple, confirmez-vous ? J’ai vu de nombreux rapports à ce sujet.

  10. Est-il possible que les notifications push fonctionnent mieux et soient plus cohérentes/fiables sur Android ?

TL;DR : Janvier 2026, la meilleure façon la plus fiable et la plus cohérente d’obtenir des notifications push sur iOS/Android comme une application native est d’utiliser Discourse Hub.

PS. J’espère secrètement que je manque quelque chose et que mon expérience n’est pas exacte.

Sur Android, la PWA devrait très bien fonctionner. Plusieurs membres du personnel utilisent les PWA quotidiennement.

Sur iOS, les sites hébergés par Discourse reçoivent des notifications push complètes dans DiscourseHub. Les auto-hébergeurs reçoivent les notifications push via le polling, oui.

Malheureusement, le polling de DiscourseHub pour les auto-hébergeurs repose sur des tâches d’arrière-plan système. Leur exécution à un moment précis n’est pas garantie… donc, personne ne connaît les délais. Le système d’exploitation décide. Si vous utilisez l’application régulièrement, je pense (avec très peu de certitude) que le polling se produit environ toutes les 15 minutes. Si vous n’utilisez pas l’application régulièrement, cela peut être considérablement moins fréquent.

Non, cela devrait concerner les sujets, les chats, les messages privés.

Une application enveloppe (wrapper) de webview a de fortes chances d’être rejetée, oui. Une application entièrement native, probablement pas. Mais une application entièrement native est considérablement plus compliquée à construire.

Je suis également très confus par la situation des notifications push.

Cela fonctionne en tant que PWA sur Mac mais pas sur iOS. Je reçois des badges mais pas de notifications (à part celle initiale de « succès »).

Pourquoi cela ne fonctionne-t-il pas ? Je suis hébergé sur communiteq.com et je ne veux pas avoir à installer une application.

Notre hébergement n’impose aucune restriction et fonctionne bien avec les notifications sur iOS.

Cependant, il est généralement assez fragile, surtout lorsque vous êtes administrateur - l’usurpation d’identité d’autres comptes semble casser la configuration des notifications.

J’ai demandé au support technique de tester, et cela ne semble pas fonctionner (je n’effectue aucune usurpation d’identité ou autre).

La conclusion était que cela ne fonctionnait pas sur votre appareil spécifique, si je me souviens bien ?

Je comprends que ce n’est pas une réponse satisfaisante, mais demander « pourquoi ça ne marche pas » est peut-être un peu trop général.

Ceci dit, ce serait vraiment cool s’il y avait un bon guide de dépannage pour iOS.

Non, cela n’a fonctionné pour personne dans notre communauté sur les appareils iOS.

J’ai décidé de réessayer, alors je l’ai rallumé et maintenant ça fonctionne ! :exploding_head:

Peut-être qu’une mise à jour de Discourse l’a corrigé ? Qui sait !

Je parierais mon argent sur une mise à jour d’iOS.

Est-ce que quelqu’un d’autre a confirmé cela ?

Je viens de supprimer de l’écran d’accueil et de réajouter. Ce serait génial si les notifications étaient activées !

Cela devrait fonctionner pour toute instance Discourse ajoutée à l’écran d’accueil sur iOS 16.4 et versions ultérieures.

Si vous avez Meta ajouté à l’écran d’accueil, cette réponse de ma part devrait en déclencher une.

Merci @Falco !

Je me suis rendu compte que j’avais un deuxième compte de test sur mes autres forums auto-hébergés… Je me suis connecté et je m’ai envoyé un chat de test.

Ça a fonctionné ! Ça a marché plusieurs fois maintenant.

Wow, c’est incroyable.

Cette ligne très malheureuse en est la raison

À mon avis, cela n’a aucun sens.

Peut-être est-il temps de se débarrasser de cette ligne :grinning_face:

C’est pour éviter le cas rare où vous ne souhaitez pas que les notifications push soient envoyées aux appareils déconnectés. Vous êtes sur un appareil avec les notifications push activées, mais vous avez terminé, alors vous vous déconnectez.

Ensuite, quelqu’un vous envoie plus tard un message sensible par MP. Une notification push est envoyée à tous les appareils enregistrés. L’appareil sur lequel vous vous êtes déconnecté est toujours techniquement enregistré, il reçoit donc toujours l’aperçu complet de votre notification. Oups.

Pour être prudent lors de sa première notification push, j’ai simplement effacé toutes les clés, ce qui est évidemment excessif et gênant. Peut-être devrions-nous commencer à associer les abonnements aux notifications push à une session utilisateur spécifique ou confirmer d’une manière ou d’une autre que l’utilisateur attendu est toujours connecté ?

Oui, exactement ! Au lieu d’avoir un user_id, je pense qu’ils devraient utiliser un user_auth_tokens.id ?

Ok, donc il semble que nous soyons tous d’accord pour dire que Discourse avec la dernière version d’iOS a résolu le problème des notifications ? Je peux me connecter en navigation privée avec un autre compte et envoyer un message à mon téléphone, tout semble fonctionner correctement. Tout ce que j’ai eu à faire, c’est réinstaller l’application. Super.

C’est formidable. La prochaine étape consiste à corriger les notifications afin que je puisse mentionner un groupe et, éventuellement, intégrer Twilio.