Notificações Push iOS/Android no Discourse Auto-hospedado (Docker)

Passei mais de 6 horas lendo mensagens de 2018+ no Discourse Meta, conversando com o Discourse AI Bot, usando vários modelos para fazer pesquisas aprofundadas e testando. Estou procurando confirmar meu entendimento. Obrigado pela sua paciência, percebo que esta pergunta pode ser feita com frequência.

Sucesso de alto nível: Eu valorizo uma ótima experiência do usuário (UX), e uma ótima UX exige que o usuário pense o mínimo possível para realizar o que deseja. Estou esperando notificações de novas mensagens semelhantes às do WhatsApp no meu dispositivo iOS (iPhone 15 Pro, iOS 26.2).

  1. No nível mais alto, parece que a “melhor resposta” para este dilema/limitações do iOS é o Discourse Hub. Ele usa polling (sondagem), então há um pequeno atraso, mas esta é a melhor/mais estável maneira atual de obter notificações push para iOS/Android de uma instância Discourse auto-hospedada (em docker). Se sim, alguém sabe que tipo de atrasos estamos falando, minutos ou horas? Não consigo encontrar detalhes sobre isso.

  2. Se o item 1 for verdadeiro, parece que as notificações push são limitadas aos chats (conversas), se li corretamente?

  3. Passei muitas e muitas horas testando entre Mac OS X Safari, Chrome, Safari Incógnito, Chrome Incógnito, no meu ambiente de teste entre vários usuários. Combinado com cerca de 20+ tentativas de configurar e reinstalar o PWA. Verifiquei três vezes as configurações de notificação no PWA. Testei com várias contas, em navegadores diferentes, tudo enviando mensagens de chat no Discourse. Saí deliberadamente de todas as sessões para garantir que uma conta não estivesse ativa. Exceto pela mensagem push inicial de “notificações ativadas”, após mais de 3 horas de testes e mais de 20 reinstalações diferentes do PWA entre várias contas, não consigo obter nenhuma notificação pushover ou um badge (selo/contador) no PWA. Isso parece ser o estado preciso das notificações push do PWA no iOS em janeiro de 2026? Não tenho um telefone Android para testar.

  4. Parece que a principal razão para esses comportamentos inconsistentes com as notificações push se deve a “coisas técnicas” de notificação do iOS Safari. Neste momento, não há luz no fim do túnel.

  5. Existe uma opção para o aplicativo pushover, embora isso exija configurar uma conta e $5/mês. Se estou procurando criar uma ótima UX para meus usuários, algo como pushover certamente não é uma opção. Eu não usei ntfy, talvez seja mais fácil. Mesmo assim, provavelmente não pediria aos meus usuários para fazer isso. Este é um grupo social de pessoas não técnicas.

  6. Eu tive notificações push funcionando no Safari desktop. E-mails também funcionam bem.

  7. Se as pessoas pudessem se auto-autenticar para receber notificações em um aplicativo de terceiros de sua escolha, por exemplo, Telegram ou WhatsApp, isso poderia ter potencial. Eu vejo https://www.discourse.org/plugins/chat-integration para Telegram. Isso poderia ser uma solução alternativa… embora o único aplicativo que as pessoas provavelmente teriam no meu mundo seja o Telegram.

  8. Não sou contra uma integração com Twilio, mesmo que estivesse pagando por mensagens de texto via Twilio. Não vejo uma opção para isso ou um plugin. Este movimento seria puramente por desespero. E eu teria que cobrar uma assinatura de 1 a 3 centavos por mensagem ou o que quer que o Twilio cobre.

  9. Buscar um “aplicativo nativo do Discourse para iOS” provavelmente não é viável e tem uma probabilidade muito alta de ser rejeitado na Apple App Store, confirme? Eu vi muitos relatos sobre isso.

  10. É possível que as notificações push funcionem melhor e sejam consistentes/confiáveis no Android?

Tldr; Janeiro de 2026, a maneira única, melhor, mais confiável e consistente de obter notificações push para iOS/Android como um aplicativo nativo é usar o Discourse Hub.

PS. Eu secretamente espero estar perdendo alguma coisa, e minha experiência não ser precisa.

No Android, o PWA deve funcionar muito bem. Vários membros da equipe usam PWAs diariamente.

