Belajar Mailserver - Roundcube: Install & Konfigurasi Webmail
Episode 8 of 23

Belajar Mailserver - Roundcube: Install & Konfigurasi Webmail

Memasang wajah depan mail server: menyiapkan PHP-FPM dan Nginx, mengunduh Roundcube, menempatkannya di public_html, instalasi lewat web installer, pengaturan config.inc.php untuk imap_host, smtp_host, dan db_dsnw, lalu mengamankan instalasi dengan menghapus folder installer.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Postfix mengangkut, Dovecot menyimpan, database mengelola akun. Kini saatnya kalian — sebagai pengguna — punya pintu masuk yang ramah: Roundcube, webmail berbasis PHP yang menampilkan email lewat IMAP dan mengirim lewat SMTP.

Episode ini memasang Roundcube dari unduhan resmi sampai siap pakai: persiapan PHP-FPM dan Nginx, web installer, pengaturan config.inc.php, dan langkah pengamanan paling penting — menghapus folder installer. Di akhir episode, kalian bisa login dan membaca email dari browser.

Menyiapkan PHP dan Web Server

Roundcube butuh PHP versi modern dengan ekstensi seperti mbstring, xml, intl, dan openssl. Kita pakai PHP-FPM + Nginx, kombinasi paling umum:

Instal Nginx dan PHP-FPM
sudo apt install -y nginx php-fpm php-mysql php-mbstring php-xml php-intl php-zip

Versi Roundcube 1.7.x resmi membutuhkan PHP 8.1 ke atas — cek versi PHP kalian:

Cek versi PHP
php -v

Di distro 2026, php -v biasanya menampilkan PHP 8.3 atau lebih baru, yang memenuhi syarat. Perlu diingat, Roundcube 1.7 mengenalkan entry point wajib public_html/ — struktur direktori yang dulu opsional kini standar.

Mengunduh Roundcube

Unduh versi stabil terbaru dari situs resmi. Saat artikel ini ditulis, versi tersebut adalah 1.7.2 (Juli 2026):

Unduh dan letakkan Roundcube
cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.7.2/roundcubemail-1.7.2-complete.tar.gz
sudo tar -xzf roundcubemail-1.7.2-complete.tar.gz -C /var/www/
sudo mv /var/www/roundcubemail-1.7.2 /var/www/webmail

Struktur webmail/public_html/ menjadi docroot Nginx, dan file konfigurasi config/ berada di luar docroot — keuntungan keamanan yang baru diwajibkan sejak 1.7.

Konfigurasi Nginx

Buat virtual host dengan docroot menunjuk ke public_html:

Virtual host Nginx untuk webmail
sudo tee /etc/nginx/sites-available/webmail > /dev/null <<'EOF'
server {
    listen 443 ssl;
    server_name webmail.example.com;
    root /var/www/webmail/public_html;
    index index.php;
 
    ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
}
EOF

Aktifkan site dan muat ulang Nginx:

Aktifkan virtual host
sudo ln -s /etc/nginx/sites-available/webmail /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Jangan lupa menambahkan A record webmail.example.com di DNS dan sertifikat untuk hostname itu di episode 6. Jika SSL memakai hostname berbeda, sesuaikan jalur sertifikat.

Menyiapkan Database Roundcube

Roundcube menyimpan pengaturan user, kontak, dan cache di database MySQL sendiri (terpisah dari maildb virtual users):

Buat database untuk Roundcube
sudo mysql -e "CREATE DATABASE roundcubemail;"
sudo mysql -e "CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'ganti-password';"
sudo mysql -e "GRANT ALL ON roundcubemail.* TO 'roundcube'@'localhost';"

Skema tabel akan dibuat otomatis oleh web installer — kalian hanya perlu menyediakan kredensial.

Web Installer dan config.inc.php

Buka https://webmail.example.com/installer di browser. Installer memandu langkah demi langkah: cek prasyarat, koneksi database, dan pembuatan config.inc.php. Bagian paling penting ada di tab Mail server settings. Daripada mengedit file PHP secara manual, Roundcube 1.7 menyediakan bin/console config set untuk mengatur nilai dengan aman:

Set konfigurasi mail lewat console
php /var/www/webmail/bin/console config set db_dsnw 'mysql://roundcube:ganti-password@localhost/roundcubemail'
php /var/www/webmail/bin/console config set default_host localhost
php /var/www/webmail/bin/console config set imap_host 'ssl://localhost:993'
php /var/www/webmail/bin/console config set smtp_host 'ssl://localhost:465'
php /var/www/webmail/bin/console config set smtp_user '%u'
php /var/www/webmail/bin/console config set smtp_pass '%p'

Penjelasan singkat:

  • db_dsnw — koneksi database Roundcube.
  • default_host — host IMAP yang dipakai user saat tidak mengetik host.
  • imap_host / smtp_host — endpoint IMAP dan SMTP, keduanya dengan TLS wajib.
  • smtp_user / smtp_pass — Roundcube memakai kredensial login pengguna (%u / %p) untuk autentikasi SMTP, bukan akun terpisah.

Setelah installer menulis file, pindahkan ke lokasi aman dan beri permission yang benar:

Pindahkan config dan perbaiki permission
sudo cp /var/www/webmail/config/config.inc.php /var/www/webmail/config/config.inc.php
sudo chown -R www-data:www-data /var/www/webmail

Menghapus Folder Installer

Langkah ini wajib — installer yang dibiarkan aktif adalah celah yang diketahui semua penyerang. Hapus direktori installer dan verifikasi:

Hapus folder installer
sudo rm -rf /var/www/webmail/installer

Untuk memastikan instalasi sehat, cek error log dan halaman utama:

Periksa log dan versi Roundcube
sudo tail -n 20 /var/log/nginx/error.log
php /var/www/webmail/bin/console version

bin/console version menampilkan versi Roundcube yang aktif — cek nomornya konsisten dengan unduhan (1.7.2).

Pengamanan Tambahan

Beberapa kebiasaan yang wajib dari hari pertama:

  • Firewall — webmail bisa dibuka dari mana pun, tapi IMAP/SMTP langsung ke publik bisa dibatasi. Episode 16 akan menyusun kebijakan port lengkap.
  • Login rate limit — aktifkan login_throttle di config untuk memperlambat brute force.
  • Session hardening — gunakan samesite = Lax pada cookie dan pastikan HTTPS saja yang melayani webmail.

Tip

Coba login dari browser dengan akun virtual user dari episode 7. Jika berhasil melihat folder INBOX, siklus Postfix → Dovecot → database → Roundcube sudah menyambung penuh — momen yang patut dirayakan sebelum lanjut ke episode berikutnya.

Penutup

Episode 8 selesai. Inti yang harus dibawa pulang:

  • Roundcube 1.7 mewajibkan docroot public_html/ dan PHP 8.1+.
  • imap_host/smtp_host mengarah ke Dovecot dan Postfix dengan TLS; %u/%p memakai kredensial pengguna.
  • Database Roundcube terpisah dari database virtual users.
  • Hapus folder installer — langkah keamanan yang tidak bisa ditawar.
  • bin/console version memverifikasi versi aktif.

Webmail sudah hidup. Di episode 9 kita turun ke level mailbox: Mailbox, Maildir, dan LMTP Delivery — bagaimana pesan benar-benar disimpan dalam direktori cur/new/tmp dan diserahkan lewat LMTP. Sampai jumpa di episode 9!

Belajar Mailserver - Roundcube: Install & Konfigurasi Webmail | Belajar Mailserver