Apa yang bisa kami bantu?

Pendahuluan

Dalam dunia komunikasi digital, sistem email yang andal dan efisien menjadi kebutuhan penting bagi banyak organisasi. Salah satu platform yang populer untuk mengelola server email adalah Postal, sebuah perangkat lunak sumber terbuka yang dirancang untuk menangani pengiriman email dalam jumlah besar dengan performa tinggi.

Postal menawarkan berbagai fitur unggulan, seperti kemampuan pengelolaan email yang mudah, integrasi API, dukungan untuk email transaksional, serta monitoring yang detail. Dengan menggunakan Postal, Anda dapat membangun server email mandiri yang fleksibel dan hemat biaya.

Artikel ini akan membahas langkah-langkah install Postal di Ubuntu, mulai dari persiapan lingkungan server hingga konfigurasi dasar untuk memastikan Postal berjalan optimal. Panduan ini cocok untuk pemula maupun pengguna berpengalaman yang ingin meningkatkan kemampuan sistem email mereka.

 

Persiapan

Sebelum melakukan installasi Postal melalui VPS, kita perlu mengetahui System Requirement untuk installasi Postal, berikut untuk minimal system requirement installasi Postal :

  • At least 4GB of RAM
  • At least 2 CPU cores
  • At least 100GB of disk space

Memiliki akses atau privilege sebagai Root dan akses ke server melalui SSH.

 

Proses Installasi

Setelah sudah melakukan persiapan untuk installasi Postal, kita bisa langsung melakukan Installasi Postal dengan Workaround berikut :

 

1. Update System

Untuk update system dapat menggunakan command berikut :

# apt update
Gambar 1: update system

 

2. Install Git

Setelah melakukan update system, untuk selanjutnya dapat melakukan installasi Git.

# apt -y install git jq
Gambar 2: install git

 

3. Install Docker dan Docker Compose

Setelah installasi Git, lakukan installasi Docker dan Docker Compose dengan cara berikut :

 

A. Repository Docker

Tambahkan repository docker untuk installasi nantinya.

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg

# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Gambar 3: add repo docker

Setelah itu dapat melakukan update system, dengan menggunakan command :

# apt update

 

B. Install Docker

Setelah menambahkan docker ke repo, kita dapat melakukan installasi docker dengan command berikut :

# apt install docker-ce docker-ce-cli containerd.io
Gambar 4: install docker

Setelah melakukan installasi docker, kita dapat menambahkan user ke group docker.

# usermod -aG docker $USER
# newgrp docker
Gambar 5: add user to docker group

Apabila sudah dilakukan installasi docker, kita dapat melakukan pengecekan apakah docker sudah benar terinstall atau belum, dengan menggunakan command berikut :

# docker version
Gambar 6: docker version

 

C. Install Docker Composer

Setelah installasi docker, kita dapat melakukan installasi Docker Composer dengan menggunakan command berikut :

# apt install docker-compose
Gambar 7: install docker compose

Apabila sudah dilakukan installasi docker compose, kita dapat melakukan pengecekan apakah docker compose sudah benar terinstall atau belum, dengan menggunakan command berikut :

# docker-compose version
Gambar 8: docker compose version

 

4. Install MySQL / MariaDB database server

Pada Postal Mail Server, kita membutuhkan database server untuk menyimpan data dan konfigurasi dari Mail Server, pada Artikel ini kita menggunakan MySQL/Mariadb untuk databasenya, berikut untuk installasi nya :

 

A. Install mariadb

Untuk installasi mariadb, dapat menggunakan command berikut :

# apt install mariadb-server
Gambar 9: install mariadb server

 

B. Install libmysqlclient-dev

Setelah itu lakukan juga installasi libmysqlclient-dev , dengan menggunakan command berikut :

# apt install libmysqlclient-dev
Gambar 10: install libmysqlclient-dev

 

C. Mysql Secure Installation

Setelah melakukan installasi Mysql, kita dapat melakukan konfigurasi MySQL Secure Installation, agar database server lebih aman. Dengan menggunakan command berikut :

# mysql_secure_installation

Dan nantinya akan muncul beberapa pertanyaan untuk konfigurasi MySQL, dan pembuatan password Root untuk akses database, seperti berikut :

Gambar 11: konfigurasi mysql

 

D. Membuat Database Postal

Akses database server melalui Localhost dengan Root, seperti berikut :

# mysql -u root -p
Gambar 12: akses database

Membuat database Postal, dengan command berikut :

# CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
Gambar 13: create DB Postal

Membuat database user, dan berikan akses untuk membuat database, seperti berikut :

# CREATE USER 'postal'@'localhost' IDENTIFIED BY 'StrongPassword';
# GRANT ALL ON postal.* TO 'postal'@'localhost';

