Cara Install Mail Server Menggunakan Poste.io di Docker
Membangun mail server pribadi kini jauh lebih mudah dengan bantuan Docker. Salah satu solusi populer adalah Poste.io, sebuah mail server all-in-one berbasis web yang mudah digunakan. Dalam artikel ini, kita akan membahas cara menginstal mail server menggunakan Poste.io di Docker dengan file YAML (docker-compose.yml) sesuai dokumentasi resminya. Panduan ini ideal untuk pemula maupun sysadmin yang ingin solusi cepat dan aman.
✨ Mengapa Memilih Poste.io?
Poste.io memiliki berbagai keunggulan:
- Antarmuka berbasis web (Web UI)
- Terintegrasi dengan antivirus dan antispam
- Mendukung Let’s Encrypt SSL
- Dukungan Docker lengkap
- Otomatisasi penuh dalam satu kontainer
⚙️ 1. Persiapan Sistem
Sebelum memulai, pastikan Anda sudah memiliki:
- Server dengan sistem operasi berbasis Linux (contoh: Ubuntu, Debian, CentOS)
- Docker dan Docker Compose terinstal
- Domain aktif (misalnya: mail.domainanda.com)
- Port 25, 80, 110, 143, 443, 465, 587, 993, 995, dan 4190 terbuka di firewall
📁 2. Buat Direktori Kerja
Gunakan direktori absolut agar lebih jelas dan tidak bergantung pada ~ (home user). Contoh:
sudo mkdir -p /srv/poste/data
cd /srv/poste
📄 3. Buat File docker-compose.yml
Penjelasan Lengkap Port yang Digunakan oleh Poste.io:
| Port | Protokol | Fungsi |
|---|---|---|
| 25 | SMTP | Menerima email dari mail server lain (inbound SMTP) |
| 80 | HTTP | Untuk HTTP biasa, digunakan oleh Let’s Encrypt untuk verifikasi SSL |
| 110 | POP3 | Protokol akses email standar, klien akan mengakses dengan STARTTLS |
| 143 | IMAP | Protokol akses email modern, digunakan dengan STARTTLS |
| 443 | HTTPS | Akses ke webmail dan panel admin via SSL |
| 465 | SMTPS | SMTP lama dengan enkripsi langsung, masih digunakan oleh beberapa klien |
| 587 | MSA | SMTP modern untuk pengiriman email dari klien (dengan autentikasi) |
| 993 | IMAPS | IMAP terenkripsi penuh sejak awal koneksi |
| 995 | POP3S | POP3 terenkripsi penuh sejak awal koneksi |
| 4190 | Sieve | Protokol untuk pengaturan filter email otomatis (server-side rules) |
Pastikan semua port di atas terbuka di firewall dan ISP Anda tidak memblokir port standar email (terutama 25, 465, dan 587).
Buat file docker-compose.yml di dalam direktori /srv/poste dengan isi sebagai berikut:
services:
poste:
image: analogic/poste.io
container_name: mailserver
restart: always
hostname: mail.namadomainmu.id
ports:
- "25:25" # SMTP
- "80:80" # HTTP (Let's Encrypt & redirect)
- "110:110" # POP3
- "143:143" # IMAP
- "443:443" # HTTPS
- "465:465" # SMTPS (legacy)
- "587:587" # MSA SMTP with auth
- "993:993" # IMAPS
- "995:995" # POP3S
- "4190:4190" # Sieve
volumes:
- ./data:/data
environment:
- TZ=Asia/Jakarta
Penjelasan YAML:
image: Menggunakan image resmi dari Docker Hub.container_name: Menetapkan nama kontainer sebagaimailserver.ports: Mengekspose semua port penting untuk layanan email (SMTP, IMAP, POP3, HTTPS, dll).volumes: Menyimpan data ke direktori lokal agar data tidak hilang saat kontainer dihentikan.environment: Mengatur zona waktu agar sesuai dengan lokasi server.
▶️ 4. Jalankan Mail Server
Dari direktori /srv/poste, jalankan perintah berikut:
docker-compose up -d
Perintah ini akan menjalankan container poste.io di background.
🌍 5. Akses Antarmuka Web
Buka browser dan akses:
https://mail.domainanda.com
Pertama kali Anda membuka, akan muncul halaman setup. Anda diminta membuat akun admin dan mengonfigurasi domain email Anda.
🌐 6. Konfigurasi DNS
Tambahkan DNS record berikut di panel domain Anda agar email dapat dikirim dan diterima dengan baik:
| Jenis Record | Host | Nilai / Tujuan | Keterangan |
|---|---|---|---|
| A | IP-Publik-Server-Anda | Untuk menunjuk domain ke server | |
| MX | @ (atau domain utama) | mail.domainanda.com (prioritas 10) | Untuk menerima email |
| TXT | @ | v=spf1 mx ~all | SPF record untuk otorisasi email |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:you@domainanda.com | DMARC record |
| TXT | default._domainkey | (nilai dari panel DKIM poste.io) | DKIM record (di-generate otomatis) |
Catatan: Pastikan semua DNS record sudah tersimpan dan propagasi DNS sudah selesai sebelum menguji pengiriman/terima email.
💾 7. Manajemen dan Backup
Semua data tersimpan di /srv/poste/data. Pastikan direktori ini dibackup secara berkala:
tar czf /root/poste-backup.tar.gz /srv/poste/data
🎉 Penutup
Dengan menggunakan docker-compose.yml, Anda dapat menginstal mail server Poste.io dengan cepat dan efisien. Solusi ini sangat cocok untuk personal, startup, atau organisasi yang membutuhkan kontrol penuh atas sistem email.
🔐 Untuk keamanan tambahan, pastikan server dilindungi firewall, port hanya terbuka untuk layanan yang diperlukan, dan update rutin dilakukan terhadap container., port hanya terbuka untuk layanan yang diperlukan, dan update rutin dilakukan terhadap container.
Dalam dunia Cloud Computing dan DevOps, tiga istilah yang paling sering kita dengar adalah Virtual Machine (VM), Container, dan Pod….
Artikel ini akan membahas langkah end-to-end untuk membangun aplikasi Go REST API, membuat image Docker, lalu melakukan deployment di Kubernetes…
Thank you bang udah sharing, mau nanya sedikit kalau tutorial diatas dilakukan di server vps dan saya ingin menghubungkan server vps dengan server yg ada dilokal, apa memungkinkan? dan konfigurasi nya akan seperti apa ya?
Jadi server lokal sebagai tempat backup atau mail relay gitu.
Bisa, mas! Jadi VPS yang pakai Poste.io bisa dihubungkan ke server lokal, tergantung mau dipakai buat apa:
🔁 Kalau server lokal buat relay (ngirim email lewat VPS):
Install Postfix di server lokal.
Atur supaya email dari lokal dikirim lewat VPS (relayhost).
Di VPS (Poste.io), izinkan IP lokal untuk kirim email.
💾 Kalau server lokal buat backup email:
Bisa pakai rsync buat backup folder /data dari VPS ke lokal.
Atau pakai imapsync buat salin email dari VPS ke server lokal.
Yang penting, dua server bisa saling terhubung (pakai VPN atau IP publik), dan amanin koneksinya.
Wah menarik mas jadi pengen coba, hmm jadi di server lokal gaperlu pakai poste.io/docker kan ya?
cukup postfix aja, atau better di install docker juga?
Betul, mas! Kalau server lokal cuma dipakai buat relay atau backup, nggak perlu install Poste.io atau Docker lagi.
Cukup pakai Postfix (buat relay) atau tools seperti rsync / imapsync (buat backup). Jadi lebih ringan dan simpel. 👍