Notifications via Nextcloud push

La mode sur téléphone est aux notifications push. Pour de plus en plus d'applications, c'est même la seule manière d'avoir des notifications fonctionnelles. Ça devient donc un vrai problème quand on a un système Android dégooglisé, on se retrouve sans notifications.

Alors, comment faire? Une solution élégante est de passer par UnifiedPush, standard ouvert de notifications push, autohébergeable. L'une des manières d'autohéberger son serveur UnifiedPush est via l'application Nextcloud uppush, et l'application Android Nextpush qui sert de client. Une fois ces deux éléments correctement installés et configurés, j'avais enfin de nouveau des notifications Fedilab, joie.

Comble de l'ironie, Nextcloud lui-même n'est pas compatible avec UnifiedPush, donc pas moyen de faire passer ses notifications à lui par là.

Par contre, nextpush permet d'ajouter des endpoints sur le serveur, sur lesquels il suffit d'envoyer une requête POST pour qu'une notification s'affiche sur votre téléphone. Ça se prête particulièrement bien à l'envoi de notifications via curl, depuis le terminal ou un script. Je me suis donc servi de cette possibilité pour avoir des notifications depuis radarr et lidarr, qui hélas ne supportent pas UnifiedPush, mais proposent l'exécution d'un script arbitraire.

Tuto pour scripter une notificaton

En admettant que vous avez installé uppush sur votre serveur Nextcloud, l’application Nextpush sur votre téléphone Android, et que vous avez une application serveur qui supporte l’éxecution d’un script lors d’un évènement, pour l’exemple ce sera transmission.

1 - Sur votre téléphone, ouvrez Nextpush et ajoutez un endpoint, que vous appelez «Transmission».

2 - Un appui long sur le endpoint pour le sélectionner, puis sur l’icône copier, vous donne l’URL sur laquelle envoyer les notifications. Copiez là vers votre PC de la manière la plus pratique pour vous (si vous avez KDE connect ctrl+v suffit).

3 - Sur le serveur, on créer un script avec le contenu suivant :

#!/bin/sh

message="Transmission finished downloading \"$TR_TORRENT_NAME\" on $TR_TIME_LOCALTIME"

curl --data "$message" https://<domaine>/nextcloud/index.php/apps/uppush//push/<token>

4 - On arrête le service transmission, puis dans /etc/transmission-daemon/settings.json on configure :

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/path/to/notify-transmission.sh",

Et voilà ! Pensez à rendre le script éxecutable, relancez transmission et appréciez la magie de recevoir des notifications sur votre téléphone depuis n’importe quel script de votre choix.