In this guide, I am using Oracle Linux 8. However, you can adapt it for Rocky Linux 8 or AlmaLinux 8. Additionally, this guide only covers the basic installation for email usage. It does not include features such as chat, office, or file sharing. I will create a separate guide for enabling those features.
System Information
Domain : imanudin.web.id Hostname : carbonio IP Address : 192.168.1.242 Hostname (FQDN) : carbonio.imanudin.web.id
# Configure /etc/hosts
Adjust /etc/hosts as below :
127.0.0.1 localhost 192.168.1.242 carbonio.imanudin.web.id carbonio
# Configure Hostname
Please run the following command
hostnamectl set-hostname carbonio.imanudin.web.id
# Configure /etc/resolv.conf
Adjust /etc/resolv.conf as below :
nameserver 127.0.0.1 nameserver 8.8.8.8 nameserver 1.1.1.1 search imanudin.web.id
# Disable sendmail and postfix services
systemctl disable --now sendmail systemctl disable --now postfix
# Configure Selinux and Firewall
sed -i s/'SELINUX='/'#SELINUX='/g /etc/selinux/config echo 'SELINUX=disabled' >> /etc/selinux/config setenforce 0 service firewalld stop service iptables stop service ip6tables stop systemctl disable firewalld systemctl disable iptables systemctl disable ip6tables
# Enable Repository
dnf config-manager --set-enabled ol8_baseos_latest dnf config-manager --set-enabled ol8_appstream dnf config-manager --set-enabled ol8_codeready_builder dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# Install and configure DNSMasq (local DNS)
dnf install dnsutils screen dnsmasq
Please run the following command
echo "server=8.8.8.8 mx-host=imanudin.web.id,carbonio.imanudin.web.id,10 host-record=imanudin.web.id,192.168.1.242 host-record=carbonio.imanudin.web.id,192.168.1.242" > /etc/dnsmasq.d/imanudin.web.id.conf
Please open file /etc/dnsmasq.d/imanudin.web.id.conf and adjust with your system
# Restart dnsmasq service
systemctl enable --now dnsmasq systemctl restart dnsmasq
Test DNS using host command
host -t MX imanudin.web.id host -t A carbonio.imanudin.web.id
The result will look like below
root@mail:~# host -t MX imanudin.web.id imanudin.web.id mail is handled by 10 carbonio.imanudin.web.id. root@mail:~# host -t A carbonio.imanudin.web.id mail.imanudin.web.id has address 192.168.1.242
# Configure Zextras Carbonio CE Repository
Please run the following command
cat << EOF > /etc/yum.repos.d/zextras.repo [zextras] name=zextras baseurl=https://repo.zextras.io/release/rhel8 enabled=1 repo_gpgcheck=1 gpgcheck=0 gpgkey=https://repo.zextras.io/repomd.xml.key EOF
# Install Zextras Carbonio CE
Please run screen (for background process) before starting the installation.
screen
dnf install service-discover-server \ carbonio-directory-server \ carbonio-proxy carbonio-webui \ carbonio-mta \ carbonio-appserver carbonio-storages-ce \ carbonio-message-broker \ carbonio-user-management
# Initial Configuration
carbonio-bootstrap
Just type y and click the enter button for the initialization process. Below is an example output
Main menu 1) Common Configuration: 2) carbonio-antivirus: Enabled 3) carbonio-directory-server: Enabled 4) carbonio-mta: Enabled 5) carbonio-appserver: Enabled 6) carbonio-proxy: Enabled s) Save config to file x) Expand menu q) Quit *** CONFIGURATION COMPLETE - press 'y' to apply configuration Select from menu, or press 'y' to apply config (? - help) y Saving config in /opt/zextras/config.18258...done. Operations logged to /tmp/zmsetup.20250324-140819.log Setting local config values...
# Setup Carbonio Mesh
service-discover setup-wizard
Insert IP that used (with netmask). Please insert the password for mesh secret. Below is an example output
Setup of first service-discover server instance ens160 192.168.1.242/24, fe80::20c:29ff:fee9:cd29/64 Specify the binding address for service discovery: 192.168.1.242/24 Create the cluster credentials password (will be used for setups): Type the credential password again:
To complete the installation of Carbonio Mesh, please run the command below
pending-setups -a
Insert mesh secret password that input formerly. The mesh secret password is saved at /var/lib/service-discover/password file
# Setup Memcached
su - zextras carbonio prov ms $(zmhostname) zimbraMemcachedBindAddress $(hostname -i)
# Restart Zextras Carbonio CE services
zmcontrol stop zmcontrol start
# Change Zextras admin password
Zextras Carbonio CE use zextras@domainname as Global Admin. Please change the password for that user for login
zmprov setpassword zextras@imanudin.web.id NewStrongpassword
# Test Zextras Carbonio Admin and Webmail
To access Zextras Carbonio CE, please access URL: https://ip-address for webmail and URL: https://ip-address:6071 for Admin. Login as default user zextras@imanudin.web.id. Below is some screenshot from Zextras Carbonio CE




Good luck