*Note : Untuk StrongPassword, silahkan dapat diubah menggunakan password sesuai dengan kebutuhan di sisi Anda.

Gambar 14: create user DB

Postal akan menangani pembuatan database untuk server email Anda, namun Anda perlu memberikan akses untuk melakukan hal ini. Izinkan pengguna postal untuk mengelola semua database yang diawali dengan postal- , seperti berikut :

# GRANT ALL PRIVILEGES ON `postal-%`.* to `postal`@`localhost` IDENTIFIED BY "StrongPassword";
# FLUSH PRIVILEGES;
# QUIT
Gambar 15 allow user postal

Verifikasi untuk user Postal yang sudah dibuat sebelumnya, seperti berikut :

Gambar 16: verif user Postal

 

5. Install RabbitMQ

Postal menggunakan RabbitMQ untuk queue, untuk installasinya dapat mengikuti Workaround berikut :

 

A. Install Erlang/OTP

RabbitMQ membutuhkan Erlang untuk diinstal terlebih dahulu sebelum dapat dijalankan. Bahasa pemrograman Erlang dibangun untuk konkurensi, toleransi kesalahan, dan arsitektur aplikasi terdistribusi. OTP (Open Telecom Platform) adalah kumpulan library dan middleware untuk Erlang.

Sebelum melakukan installasi Erlang, dapat menambahkan erlang ke repo terlebih dahulu, seperti berikut :

# apt install curl software-properties-common apt-transport-https lsb-release
# curl -1sLf 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/setup.deb.sh' | sudo -E bash
Gambar 17: install package
Gambar 18: add repo erlang

Setelah itu dapat melakukan update system, dan lakukan installasi Erlang dengan command berikut :

# apt update
# apt install erlang
Gambar 19: erl installed

 

B. Install RabbitMQ

Sebelum melakukan installasi RabbitMQ, dapat menambahkan RabbitMQ ke repo terlebih dahulu, seperti berikut :

# curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash
# apt update
Gambar 20: add repo rabbitmq

Setelah itu dapat lakukan installasi RabbitMQ

# apt install rabbitmq-server
Gambar 21: install rabbitmq

verifikasi installasi RabbitMQ, seperti berikut :

# systemctl status rabbitmq-server.service
Gambar 22: status rabbitmq

 

C. Konfigurasi RabbitMQ

Setelah melakukan installasi RabbitMQ, dapat melakukan konfigurasi seperti berikut :

# rabbitmqctl add_vhost postal
# rabbitmqctl add_user postal StrongPassword
# rabbitmqctl set_permissions -p postal postal ".*" ".*" ".*"

*Note : Untuk StrongPassword, silahkan dapat diubah menggunakan password sesuai dengan kebutuhan di sisi Anda.

Gambar 23: konfigurasi vhost rabbitmq

 

6. Install dan Konfigurasi Postal

Untuk installasi dan Konfigurasi Postal, dapat mengikuti Workaround berikut :

 

A. Git Clone Postal

Sebelum melakukan installasi Postal, kita perlu melakukan git clone Postal dari repo github, dengan command berikut :

# git clone https://postalserver.io/start/install /opt/postal/install
Gambar 24: clone postal

Setelah itu dapat membuat symlink untuk Postal Binary

# ln -s /opt/postal/install/bin/postal /usr/bin/postal
Gambar 25: symlink postal

 

B. DNS Record Setup

Untuk DNS Record, silahkan dapat melakukan pointing domain ke IP Pyblic Mail Server, seperti berikut :

 

B.1. A Record

Untuk A record, dapat melakukan pointing seperti berikut :

Hostname

Type

Value

postal.example.com    

A

103.x.x.x

*NOTE : Untuk Hostname dan Value, dapat disesuaikan dengan konfigurasi dan keadaan di Server.

 

B.2. SPF Record

Untuk SPF record, dapat melakukan pointing seperti berikut :

Hostname

Type

Value

spf.postal.example.com

TXT

v=spf1 +mx +a +ip4:103.x.x.x +include:_spf.google.com +include:spf.protection.outlook.com  ~all

*NOTE : Untuk Hostname dan Value, dapat disesuaikan dengan konfigurasi dan keadaan di Server.

 

B.3. Route Domain

Untuk Route Domain, dapat melakukan pointing seperti berikut :

Hostname

Type

Value

routes.postal.example.com

MX

v=spf1 +mx +a +ip4:103.x.x.x +include:_spf.google.com +include:spf.protection.outlook.com  ~all

*NOTE : Untuk Hostname dan Value, dapat disesuaikan dengan konfigurasi dan keadaan di Server.

 

B.4. Rerturn Path

