wiki/molly_socket.md
2024-10-26 17:36:14 +02:00

144 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 allinterno 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)