In this guide, I will separate the basic email features from the additional features such as Files, Preview, Docs, and Editor in Carbonio CE. So, I have two servers: one for the basic email features and another for the additional features. I’m using this approach to make future upgrades easier.
However, if you want to use the additional features on the same server as the basic features, skip ahead to the “Install Database” step.
Please make sure you have already installed Carbonio CE by following this guide: How to Install Carbonio CE on Oracle Linux 8 Easily.
System Information
Domain : imanudin.web.id Hostname : collaboration IP Address : 192.168.1.243 Hostname (FQDN) : collaboration.imanudin.web.id
Preparation
# Configure /etc/hosts
Please adjust the /etc/hosts file on both servers (the basic features server and the additional features server) as shown below:
127.0.0.1 localhost 192.168.1.242 carbonio.imanudin.web.id carbonio 192.168.1.243 collaboration.imanudin.web.id collaboration
# Get ldap_master_host and ldap_root_password from basic features server
su - zextras zmlocalconfig -s ldap_root_password zmlocalconfig -s ldap_master_url
Example output
[root@localhost ~]# su - zextras Last login: Wed Mar 26 10:48:21 WIB 2025 on pts/0 [zextras@carbonio ~]$ zmlocalconfig -s ldap_root_password ldap_root_password = XBCaetJ5c [zextras@carbonio ~]$ zmlocalconfig -s ldap_master_url ldap_master_url = ldap://carbonio.imanudin.web.id:389
# Install files-ui on basic features server
dnf install carbonio-files-ui carbonio-files-public-folder-ui
# Configure Hostname
Please run the following command
hostnamectl set-hostname collaboration.imanudin.web.id
# Configure /etc/resolv.conf
Adjust /etc/resolv.conf as below :
nameserver 8.8.8.8 nameserver 1.1.1.1 search imanudin.web.id
# 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
For Oracle Linux 8
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 dnf install screen
For Rocky Linux 8
dnf config-manager --set-enabled baseos dnf config-manager --set-enabled appstream dnf config-manager --set-enabled powertools dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf install screen
# 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 service-discover-agent
dnf -y install service-discover-agent
# Install Database
Please run screen (for background process) before starting the installation.
screen
dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf -qy module disable postgresql dnf -y install postgresql16 postgresql16-server
# Initialise and enable the database
/usr/pgsql-16/bin/postgresql-16-setup initdb systemctl enable --now postgresql-16
# Setup Database
export DB_ADM_PWD="StrongPass" su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\"" su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\"" su - postgres -c "psql --command=\"ALTER SYSTEM SET listen_addresses TO '*';\"" su - postgres -c "psql --command=\"ALTER SYSTEM SET max_connections = 500;\"" su - postgres -c "psql --command=\"ALTER SYSTEM SET shared_buffers = 5000;\"" echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/16/data/pg_hba.conf systemctl restart postgresql-16
Note: Please adjust “StrongPass” with your desired password.
# Install Carbonio Database
dnf install carbonio-files-db carbonio-mailbox-db \ carbonio-docs-connector-db
# Initial Configuration
carbonio-bootstrap
Please type 1 then press enter. Please type 2 then press enter to configure ldap master host. Insert ldap server hostname (carbonio.imanudin.web.id)
Address unconfigured (**) items (? - help) 1 Common configuration 1) Hostname: collaboration.imanudin.web.id ** 2) Ldap master host: UNSET 3) Ldap port: 389 ** 4) Ldap Admin password: UNSET 5) LDAP Base DN: cn=zimbra 6) Secure interprocess communications: no 7) TimeZone: America/Los_Angeles 8) IP Mode: ipv4 9) Default SSL digest: sha256 Select, or 'r' for previous menu [r] 2 Please enter the ldap server hostname: carbonio.imanudin.web.id
Please type 4 then press enter to configure Ldap Admin password
Common configuration 1) Hostname: collaboration.imanudin.web.id 2) Ldap master host: carbonio.imanudin.web.id 3) Ldap port: 389 ** 4) Ldap Admin password: Not Verified 5) LDAP Base DN: cn=zimbra 6) Secure interprocess communications: no 7) TimeZone: America/Los_Angeles 8) IP Mode: ipv4 9) Default SSL digest: sha256 Select, or 'r' for previous menu [r] 4 Password for ldap admin user (min 6 characters): [XBCaetJ5c] XBCaetJ5c
Once everything is properly configured, type r to return to the previous menu. Then, type y and press Enter to continue with the bootstrap configuration.
Select, or 'r' for previous menu [r] r Main menu 1) Common Configuration: 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.43242...done. Operations logged to /tmp/zmsetup.20250326-115015.log Setting local config values...done. Updating ldap_root_password and zimbra_ldap_password...done. Setting up CA...done. Deploying CA to /opt/zextras/conf/ca ...done. Creating server entry for collaboration.imanudin.web.id...done. Setting IP Mode...done. Saving CA in ldap...done. Generating dhparam key...done. Setting services on collaboration.imanudin.web.id...done. Setting up syslog.conf...done. Starting servers... done. Skipping creation of default domain GAL sync account - not a service node. Setting up zextras crontab...done. Moving /tmp/zmsetup.20250326-115015.log to /opt/zextras/log Configuration complete - press return to exit
# 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.243/24, fe80::20c:29ff:fee9:cd29/64 Specify the binding address for service discovery: 192.168.1.243/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
Enter the mesh secret password, which can be found in the /var/lib/service-discover/password file on the basic features server.
# Bootstrap Carbonio Databases
PGPASSWORD=$DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1
# Install Carbonio Files and Docs
dnf install carbonio-files-ce carbonio-docs-editor carbonio-docs-connector-ce carbonio-preview-ce
To complete the installation, please run the command below
pending-setups -a
Insert mesh secret password
# Configure Memcached
Open file /etc/carbonio/preview/config.ini
vi /etc/carbonio/preview/config.ini
Adjust the line below. If it does not exist, please add it at the bottom of the file.
nginx_lookup_server_full_path_urls = https://192.168.1.242:7072 memcached_server_full_path_urls = 192.168.1.242:11211
Note:
– nginx_lookup_server_full_path_urls fill with the IP address of mailbox server
– memcached_server_full_path_urls fill with the IP address of proxy server
# Test Carbonio Files
Go to carbonio webmail and test upload files
Good luck