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 - update system

 

2. Install Git

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

# apt -y install git jq
gambar - 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 - 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 - install docker

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

# usermod -aG docker $USER
# newgrp docker
gambar - 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 - docker version

 

C. Install Docker Composer

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

# apt install docker-compose
gambar - 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 - 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 - install mariadb server

 

B. Install libmysqlclient-dev

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

# apt install libmysqlclient-dev
gambar - 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 - konfigurasi mysql

 

D. Membuat Database Postal

Akses database server melalui Localhost dengan Root, seperti berikut :

# mysql -u root -p
gambar - akses database

Membuat database Postal, dengan command berikut :

# CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
gambar - 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 - 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 - allow user postal

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

gambar - 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 - install package
gambar - add repo erlang

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

# apt update
# apt install erlang
gambar - 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 - add repo rabbitmq

Setelah itu dapat lakukan installasi RabbitMQ

# apt install rabbitmq-server
gambar - install rabbitmq

verifikasi installasi RabbitMQ, seperti berikut :

# systemctl status rabbitmq-server.service
gambar - 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 - 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 - clone postal

Setelah itu dapat membuat symlink untuk Postal Binary

# ln -s /opt/postal/install/bin/postal /usr/bin/postal
gambar - 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 - 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 - postal initialize

 

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

# postal make-user
gambar - postal make user

 

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

# postal start
gambar - postal start

 

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

# postal status
gambar - 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 - caddy

 

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

# docker ps -a
gambar - docker ps

 

G. Upgrade Postal

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

# postal upgrade
gambar - 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 - postal login

 

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

gambar - 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.