4.3 KiB
MollySocket
MollySocket consente di ricevere notifiche tramite UnifiedPush. Ogni volta che riceve un evento crittografato, invia una notifica al cellulare tramite UnifiedPush. UnifiedPush è un insieme di specifiche e strumenti che consente all'utente di scegliere come recapitare le notifiche push, il tutto in modo gratuito e open source. Il distributore piu' semplice da configurare e' ntfy.
Setup
- Per utilizzare UnifiedPush è necessaria la versione corretta di Molly: https://github.com/mollyim/mollyim-android-unifiedpush
- Un'applicazione distributore (la più semplice è ntfy)
Installazione
Creare l'utente dedicato
sudo useradd mollysocket -m -d /opt/mollysocket
sudo -su mollysocket
cd
in particolare:
-m
opzione che specifica di creare una home directory per l'utente (di default nella directory /home);-d /opt/mollysocket
opzione che specifica la posizione della home directory dell'utente, nel caso specifico "/opt/mollysocket".
Scaricare il binario
- Scaricare il binario da https://github.com/mollyim/mollysocket/releases/. Quindi creare un link simbolico per il binario appena scaricato:
ln -s /opt/mollysocket/mollysocket-amd64-1.2.0 /opt/mollysocket/ms
Viene creato un collegamento simbolico (link soft) al file mollysocket-amd64-1.2.0 presente all’interno della directory /opt/mollysocket, dandogli il nuovo nome ms.
Questo il risultato:
> ll /opt/mollysocket/
Permissions Size User Date Modified Name
.rwxr--r-- 4,9M mollysocket 4 dic 2023 mollysocket-amd64-1.2.0
.rw-r----- 12k mollysocket 23 mar 17:12 mollysocket.db
lrwxrwxrwx 40 mollysocket 23 mar 16:17 ms -> /opt/mollysocket/mollysocket-amd64-1.2.0
.rw-r--r-- 141 mollysocket 23 mar 17:03 prod.toml
File di configurazione
- Scaricare il file di conf 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:
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
Dare i seguenti comandi:
/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
Proxy Server
- Inserire le seguenti righe nel Caddyfile
> cat /etc/caddy/Caddyfile
https://molly.domain.com {
reverse_proxy / localhost:8020
}
Configurazione ntfy
- Nelle impostazioni impostare il server ntfy di default
- In Molly, nelle Impostazioni>Notifiche>UnifiedPush, inserire l'URL del server (es. https://molly.domain.com) e scegliere ntfy come metodo di notifica
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