- Python 99.2%
- Dockerfile 0.8%
| config | ||
| docs | ||
| plugins/partecipanti | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| compose.pending-telegram.yaml | ||
| compose.yaml | ||
| README.md | ||
Pontesulpo — #casale
Una conversazione fra il gruppo Telegram e il gruppo WhatsApp degli amici del vecchio canale IRC #casale, collegati tramite Matrix. Pontesulpo è il nome del progetto, ispirato al ponte fisico della città. Hosting su Proxmox, in un LXC Debian 13 con Docker Compose. IRC è rimandato.
Il gruppo Telegram è già esistente e in uso: il progetto ne aggiunge il collegamento a WhatsApp, mantenendo membri e conversazione attuali.
flowchart LR
TG[Gruppo Telegram] <-->|mautrix-telegram| MX[Synapse / stanza #casale]
WA[Gruppo WhatsApp] <-->|mautrix-whatsapp| MX
AD[Amministratore / client Matrix] <--> MX
MX --- PG[(PostgreSQL)]
Il repository integra immagini upstream: Synapse 1.161.0, mautrix Telegram e
WhatsApp v26.09, PostgreSQL 17.11; il profilo web aggiunge Element Web 1.12.28
su loopback. Nginx è installato come pacchetto Debian nel LXC, fuori da Docker.
I digest multiarch in compose.yaml
identificano le immagini esatte. Il plugin Python/maubot aggiunge l'elenco dei
partecipanti e i nick personali; l'inoltro rimane gestito dai bridge upstream.
Installazione
Istanza già preparata: LXC 147, 192.168.1.65, progetto in
/opt/pontesulpo. Seguire l'ultimo miglio per
HAProxy su OPNsense, certificati, credenziali e collegamento dei gruppi.
I passi seguenti servono solo per una nuova installazione.
- Preparare il LXC Debian 13.
- Clonare il repository e copiare
.env.examplein.env. - Scegliere definitivamente il nome Matrix: per questa istanza
pontesulpo.thane.li. - Seguire il bootstrap manuale.
- Collegare gli account e i gruppi seguendo la guida relay.
La prima installazione richiede configurazione locale: docker compose up
da solo non crea credenziali, database applicativi e registrazioni dei bridge.
Il bootstrap resta manuale con comandi degli strumenti upstream. La gestione
assistita dei nick usa lo strumento Python descritto nella relativa guida;
ulteriori tecnologie vanno concordate prima di introdurle.
Gestione
docker compose config --quiet
docker compose up -d --wait --wait-timeout 180
docker compose ps
docker compose logs --tail=100 synapse telegram whatsapp
docker compose stop
Gli healthcheck verificano i processi e il collegamento a Matrix. Non attestano che l'account remoto sia autenticato o che il relay Telegram ↔ WhatsApp funzioni: quello richiede il pilota con gli account reali. Non pubblicare i log grezzi.
Configurazioni generate, chiavi, media e database sono in state/. I container
sono sostituibili; lo stato va trasferito con la procedura di
backup e migrazione. Non eseguire due copie del bridge con
la stessa sessione contemporaneamente.
Accesso e riservatezza
Synapse ascolta sul solo loopback 127.0.0.1:8008; Element su 127.0.0.1:8080.
Nginx nativo ascolta sulle porte 80/443, con i certificati in
/etc/nginx/ssl/. HAProxy su OPNsense inoltra HTTPS al LXC; la sua configurazione è
a cura di Guido. Registrazione pubblica e federazione sono disabilitate.
L'accesso diretto dei partecipanti Matrix è facoltativo.
Il pilota usa una stanza Matrix privata non cifrata: i messaggi sono leggibili dai bridge e conservati in chiaro nel database Matrix. HTTPS protegge il trasporto esterno; non fornisce cifratura end-to-end fra reti diverse. Decidere se abilitare la cifratura fino ai bridge prima di creare le stanze definitive.
eSIM, numero, QR di attivazione, token e sessioni non vanno in Git. Vedere gestione dei dati privati. I file ignorati non sono automaticamente cifrati e non sostituiscono un archivio privato.
Documentazione del progetto
- Piano e decisioni
- Plugin partecipanti: uso, installazione e test
- Alias personali: analisi e piano
- Nick personali: comandi, applicazione e rollback
- Verifiche eseguite
- Indicazioni per gli agenti, richiamate anche da CLAUDE.md
Fonti: Synapse Docker, mautrix Docker, relay condivisi.