Dernière modification le : Dec 11 2024 at 10:17 AM
Installer un serveur MollySocket
On part du principe que vous utilisez la version Molly UnifiedPush et vous avez un distributeur pour les notifications UnifiedPush tel que ntfy ou Conversations/Monocles.Molly UnifiedPush n’est plus maintenu car tout est intégré dans la version Molly-FOSS cependant il vous faut un distributeur pour les notifications UnifiedPush tel que ntfy ou Conversations/Monocles
Mettre en place un serveur MollySocket est assez simple, ici sera repris l’INSTALL.md du github avec quelques ajouts et en Français.
Préparatif
On met à jour le systeme pour commencé et on install SQLite
et Redis
:
apt install sqlite3 redis
Puis on prépare un utilisateur dédié :
sudo useradd mollysocket -m -d /opt/mollysocket
sudo -su mollysocket
cd
Installer & Configurer MollySocket
Installation
Pour faire simple ont récupère le binaire depuis le git directement :
Ici avec la version arm64, car j’utilise une VM sur ma Freebox. Prenez la bonne version pour vous.
wget https://github.com/mollyim/mollysocket/releases/download/1.5.1/mollysocket-linux_arm64
Configuration de MollySocket
On télécharge le fichier de configuration :
wget -O /opt/mollysocket/prod.toml https://github.com/mollyim/mollysocket/raw/main/config-sample.toml
Ce qui donne quelque chose comme ça :
db = '/opt/mollysocket/mollysocket.db'
allowed_endpoints = ['*']
allowed_uuids = ['*']
webserver = true
port = 8020
Globalement il n’y a rien à changer, sauf si vous voulez faire à votre sauce ou rendre le serveur privé :
db
: il sagit du chemin de la base de donnée, qui peut être changé, exemple :/opt/mollysocket/data/mollysocket.db
.allowed_endpoints
: sert a définir le serveur push utilisé, vous pouvez laisser comme tel ou ajouter votre serveur push si vous en avez un.allowed_uuids
: sert à définir si l’accès est public ou alors privé en définisant les personnes pouvant y accéder à l’aide de leurs ID Signal, les ID sont disponible quand vous activez le mode UnifiedPush dans les notifications dans Molly.webserver
: Démarrer ou non le serveur web (probablement la page web conetenant le QR code et les info de version du serveur, je ne me sui pas encore penché dessus)port
: si vous voulez changer le port.
Service Systemd
Quitter pour revenir sur votre utilisateur de base, puis on télécharge le fichier pour le service et on le place où il faut :
wget https://github.com/mollyim/mollysocket/raw/main/mollysocket.service
sudo mv mollysocket.service /etc/systemd/system/
Sur le github il recommandé de faire un lien symbolique pour l’exécutable pour faciliter les choses, mais les binaires ne comportant plus les numéros de version, il suffit juste de remplacer le binaire par le nouveau, mais si vous voulez le faire quand même :
ln -s /opt/mollysocket/mollysocket-linux-arm64 /opt/mollysocket/ms
Si vous ne le faite pas penser à modifier la ligne dans le
mollysocket.service
:ExecStart=/opt/mollysocket/ms server
Et on lance le service :
systemctl start mollysocket
Si/Quand tout est bon et fonctionnel on active le service au démarrage :
systemctl enable --now mollysocket
Proxy server - Caddy
Exemple de configuration avec Caddy :
votre-nom-de-domaine.tld {
reverse_proxy 127.0.0.1:8020
# logs
log {
output file /var/log/caddy/mollysocket.log {
roll_size 10MB
roll_keep 10
roll_keep_for 48h # Temps de retention
}
}
}
Et si tout fonctionne bien
Il va falloir aller dans l’app Molly et ajouter votre serveur en appuyant en haut à gauche sur votre avatar pour ouvrir les Paramètres, puis aller dans le menu Notifications et descendre tout en bas et choisir UnifiedPush dans Service de distribution, vous pouvez grace au QR code fournit sur la page web de votre serveur mollysocket faire ça très vite.
Puis on selectionne l’application qui distribue les notifications push dans Configure UnifiedPush
Il ne nous reste plus qu’a tester si tout fonctionne bien. Pour cela on va envoyer une notification depuis le serveur :
./mollysocket-linux_arm64 -c prod.toml connection ping votre-ID-Signal
L’application Molly lance normalement un teste de notification à l’ajout de la configuration.