# 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](https://f-droid.org/en/packages/io.heckel.ntfy/). ## Setup - Per utilizzare UnifiedPush è necessaria la versione corretta di Molly: [https://github.com/mollyim/mollyim-android-unifiedpush](https://github.com/mollyim/mollyim-android-unifiedpush) - Un'applicazione distributore (la più semplice è ntfy) ## Installazione #### Creare l'utente dedicato ```bash 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/](https://github.com/mollyim/mollysocket/releases/). Quindi creare un link simbolico per il binario appena scaricato: ```bash 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: ```bash > 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: ```bash wget -O /opt/mollysocket/prod.toml https://github.com/mollyim/mollysocket/raw/main/config-sample.toml ``` Un esempio: ```bash > 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: ```bash wget -O /etc/systemd/system/mollysocket.service https://raw.githubusercontent.com/mollyim/mollysocket/main/mollysocket.service ``` - Quindi avviare il servizio: ```bash systemctl enable --now mollysocket ``` ### Aggiungere una VAPID key Dare i seguenti comandi: ```bash /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`: ```bash [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: ```bash systemctl daemon-reload systemctl restart mollysocket.service ``` ### Proxy Server - Inserire le seguenti righe nel Caddyfile ```bash > 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: ```bash 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 ``` ## Collegamenti - [https://github.com/mollyim/mollysocket](https://github.com/mollyim/mollysocket) - [https://github.com/mollyim/mollysocket/blob/main/INSTALL.md](https://github.com/mollyim/mollysocket/blob/main/INSTALL.md)