Untuk Rerturn Path, dapat melakukan pointing seperti berikut :

Hostname

Type

Value

rp.postal.example.com

A

103.x.x.x

rp.postal.example.com

TXT

v=spf1 +a +mx +include:spf.postal.example.com ~all

*NOTE : Untuk Hostname dan Value, dapat disesuaikan dengan konfigurasi dan keadaan di Server.

 

C. Generate Web Interface

Setelah melakukan pointing DNS Record, lakukan generate Web Interface Postal, menggunakan command berikut :

# postal bootstrap postal.example.com

*NOTE : untuk postal.example.com silahkan dapat menggantinya dengan domain Mail Server yang dimiliki.

Gambar 26: postal bootstrap

Ini akan melakukan generate file di /opt/postal/config , untuk file nya adalah berikut :

  • postal.yml is the main postal configuration file
  • signing.key is the private key used to sign various things in Postal
  • Caddyfile is the configuration for the Caddy webserver

 

D. Konfigurasi Postal

Untuk konfigurasi Postal, dapat menggunakan command berikut :

# vim /opt/postal/config/postal.yml

 

Nantinya akan terdapat file konfigurasi seperti berikut :

web:
  # The host that the management interface will be available on
  host: postal.example.com
  # The protocol that requests to the management interface should happen on
  protocol: https

main_db:
  # Specify the connection details for your MySQL database
  host: localhost
  username: postal
  password: StrongPassword
  database: postal

message_db:
  # Specify the connection details for your MySQL server that will be house the
  # message databases for mail servers.
  host: localhost
  username: postal
  password: StrongPassword
  prefix: postal

rabbitmq:
  # Specify the connection details for your RabbitMQ server.
  host: 127.0.0.1
  username: postal
  password: StrongPassword
  vhost: postal
  
dns:
  # Specifies the DNS record that you have configured. Refer to the documentation at
  # https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further
  # information about these.
  mx_records:
    - mx.postal.example.com
  smtp_server_hostname: postal.example.com
  spf_include: spf.postal.example.com
  return_path: rp.postal.example.com
  route_domain: routes.postal.example.com
  track_domain: track.postal.example.com

smtp:
  # Specify an SMTP server that can be used to send messages from the Postal management
  # system to users. You can configure this to use a Postal mail server once the
  # your installation has been set up.
  host: 127.0.0.1
  port: 2525
  username: # Complete when Postal is running and you can
  password: # generate the credentials within the interface.
  from_name: Postal
  from_address: postal.example.com

Silahkan dapat menyesuiakan untuk konfigurasi Postal dengan credential dan record yang sudah dibuat sebelumnya. 

 

E. Start Postal

Setelah selesai konfigurasi postal, kita perlu initialize database Postal Mail Service, dengan command berikut :

# postal initialize
Gambar 27: postal initialize

 

Kemudian membuat User untuk akses Postal Dashboard nantinya, dengan menggunakan command berikut :

# postal make-user
Gambar 28: postal make user

 

Setelah membuat User, kita dapat mengaktifkan Postal, dengan command berikut :

# postal start
Gambar 29: postal start

 

Nantinya akan running beberapa container, untuk melakukan pengecekan pada Postal yang sudah running, dapat menggunakan command berikut :

# postal status
Gambar 30: postal status

 

F. Konfigurasi Caddy Postal

Web Proxy diperlukan untuk semua traffic web dan SSL Termination. Ada banyak pilihan untuk Proxy, yaitu ada Nginx, Apache, HAProxy, dsb. Dalam panduan ini kita akan menggunakan Caddy.

Untuk running Caddy Web Server, kita dapat menggunakan docker, dengan command berikut :

docker run -d \
   --name postal-caddy \
   --restart always \
   --network host \
   -v /opt/postal/config/Caddyfile:/etc/caddy/Caddyfile \
   -v /opt/postal/caddy-data:/data \
   caddy
Gambar 31: caddy

 

Untuk melakukan pengecekan apakah sudah Running atau belum, dapat menggunakan command berikut :

# docker ps -a
Gambar 32: docker ps

 

G. Upgrade Postal

Setelah Anda menginstal Postal, Anda bisa meng-upgrade ke rilis terbaru dengan menggunakan command berikut :

# postal upgrade
Gambar 33: upgrade postal

 

7. Akses Postal

Setelah melakukan installasi dan konfigurasi postal, kita dapat mengakses Postal menggunakan domain yang sudah kita pointing sebelumnya, berikut untuk dashboard Postal :

Gambar 34: postal login

 

Setelah itu, dapat menggunakan credential User yang sudah dibuat sebelumnya, untuk akses Postal.

Gambar 35: postal Dashboard

 

Penutup

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.