No iOS, sites hospedados pelo Discourse recebem notificações push completas no DiscourseHub. Os auto-hospedados recebem notificações push via polling, sim.

Infelizmente, o polling do DiscourseHub para auto-hospedados depende de tarefas em segundo plano do sistema. Elas não têm garantia de serem executadas em um momento específico… então, ninguém sabe quais são os atrasos. O sistema operacional decide. Se você usa o aplicativo regularmente, eu acho (com pouquíssima certeza) que o polling ocorre aproximadamente a cada 15 minutos. Se você não usa o aplicativo regularmente, pode ser consideravelmente menos frequente.

Não, deve ser para tópicos, chats, mensagens privadas.

Um aplicativo wrapper de webview tem uma grande chance de ser rejeitado, sim. Um aplicativo totalmente nativo, provavelmente não. Mas um aplicativo totalmente nativo é consideravelmente mais complicado de construir.

Também estou muito confuso com a situação das notificações push.

Funciona como PWA no Mac, mas não no iOS. Recebo emblemas (badges), mas nenhuma notificação (exceto a inicial de “sucesso”).

Por que não funciona? Estou hospedado usando communiteq.com e não quero ter que instalar um aplicativo.

Nossa hospedagem não impõe restrições e funciona bem com notificações no iOS.

No entanto, geralmente é bem frágil, especialmente quando você é um administrador - personificar outras contas parece quebrar a configuração de notificação.

Fiz o suporte técnico testar e não parece funcionar (eu não faço nenhuma personificação nem nada parecido).

A conclusão ali foi que não funcionou no seu dispositivo específico, se bem me lembro?

Eu entendo que esta não é uma resposta satisfatória, mas perguntar “por que não funciona” é talvez um pouco vago demais.

Dito isto, seria muito legal se houvesse um bom guia de solução de problemas para iOS.

Não, não funcionou para ninguém na nossa comunidade em dispositivos iOS.

Eu decidi testar novamente, então liguei e agora está funcionando! :exploding_head:

Talvez uma atualização do Discourse tenha resolvido? Quem sabe!

Eu apostaria meu dinheiro em uma atualização do iOS.

Alguém mais confirmou isso?

Acabei de excluir da tela inicial e adicionar novamente. Seria incrível se as notificações estivessem ativadas!

Deve funcionar para qualquer instância do Discourse adicionada à tela inicial no iOS 16.4 ou superior.

Se você tiver o Meta adicionado à tela inicial, esta resposta do meu shall deve acionar uma delas.

Obrigado, @Falco!

Percebi que eu tinha uma segunda conta de teste nos meus outros fóruns auto-hospedados… Fiz login e enviei uma mensagem de teste para mim mesmo.

Funcionou! Já funcionou algumas vezes agora.

Uau, isso é incrível.

Essa linha muito infeliz é a razão

Não faz sentido, na minha opinião.

Talvez seja hora de se livrar daquela linha :grinning_face:

Isso serve para evitar o caso incomum em que você não deseja que notificações push sejam enviadas para dispositivos deslogados. Você está em um dispositivo com notificações push ativadas, mas já terminou, então faz o logout.

Mais tarde, alguém envia uma mensagem sensível por MP para você. Uma notificação push é enviada para todos os dispositivos registrados. O dispositivo no qual você fez logout ainda está tecnicamente registrado, então ele continua recebendo a prévia completa da sua notificação. Ops.

Na primeira implementação, tomei uma medida de segurança ao apagar todas as chaves, o que é obviamente exagerado e incômodo. Talvez devêssemos começar a associar as assinaturas de notificação push a uma sessão de usuário específica ou, de alguma forma, confirmar se o usuário esperado ainda está logado?

Sim, isso! Em vez de ter um user_id, acho que deveriam ter um user_auth_tokens.id?

Ok, então parece que todos concordamos que o Discourse com a versão mais recente do iOS corrigiu as notificações? Posso fazer login no modo anônimo com outra conta e enviar uma mensagem para o meu celular; parece funcionar bem. Tudo o que precisei fazer foi reinstalar o aplicativo. Ótimo.

Isso é excelente. O próximo passo é corrigir as notificações para que eu possa mencionar um grupo e, potencialmente, integrar o Twilio.