# Environment Variables — Mailcow > **Terakhir Diperbarui:** 2026-07-03 > ⚠️ **Jangan commit `.env`** — hanya `.env.example` di repo. Nilai secret di server: `/opt/stacks/mailcow/.env` --- ## Core install | Variable | Contoh | Keterangan | |----------|--------|------------| | `MAILCOW_HOSTNAME` | `sync.geonet.co.id` | FQDN utama Mailcow (Let's Encrypt) | | `MAILCOW_VM_IP` | `10.100.1.28` | IP LAN VM Mailcow | | `MAILCOW_TIMEZONE` | `Asia/Jakarta` | Timezone container | | `MAILCOW_PUBLIC_IP` | *(IP publik NAT)* | IP publik untuk MX/PTR — set di DNS | | `MAILCOW_STACK_PATH` | `/opt/mailcow-dockerized` | Path deploy di VM `.27` | | `MAILCOW_API_KEY` | *(generate)* | Password API Mailcow (`mailcow.conf` → `MAILCOW_PASS`) | | `SKIP_LETS_ENCRYPT` | `n` | `y` hanya lab tanpa DNS | | `ADDITIONAL_SAN` | | Hostname tambahan di cert (opsional) | --- ## Admin UI | Variable | Contoh | Keterangan | |----------|--------|------------| | `MAILCOW_ADMIN_USER` | `admin` | User default panel Mailcow | | `MAILCOW_ADMIN_PASSWORD` | **SECRET** | Password admin — set saat install / reset di UI | --- ## Mailbox support (Zammad) | Variable | Contoh | Keterangan | |----------|--------|------------| | `MAILCOW_SUPPORT_EMAIL` | `support@geonet.co.id` | Mailbox inbound/outbound Zammad | | `MAILCOW_SUPPORT_PASSWORD` | **SECRET** | Password mailbox — sama untuk SMTP & IMAP di Zammad | --- ## Domain | Variable | Contoh | Keterangan | |----------|--------|------------| | `MAILCOW_DOMAIN_PRIMARY` | `geonet.co.id` | Domain utama | | `MAILCOW_DOMAIN_SECONDARY` | `gegeo.my.id` | Domain tambahan (multi-domain) | --- ## Port layanan (default Mailcow) | Variable | Port | Protokol | Keterangan | |----------|------|----------|------------| | `MAILCOW_PORT_SMTP` | 25 | SMTP | Inbound dari internet — cek firewall & provider | | `MAILCOW_PORT_SMTPS` | 465 | SMTPS | Implicit SSL | | `MAILCOW_PORT_SUBMISSION` | 587 | STARTTLS | **Disarankan** untuk Zammad outbound | | `MAILCOW_PORT_IMAPS` | 993 | IMAPS | **Zammad inbound** fetch email | | `MAILCOW_PORT_POP3S` | 995 | POP3S | Opsional | | `MAILCOW_PORT_HTTPS` | 443 | HTTPS | Web UI + API | --- ## Integrasi Zammad Setelah Mailcow running, konfigurasi di **Zammad → Channels → Email**: ### Outbound (notifikasi tiket) | Variable | Nilai | Keterangan | |----------|-------|------------| | `ZAMMAD_SMTP_HOST` | `mailcowdockerized-postfix-mailcow-1` | Hostname container Postfix (dari jaringan Docker Zammad) | | `ZAMMAD_SMTP_PORT` | `587` | STARTTLS | | `ZAMMAD_SMTP_SSL` | `starttls` | | | `ZAMMAD_SMTP_USER` | `support@geonet.co.id` | | | `ZAMMAD_SMTP_PASSWORD` | **SECRET** | Sama dengan `MAILCOW_SUPPORT_PASSWORD` | > Alternatif dari host: `127.0.0.1:587` jika port di-bind ke localhost + nginx tidak mem-proxy SMTP. ### Inbound (email → tiket) | Variable | Nilai | Keterangan | |----------|-------|------------| | `ZAMMAD_IMAP_HOST` | `mailcowdockerized-dovecot-mailcow-1` | Container Dovecot | | `ZAMMAD_IMAP_PORT` | `993` | SSL | | `ZAMMAD_IMAP_SSL` | `yes` | | | `ZAMMAD_IMAP_USER` | `support@geonet.co.id` | | | `ZAMMAD_IMAP_PASSWORD` | **SECRET** | | **Ref Zammad:** `Zammad/docs/notes/smtp-notification-setup.md`, `Zammad/docs/roadmap.md` Fase 9 --- ## LDAP (Active Directory) Mailcow **bisa** pakai LDAP `10.100.1.40` — sama dengan geonet-console & Zammad. | Variable | Nilai | |----------|-------| | `LDAP_HOST` | `10.100.1.40` | | `LDAP_PORT` | `389` | | `LDAP_BASE_DN` | `DC=gisportal,DC=id` | | `LDAP_BIND_DN` | `Administrator@gisportal.id` | | `LDAP_BIND_PASSWORD` | **SECRET** — reuse geonet-console | **Panduan lengkap:** `docs/notes/ldap-ad-mailcow.md` | Terpusat di AD | Tetap di Mailcow UI | |----------------|---------------------| | Password, nama, on/off user | Domain, alias, template quota | | Grup siapa dapat mailbox | Admin panel (SQL only) | | Atribut `mail` → `@geonet.co.id` | fetchmail POP3 drain | --- ## Legacy SMTP (migrasi dari cPanel) Zammad saat ini memakai hosting idcloudhosting — tetap didokumentasikan sampai cutover Mailcow. | Variable | Nilai | |----------|-------| | `LEGACY_SMTP_HOST` | `sc138.idcloudhosting.cloud` | | `LEGACY_SMTP_PORT` | `465` | | `LEGACY_SMTP_SSL` | `yes` | | `LEGACY_SMTP_SSL_VERIFY` | `yes` | | `LEGACY_SMTP_USER` | `support@geonet.co.id` | | `LEGACY_SMTP_PASSWORD` | **SECRET** | Error historis DNS container: `Zammad/docs/notes/email-geonet-co-id.md` --- ## DNS (panel domain — bukan env Mailcow) | Variable | Contoh | Record | |----------|--------|--------| | `DNS_MX_HOST` | `mail.gisportal.id` | MX → IP publik server | | `DNS_SPF_INCLUDE` | `include:mail.gisportal.id` | TXT SPF | | — | *(dari Mailcow UI)* | TXT DKIM | | — | | TXT DMARC | --- ## Lokasi secret | Secret | Lokasi | |--------|--------| | Mailcow `.env` (repo lokal) | `Mailcow/.env` — gitignored | | Mailcow di production | `/opt/stacks/mailcow/mailcow.conf` + `.env` | | Zammad SMTP saat ini | UI Zammad + `Zammad/docs/notes/smtp-notification-setup.md` |