Documentazione
Installazione
Questa pagina accompagna dal file scaricato al servizio in funzione. Poi si continua con Primi passi.
Calcoli circa mezz’ora, se database e DNS sono già pronti.
Prima di iniziare
| Sistema operativo | macOS 14 o più recente · Linux con systemd |
| Database | MariaDB 11 o MySQL 8, raggiungibile (può girare sulla stessa macchina) |
| Memoria | 2 GB bastano per installazioni piccole |
| Disco | circa 33 MB ogni 1 000 messaggi, dati grezzi e indice di ricerca insieme |
| Rete | un indirizzo fisso o DynDNS e un record DNS che punta alla macchina |
Il database deve essere attivo prima che il servizio parta. Lo script di installazione non lo crea di proposito — non sa se Lei gestisce un’istanza propria, e non si azzarda a toccare i Suoi dati.
1. Controllare il pacchetto
Per ogni pacchetto, sulla pagina di download è indicato un checksum. Lo ricalcoli, prima di estrarre qualsiasi cosa:
shasum -a 256 annexgroup-<versione>-<piattaforma>.tar.gz
Se non coincide con quello indicato, interrompa e scarichi di nuovo. Poi estragga:
tar xzf annexgroup-<versione>-<piattaforma>.tar.gz
cd annexgroup-<versione>-<piattaforma>
Nel pacchetto ci sono: il programma come un unico file, una
configurazione di esempio, la definizione del servizio e uno script che
sa fare entrambe le cose — installare e, con --uninstall, rimuovere di nuovo.
2. Installare
Linux:
sudo ./install-linux.sh
macOS:
sudo ./install-macos.sh
È richiesto macOS 14 o più recente. Su un sistema più vecchio, il programma di installazione si ferma prima di scrivere qualsiasi cosa e ne indica la causa: «AnnexGroup richiede macOS 14 o più recente; questo Mac ha macOS …». L’installazione è verificata su Apple Silicon; il pacchetto Intel è compilato, notarizzato e ha funzionato sotto Rosetta, ma non è ancora stato misurato su un Mac Intel con macOS 14.
Lo script crea l’utente del servizio, le directory e il servizio di sistema e non avvia il servizio di proposito. Si conclude con i passaggi che seguono ora — gli stessi di questa pagina.
Dove scrive:
| Linux | macOS | |
|---|---|---|
| Programma | /usr/local/bin/annexgroup |
/usr/local/bin/annexgroup |
| Configurazione | /etc/annexgroup/config.yaml |
/usr/local/etc/annexgroup/config.yaml |
| Dati | /var/lib/annexgroup |
/usr/local/var/annexgroup |
| Log | /var/log/annexgroup |
/usr/local/var/log/annexgroup |
| Servizio | annexgroup.service |
biz.ma-kom.annexgroup.plist |
Una config.yaml già esistente non viene sovrascritta.
3. Creare il database
mariadb -e "CREATE DATABASE annexgroup CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mariadb -e "CREATE USER 'annexgroup'@'localhost' IDENTIFIED BY '<password>';"
mariadb -e "GRANT ALL ON annexgroup.* TO 'annexgroup'@'localhost';"
utf8mb4 non è una raccomandazione, ma un prerequisito: senza di esso vanno in
errore lettere accentate, emoji e molti nomi degli allegati.
4. Adattare la configurazione
Nella config.yaml servono due indicazioni, tutto il resto ha valori
predefiniti sensati:
domain: suo-dominio.it
database_dsn: "annexgroup:<password>@tcp(127.0.0.1:3306)/annexgroup?parseTime=true&loc=UTC"
Dietro un proxy (nginx e simili): lo inserisca sotto
trusted_proxies, altrimenti blocco di accesso, lista nera e log trattano
sempre le richieste come provenienti da lui:
trusted_proxies:
- 192.168.1.5 # l'indirizzo dell'nginx che inoltra a questo server
- 10.0.0.0/24 # oppure una rete da cui provengono solo proxy
5. Avviare il servizio
Linux:
sudo systemctl enable --now annexgroup
systemctl status annexgroup
macOS:
sudo launchctl bootstrap system /Library/LaunchDaemons/biz.ma-kom.annexgroup.plist
6. Le porte — sotto macOS il punto in cui si inceppa
Sotto Linux il servizio ascolta sulle porte consuete: 25, 143, 993, 443 e 587.
Sotto macOS no. Il servizio gira come _annexgroup e per questo non può
occupare porte sotto la 1024. Ascolta su porte alte, e il router mappa quelle
pubbliche su di esse:
| pubblica | su questa macchina | a cosa serve |
|---|---|---|
| 25 | 1025 | Consegna da server di posta esterni (MX) |
| 587 | 1587 | Invio, STARTTLS |
| 465 | 1465 | Invio, TLS immediato |
| 143 | 1143 | IMAP, STARTTLS |
| 993 | 1993 | IMAP, TLS immediato |
| 443 | 8443 | Interfaccia web |
Senza questa mappatura non riceve posta dall’esterno — il server in sé funziona comunque e non segnala alcun errore. Questa è la causa più comune di «tutto verde, ma non arriva nulla».
6a. Il certificato — altrimenti due porte non partono
Tra «avviare il servizio» e l’assistente c’è un punto che il server non risolve da solo. Le porte con TLS immediato — 465 (invio) e 993 (IMAP) — senza certificato non partono. Una porta che i programmi di posta ritengono cifrata non può esserlo solo a volte.
Tre modi, e ne serve esattamente uno:
| Modo | Quando | Cosa va nella config.yaml |
|---|---|---|
| Let’s Encrypt automatico | Il server è raggiungibile da Internet con il suo nome, porte 80 e 443 aperte | acme: true e acme_email: … |
| Certificato proprio | Ne ha uno, o un’autorità di certificazione interna | tls_cert: e tls_key: con percorso completo |
| Autofirmato | solo per provare nella Sua rete | non inserisca nulla — il server ne genera uno al primo avvio |
Con un certificato autofirmato ogni programma di posta segnala un avviso, e la configurazione con il solo indirizzo non funziona: i percorsi
autoconfig.eautodiscover.devono comparire nello stesso certificato, altrimenti il programma interrompe la connessione prima di leggere le informazioni.
7. Aprire l’assistente di configurazione
https://<suo-host>/setup (Linux)
https://<suo-host>:8443/setup (macOS)
Lì crea il primo dominio, il primo amministratore e una password di root separata. I primi 14 giorni girano con la piena funzionalità senza licenza.
Come si prosegue — record DNS, recapitabilità, configurazione con il solo indirizzo — è descritto in Primi passi.
Se qualcosa non funziona
| Segno | Probabile causa |
|---|---|
| Il servizio non parte, il log cita il database | database_dsn errato, database non creato, oppure MariaDB non è in esecuzione |
| L’interfaccia web non risponde | sotto macOS la mappatura delle porte (sezione 6); sotto Linux il firewall |
| 465 e 993 non rispondono, 25 e 143 sì | nessun certificato — veda 6a. Le porte con TLS immediato senza certificato non partono proprio |
| Il programma di posta segnala un avviso sul certificato | certificato autofirmato, oppure autoconfig./autodiscover. vi mancano |
| I server di posta esterni non La raggiungono | la porta 25 è bloccata da molti provider — la faccia sbloccare presso il provider |
| I programmi di posta non trovano i nomi dei server | mancano le voci SRV e CNAME descritte in Primi passi |
I log si trovano in /var/log/annexgroup (Linux) rispettivamente
/usr/local/var/log/annexgroup (macOS).
Disinstallazione
sudo ./install-linux.sh --uninstall # oppure install-macos.sh
Vengono rimossi solo il programma e il servizio. Configurazione, dati, log, il database e l’utente del servizio restano di proposito — uno script di disinstallazione che cancella le caselle di posta è un errore, non una funzione.
Qualcosa di poco chiaro o descritto male? Ce lo dica — lo correggeremo. La Sua domanda ci mostra dove il testo è carente.