Mollysocket: notifiche di Signal tramite UnifiedPush
2024-12-08
MollySocket consente di ricevere notifiche tramite UnifiedPush
, un insieme di specifiche e strumenti che permette agli utenti di scegliere come gestire la consegna delle notifiche push. Questo sistema è completamente gratuito e open source, garantendo così trasparenza e accessibilità.
Quando MollySocket riceve un evento crittografato dal server di Signal, invia immediatamente una notifica al cellulare. Questo processo assicura che tu sia sempre aggiornato sulle comunicazioni importanti, senza dover dipendere da servizi centralizzati.
Il distributore più semplice da configurare per utilizzare MollySocket è ntfy.
Nel caso in cui non si abbiano le competenze o la voglia di self-hostarsi il servizio, o per semplice testing, chiunque può provare quanto descritto nell’articolo scaricando ntfy e Molly-FOSS, seguendo la semplice procedura di configurazione
Setup
- Per utilizzare UnifiedPush è necessario utilizzare Molly-FOSS, un fork completamente libero di Signal
- Un’applicazione distributore, come
ntfy
Installazione
Creare l’utente dedicato
Creare l’utente mollysocket
sudo useradd mollysocket -m -d /opt/mollysocket
in particolare:
-m
opzione che specifica di creare una home directory per l’utente-d /opt/mollysocket
opzione che specifica la posizione della home directory dell’utente
Infine, diventare utente mollysocket
, spostandosi nella sua home directory:
sudo su - mollysocket
Scaricare il binario
- Scaricare il binario più recente tramite
wget
dal repository ufficiale su GitHub. Quindi creare un link simbolico:
ln -s /opt/mollysocket/mollysocket-amd64-1.5.4 /opt/mollysocket/ms
Questo il risultato:
> ll /opt/mollysocket/
Permissions Size User Date Modified Name
.rwxr--r-- 4,9M mollysocket 4 dic 2023 mollysocket-amd64-1.5.4
.rw-r----- 12k mollysocket 23 mar 17:12 mollysocket.db
lrwxrwxrwx 40 mollysocket 23 mar 16:17 ms -> /opt/mollysocket/mollysocket-amd64-1.5.4
.rw-r--r-- 141 mollysocket 23 mar 17:03 prod.toml
File di configurazione
- Scaricare il file di configurazione col comando:
wget -O /opt/mollysocket/prod.toml https://github.com/mollyim/mollysocket/raw/main/config-sample.toml
Un esempio:
> cat /opt/mollysocket/prod.toml
db = '/opt/mollysocket/mollysocket.db'
allowed_endpoints = ['https://ntfy.domain.com']
allowed_uuids = ['*']
webserver = true
port = 8020
Servizio systemd
- Scaricare la unit di esempio:
wget -O /etc/systemd/system/mollysocket.service https://raw.githubusercontent.com/mollyim/mollysocket/main/mollysocket.service
- Quindi avviare il servizio:
systemctl enable --now mollysocket
Aggiungere una VAPID key
La VAPID key
è utilizzata per autorizzare il server di MollySocket a inviare richieste al tuo server push (es. ntfy), a condizione che quest’ultimo supporti il protocollo VAPID. Questa chiave è fondamentale per garantire che solo i server autorizzati possano inviare notifiche push agli utenti.
- Per generare una nuova chiave VAPID, eseguire il comando:
/opt/mollysocket/ms vapid gen | systemd-creds encrypt --name=ms_vapid -p - -
- Modificare il servizio aggiungendo le seguenti righe nel file
/etc/systemd/system/mollysocket.service
:
[Service]
SetCredentialEncrypted=ms_vapid: \
k6iUCUh0RJCQyvL8k8q1UyAAAAABAAAADAAAABAAAAC1lFmbWAqWZ8dCCQkAAAAAgAAAA \
AAAAAALACMA0AAAACAAAAAAfgAg9uNpGmj8LL2nHE0ixcycvM3XkpOCaf+9rwGscwmqRJ \
cAEO24kB08FMtd/hfkZBX8PqoHd/yPTzRxJQBoBsvo9VqolKdy9Wkvih0HQnQ6NkTKEdP \
HQ08+x8sv5sr+Mkv4ubp3YT1Jvv7CIPCbNhFtag1n5y9J7bTOKt2SQwBOAAgACwAAABIA \
ID8H3RbsT7rIBH02CIgm/Gv1ukSXO3DMHmVQkDG0wEciABAAII6LvrmL60uEZcp5qnEkx \
SuhUjsDoXrJs0rfSWX4QAx5PwfdFuxPusgE==
Environment=MOLLY_VAPID_KEY_FILE=%d/ms_vapid
Infine:
systemctl daemon-reload
systemctl restart mollysocket.service
Configurazione di Caddy proxy server
- Inserire le seguenti righe nel Caddyfile
> cat /etc/caddy/Caddyfile
https://molly.domain.com {
reverse_proxy / localhost:8020
}
Configurazione ntfy
- Installare sul proprio cellulare ntfy
- Nelle impostazioni dell’applicazione, impostare il server ntfy di default, altrimenti lasciare quello standard
- In Molly, nelle
Impostazioni>Notifiche>Servizio di consegna
, selezionareUnifiedPush
e quindi scansionare il codice QR disponibile sul sito web indicato nel Caddyfile, per esempio: https://molly.ilnostropianetaselvaggio.it/
Troubleshooting
Per testare che tutto funzioni correttamente:
su mollysocket
# Replace the UUID with your account Id
# L'account Id si trova In Molly, nelle Impostazioni>Notifiche>UnifiedPush
/opt/mollysocket/ms connection ping c8d44128-5c99-4810-a7d3-71c079891c27
Oppure direttamente dall’applicazione, sempre in Impostazioni>Notifiche>Configure UnifiedPush
, cliccando Test configuration
. Dovrebbe apparire una notifica push
Update
- Collegarsi al server e diventare utente
mollysocket
, spostandosi nella sua home directory:
sudo su - mollysocket
- Scaricare il binario più recente dal repository ufficiale su GitHub.
- Rendere il file eseguibile
chmod 744 mollysocket-amd64-2.0.1
- Eliminare il vecchio link simbolico e crearne uno nuovo:
rm -rf ms
ln -s /opt/mollysocket/mollysocket-amd64-2.0.1 /opt/mollysocket/ms
- Riavviare il servizio, come utente
root
systemctl restart mollysocket.service