
Roundcube è uno dei client webmail open source più diffusi e apprezzati: un’interfaccia web moderna, leggera e completamente responsive che permette di consultare la propria posta da qualsiasi browser, senza installare nulla sul dispositivo.
Scritto in PHP e distribuito con licenza GPL, viene adottato da provider di hosting, università e aziende di ogni dimensione proprio per la sua semplicità e affidabilità.
Con il tema Elastic, predefinito dalle versioni più recenti, Roundcube offre un’esperienza d’uso molto vicina a quella dei client desktop: gestione di cartelle e filtri, rubrica integrata, ricerca rapida, supporto agli allegati con drag & drop e un sistema di plugin che consente di estenderne le funzionalità, dai filtri lato server con Sieve all’archiviazione dei messaggi.
È importante chiarire subito un punto: Roundcube non è un server di posta.
Si tratta esclusivamente di un’interfaccia web che si collega a un server IMAP/SMTP già esistente, sia esso un server aziendale basato su Postfix e Dovecot, un provider esterno o un servizio come Google Workspace.
Questo lo rende ideale per chi desidera offrire ai propri utenti una webmail self-hosted, mantenendo il pieno controllo sui dati e sull’infrastruttura.
In questa guida vedremo passo dopo passo come installare e configurare Roundcube 1.7 su Ubuntu Server 26.04 LTS, utilizzando lo stack classico Apache, PHP 8.5 e MariaDB.
Partiremo da un server appena installato e arriveremo a una webmail funzionante, pronta per il primo accesso.
PREREQUISITI
- Server con Ubuntu Server 26.04 LTS appena installato, accesso sudo o root via SSH.
- Risorse minime: 1 vCPU, 1–2 GB di RAM, 5 GB di spazio disco (Roundcube è molto più leggero di un CRM completo).
- Un dominio che punti all’IP del server (facoltativo ma consigliato per HTTPS).
- Firewall con le porte 22 (SSH), 80 (HTTP) e 443 (HTTPS) raggiungibili.
IMPORTANTE: Roundcube è un client webmail, non un server di posta. Serve già un server IMAP/SMTP funzionante a cui collegarsi (il tuo provider, un server Postfix/Dovecot aziendale, Google Workspace, ecc.). Questa guida configura solo l’interfaccia web.
AGGIORNAMENTO DEL SISTEMA
|
0
1
2
3
4
5
6
|
sudo apt update && sudo apt upgrade -y
sudo apt install -y software-properties-common curl wget tar ufw
sudo ufw allow OpenSSH
sudo ufw enable
|
INSTALLAZIONE DI APACHE
|
0
1
2
3
4
|
sudo apt install -y apache2
sudo systemctl enable --now apache2
sudo ufw allow "Apache Full"
|
INSTALLAZIONE DI PHP E DELLE ESTENSIONI
Roundcube 1.7 richiede PHP 8.1 o superiore: il PHP 8.5 già presente nei repository di Ubuntu 26.04 va benissimo, nessuna PPA necessaria.
|
0
1
2
|
sudo apt install -y php libapache2-mod-php php-cli \
php-mysql php-mbstring php-intl php-xml php-curl \
php-zip php-gd php-imagick php-ldap
|
Le estensioni PCRE, DOM, JSON, Session, OpenSSL, Filter, Ctype e Sodium sono già incluse nel core di PHP 8.5, quindi non servono pacchetti a parte.
Parametri consigliati. Apri /etc/php/8.5/apache2/php.ini e alza i limiti per gestire comodamente gli allegati email:
|
0
1
2
3
4
5
6
|
sudo sed -i \
-e 's/^memory_limit = .*/memory_limit = 256M/' \
-e 's/^upload_max_filesize = .*/upload_max_filesize = 25M/' \
-e 's/^post_max_size = .*/post_max_size = 30M/' \
-e 's/^max_execution_time = .*/max_execution_time = 120/' \
-e 's/^;date.timezone =.*/date.timezone = Europe\/Rome/' \
/etc/php/8.5/apache2/php.ini
|
Quindi riavviare Apache:
|
0 |
sudo systemctl restart apache2
|
INSTALLAZIONE E CONFIGURAZIONE DI MARIADB
Installare MariDB con i seguenti comandi:
|
0
1
2
3
4
|
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mariadb-secure-installation
|
Durante mysql_secure_installation rispondi Y a tutte le domande.
Poi crea il database con i seguenti comandi:
|
0 |
sudo mysql -u root -p
|
Quindi eseguire i comandi:
|
0
1
2
3
4
|
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'roundcube_user'@'localhost' IDENTIFIED BY 'Password_Sicura!23';
GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
|
NOTA BENE: sostituisci Password_Sicura!23 con una password robusta servirà nel file di configurazione allo step IMPORTAZIONE DELLO SCHEMA DEL DATABASE.
DOWNLOAD ED ESTRAZIONE DI ROUNDCUBE
Scarica il pacchetto “complete” (include già le dipendenze, non serve Composer).
La versione 1.7.1 è la release stabile attuale al momento della stesura controlla su roundcube.net/download se ne è uscita una più recente.
|
0
1
2
3
4
5
6
|
cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.7.1/roundcubemail-1.7.1-complete.tar.gz
sudo mkdir -p /var/www/roundcube
sudo tar xzf roundcubemail-1.7.1-complete.tar.gz -C /var/www/roundcube --strip-components=1
|
IMPORTAZIONE DELLO SCHEMA DEL DATABASE
|
0 |
mysql -u roundcube_user -p roundcubemail < /var/www/roundcube/SQL/mysql.initial.sql
|
FILE DI CONFIGURAZIONE (CONFIG.INC.PHP)
|
0
1
2
3
4
|
sudo cp /var/www/roundcube/config/config.inc.php.sample /var/www/roundcube/config/config.inc.php
openssl rand -base64 24
sudo nano /var/www/roundcube/config/config.inc.php
|
Il comando openssl rand -base64 24 genera una chiave casuale: copiala nel campo des_key. Imposta questi valori nel file:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
|
$config['db_dsnw'] = 'mysql://roundcube_user:Password_Sicura!23@localhost/roundcubemail';
$config['imap_host'] = 'ssl://mail.tuodominio.org:993';
$config['smtp_host'] = 'tls://mail.tuodominio.org:587';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['des_key'] = 'INCOLLA_QUI_LA_CHIAVE_GENERATA';
$config['plugins'] = ['archive', 'zipdownload'];
$config['support_url'] = '';
$config['product_name'] = 'Webmail';
|
Sostituisci mail.tuodominio.org con l’host IMAP/SMTP reale del tuo provider di posta.
Se il tuo server di posta supporta Sieve (filtri lato server via Dovecot), puoi aggiungere ‘managesieve’ all’elenco dei plugin e impostare $config[‘managesieve_host’].
PERMESSI DEI FILES
|
0
1
2
3
|
sudo chown -R www-data:www-data /var/www/roundcube
sudo find /var/www/roundcube -type d -exec chmod 755 {} \;
sudo find /var/www/roundcube -type f -exec chmod 644 {} \;
sudo chmod -R 770 /var/www/roundcube/temp /var/www/roundcube/logs
|
Le cartelle temp e logs devono restare scrivibili da Apache; il resto dell’installazione no.
VIRTUAL HOST DI APACHE
Dalla versione 1.5 in poi, Roundcube serve i file dalla sottocartella public_html/, non dalla radice del pacchetto è importante puntare lì il document root e bloccare l’accesso diretto alle altre cartelle.
|
0
1
|
sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/roundcube.conf
|
Contenuto del file /etc/apache2/sites-available/roundcube.conf:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<VirtualHost *:80>
ServerName webmail.tuodominio.org
DocumentRoot /var/www/roundcube/public_html
<Directory /var/www/roundcube/public_html>
AllowOverride All
Require all granted
</Directory>
<DirectoryMatch "/var/www/roundcube/(config|temp|logs|SQL|bin|installer)">
Require all denied
</DirectoryMatch>
ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined
</VirtualHost>
|
Attiva il sito con i comandi:
|
0
1
2
3
4
|
sudo a2ensite roundcube.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
|
PRIMO ACCESSO E VERIFICA
Apri http://webmail.tuodominio.org nel browser: dovresti vedere la schermata di login di Roundcube.
Accedi con un account email reale (utente e password IMAP del tuo server di posta) e verifica che la casella si carichi correttamente.
Sopra un immagine che mostra il client della Mailbox
Se preferisci usare l’installer guidato via browser invece della modifica manuale di config.inc.php (step 07), puoi visitare http://webmail.tuodominio.org/installer/: ricordati però di eliminarlo subito dopo l’uso, perché espone dettagli di configurazione:
|
0 |
sudo rm -rf /var/www/roundcube/installer
|
HTTPS CON LET’S ENCRYPT
|
0
1
|
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d webmail.tuodominio.org
|
Verifica il rinnovo automatico:
|
0 |
sudo certbot renew --dry-run
|
CONFIGURAZIONE DI BASE AGGIUNTIVA
Pulizia automatica del database: Roundcube include uno script per rimuovere sessioni scadute e voci temporanee.
Aggiungilo al cron:
|
0
1
|
sudo crontab -u www-data -e
0 3 * * * /var/www/roundcube/bin/cleandb.sh > /dev/null 2>&1
|
Identità e firma predefinita: dopo il primo login, in Impostazioni → Identità puoi definire nome, firma e risposta automatica predefiniti per i nuovi utenti.
Limiti di accesso: se il webmail è esposto pubblicamente, valuta di limitare i tentativi di login (fail2ban con il filtro per Roundcube è un’opzione comune) per ridurre il rischio di brute force.
Checklist di verifica finale
- Servizi attivi systemctl status apache2 mariadb restituiscono entrambi “active (running)”.
- Login riuscito con un account IMAP reale e casella caricata correttamente.
- Invio di un’email di test riuscito (verifica la connessione SMTP).
- Cartella /installer rimossa o comunque non raggiungibile dall’esterno.
- Sito raggiungibile in HTTPS senza avvisi del certificato.
- Cron cleandb.sh configurato per la pulizia periodica del database.
- Nessun errore di scrittura su temp/ e logs/ durante l’uso normale.
CONCLUSIONI
Con questa guida abbiamo visto come installare e configurare Roundcube 1.7 su Ubuntu Server 26.04 LTS, partendo da un server appena installato fino ad arrivare a una webmail funzionante.
Abbiamo preparato lo stack Apache, PHP 8.5 e MariaDB, creato il database dedicato, configurato il collegamento al server IMAP/SMTP e impostato un virtual host che espone solo la cartella public_html, come raccomandato dalle versioni più recenti.
Il risultato è una webmail self-hosted leggera, moderna e facilmente personalizzabile.
È adatta sia a piccole realtà che vogliono offrire un accesso web alla posta, sia a contesti aziendali che preferiscono mantenere il pieno controllo dei dati senza affidarsi a servizi esterni.
Prima di mettere Roundcube in produzione, consiglio alcuni passaggi aggiuntivi:
- Attivare HTTPS con un certificato Let’s Encrypt tramite Certbot, così che credenziali e messaggi non viaggino mai in chiaro.
- Rimuovere la cartella installer e verificare che enable_installer sia disattivato.
- Proteggere il login da attacchi brute force, ad esempio con Fail2ban configurato sui log di Roundcube.
- Pianificare backup regolari del database roundcubemail e del file config.inc.php.
- Tenere aggiornato Roundcube, seguendo le release ufficiali: gli aggiornamenti di sicurezza sono frequenti e importanti per un’applicazione esposta su Internet.
Da qui in poi si può estendere la webmail con i numerosi plugin disponibili, come managesieve per i filtri lato server, password per permettere agli utenti di cambiare la propria password o l’autenticazione a due fattori, adattandola alle proprie esigenze.

0 Commenti