Kalau kamu pakai CloudPanel di VPS Ubuntu, biasanya web server dan SSL sudah di-handle sama panel itu. Tapi kadang kita juga butuh mail server sendiri, misalnya buat email bisnis atau transactional email.
Salah satu solusi yang cukup populer adalah Mailcow. Mailcow ini lengkap banget, sudah include:
Mail server
Webmail
Anti spam
DKIM
SPF
Manajemen email
Masalahnya, kalau install Mailcow di server yang sama dengan CloudPanel, biasanya port 80 dan 443 sudah dipakai. Jadi kita harus sedikit menyesuaikan konfigurasi.
Di artikel ini gue bakal kasih cara install Mailcow bareng CloudPanel di VPS Ubuntu tanpa bentrok port.
Santai bro, kita jalanin step by step.
Sebelum mulai, pastikan:
- VPS sudah install CloudPanel
- Docker sudah terinstall
- Domain sudah siap (misalnya
mail.domainkamu.com)
Kalau sudah siap, kita mulai.
1. Clone Repository Mailcow
Pertama kita download dulu repository Mailcow dari Github.
Jalankan perintah berikut:
git clone https://github.com/mailcow/mailcow-dockerized /opt/mailcow-dockerized

Perintah ini akan membuat folder:
/opt/mailcow-dockerized
Semua file Mailcow nanti akan ada di situ.
2. Jalankan Script Instalasi Mailcow
Sekarang masuk ke folder Mailcow dan jalankan script konfigurasi.
cd /opt/mailcow-dockerized/ && ./generate_config.sh
Script ini akan menanyakan beberapa konfigurasi.
3. Isi Nama Host Mail Server
Saat diminta hostname, isi dengan domain mail server kamu.
Contoh:
mail.domainkamu.com
Pastikan domain ini sudah diarahkan ke IP VPS kamu.

4. Pilih Timezone Server
Untuk timezone, kamu bisa isi:
Asia/Jakarta

Ini supaya log dan waktu server sesuai dengan zona waktu Indonesia.
5. Pilih Mode Server
Mailcow akan menanyakan jenis instalasi server.
Untuk server produksi yang stabil, pilih: 1

6. Ubah Port HTTP dan HTTPS Mailcow
Nah ini bagian penting bro.
Karena CloudPanel sudah memakai port 80 dan 443, kita harus mengganti port Mailcow supaya tidak bentrok.
Buka file konfigurasi berikut:
nano /opt/mailcow-dockerized/mailcow.conf
Cari bagian konfigurasi port lalu ubah seperti ini:
HTTP_PORT=7080
HTTP_BIND=127.0.0.1
HTTPS_PORT=7443
HTTPS_BIND=127.0.0.1
Penjelasan singkat:
- 7080 port HTTP Mailcow
- 7443 port HTTPS Mailcow
- 127.0.0.1 hanya bisa diakses dari server (lebih aman)
Setelah selesai, simpan file.
7. Jalankan Docker Mailcow
Sekarang kita jalankan semua container Mailcow.
Masuk lagi ke folder Mailcow lalu jalankan:
cd /opt/mailcow-dockerized/ && docker compose pull && docker compose up -d
Perintah ini akan:
- download semua image Docker Mailcow
- menjalankan container email server
- menjalankan web interface Mailcow
Proses pertama biasanya agak lama karena banyak image yang harus didownload.
8. Akses Mailcow dari Browser
Setelah semua container berjalan, Mailcow sudah bisa diakses.
Karena kita tadi ganti port, aksesnya jadi seperti ini:
https://IP-VPS:7443
Atau kalau lewat localhost:
https://127.0.0.1:7443
Nanti kamu bisa setup reverse proxy dari CloudPanel supaya domain seperti:
mail.domainkamu.com
bisa diarahkan ke port Mailcow tersebut.

Kenapa Harus Ganti Port, Bukan Cuma Matiin CloudPanel Aja
Beberapa orang mungkin mikir, kenapa gak matiin aja CloudPanel sementara terus pakai port 80/443 buat Mailcow. Jawabannya simpel: karena CloudPanel itu yang ngatur web hosting dan SSL certificate buat situs-situs lain di VPS yang sama. Kalau dimatiin, semua situs yang dikelola CloudPanel bakal ikutan down. Makanya solusi paling aman ya ganti port Mailcow, biar dua-duanya bisa jalan bareng tanpa saling ganggu. Nanti pas udah stabil, baru kita arahkan domain mail server ke port Mailcow itu lewat reverse proxy dari CloudPanel, jadi dari sisi pengguna tetap keliatan akses normal lewat HTTPS standar (port 443), padahal di belakang layar udah diteruskan ke port custom Mailcow.
Tips Penting Setelah Install
Beberapa hal yang sebaiknya langsung kamu setup setelah Mailcow aktif:
DNS record (MX, SPF, DKIM, DMARC)
Reverse DNS / PTR record
SSL certificate
Anti spam settings
Ini penting supaya email kamu tidak masuk spam.
Khusus soal anti-spam, Mailcow sebenarnya udah include Rspamd bawaan yang cukup pintar buat filter email masuk. Tapi buat email keluar, reputasi domain dan IP VPS kamu juga ngaruh besar. Kalau IP VPS kamu kebetulan bekas dipake spammer sebelumnya (VPS provider sering reuse IP), email kamu bisa otomatis kecap sebagai spam meski konfigurasi DNS-nya udah benar semua. Solusinya, cek dulu reputasi IP VPS kamu di situs kayak mxtoolbox.com sebelum mulai kirim email dalam jumlah banyak, dan kalau ternyata IP-nya udah masuk blacklist, mending minta ganti IP ke provider VPS kamu.
Kendala yang Sering Muncul
- Port 7080/7443 bentrok juga
Kalau masih ada service lain yang pakai port itu, ganti ke port lain yang belum terpakai, cek dulu pakainetstat -tulpn. - docker compose pull gagal/timeout
Biasanya karena koneksi VPS lambat ke Docker Hub, coba ulangi beberapa kali atau cek DNS resolver VPS. - Mailcow gak bisa diakses meski container sudah jalan
Cek firewall/security group, pastikan port yang dipakai (7080/7443) sudah dibuka untuk akses lokal minimal. - Reverse proxy dari CloudPanel gagal connect ke Mailcow
Pastikan target proxy-nya mengarah ke127.0.0.1:7443, bukan ke domain luar.
Penutup
Nah bro, sekarang kamu sudah tahu cara install Mailcow bersama CloudPanel di VPS Ubuntu tanpa bentrok port.
Intinya cuma dua hal penting:
Install Mailcow seperti biasa
Ganti port HTTP dan HTTPS supaya tidak tabrakan dengan CloudPanel
Dengan setup ini kamu bisa punya web hosting dari CloudPanel sekaligus mail server sendiri dari Mailcow dalam satu VPS.
Semoga tutorial santai ini bisa bantu kamu yang lagi setup email server di VPS. Setelah Mailcow jalan, jangan lupa setup DNS record (MX, SPF, DKIM, DMARC) biar email kamu gak masuk folder spam ya bro.


























