How to Install Zextras Carbonio Community Edition (CE)

Posted by

Zextras Carbonio Community Edition (CE) is one of the solutions for Zimbra Open Source Edition users. Considering that Zimbra Open Source edition is no longer officially created by Zimbra. Indeed, we can create a Zimbra installer independently using the guidelines provided by Zimbra. One of them is created by Zextras here: https://zextras.com/zextras-build-based-on-zimbra-official-repository

In this article, I am using Ubuntu 20.04. To make it easier, here is the system that will be created:

IP Address : 192.168.1.27
Hostname (Short) : mail
Domain : imanudin.web.id
Hostname (FQDN) : mail.imanudin.web.id

# Hostname Configuration

Please run the following command

hostnamectl set-hostname mail.imanudin.web.id

# /etc/hosts Configuration

Adjust /etc/hosts as below :

127.0.0.1     localhost
192.168.1.27  mail.imanudin.web.id  mail

# /etc/resolv.conf Configuration

rm /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

# Disable UFW

systemctl disable --now ufw

# DNS configuration (local dns) – Optional

Local DNS is required if you don’t have active DNS records. I always install local DNS even have active DNS records. This local DNS is for internal communication only. So, if there is a problem with active DNS (production), Zextras Carbonio Community Edition (CE) can still be used for internal

apt update -y
apt upgrade -y
systemctl disable --now systemd-resolved.service
apt install dnsmasq

Adjust /etc/dnsmasq.conf as below :

server=8.8.8.8
mx-host=imanudin.web.id,mail.imanudin.web.id,10
host-record=imanudin.web.id,192.168.1.27
host-record=mail.imanudin.web.id,192.168.1.27

Restart dnsmasq service

systemctl enable --now dnsmasq
systemctl restart dnsmasq

Test DNS using host command

host -t MX imanudin.web.id
host -t A mail.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 mail.imanudin.web.id.
root@mail:~# host -t A mail.imanudin.web.id
mail.imanudin.web.id has address 192.168.1.27

# Zextras Carbonio CE Repository configuration
Please go to https://zextras.com/carbonio-community-edition/ and fill the form to get the full intruction regarding setup Zextras Carbonio CE Repository
# Install Zextras Carbonio CE

apt update
apt upgrade
apt install screen libpangocairo-1.0-0

Note: I always use “screen” for prevention. If you install Zextras Carbonio CE using remote install like SSH to server, I recommend you to run screen first before install Zextras Carbonio CE

apt install service-discover-server \
carbonio-directory-server \
carbonio-proxy \
carbonio-webui carbonio-files-ui \
carbonio-mta \
carbonio-appserver \
carbonio-user-management \
carbonio-files-ce carbonio-files-db \
carbonio-storages-ce \
carbonio-preview-ce \
carbonio-docs-connector-ce carbonio-docs-editor \
postgresql-12 carbonio-prometheus

# Check Carbonio CE service

systemctl status carbonio-*

Note: If any service fails, restart the service. The service that fails most often is the Carbonio Monitoring exporter. Restart that service manually

systemctl restart carbonio-prometheus-nginx-exporter.service

# Initial Configuration

carbonio-bootstrap

Just type y and click the enter button for the initialization process. Below is an example output

root@ubuntu:~# carbonio-bootstrap
----------------------------------
| Starting Carbonio Bootstrap... |
----------------------------------
--------------------------------------------------------------------------------
Zextras may collect a minimal set of public-facing technical information about 
your use of Carbonio CE. This data should not contain personal identifiable 
information, but in case they are subject to Zextras' Privacy Policy 
[https://www.zextras.com].

As an additional condition, use of the entire software is conditional upon your 
acceptance that no liability whatsoever shall be attributable to Zextras except 
that for gross negligence or malice. Nothing in this condition detracts from 
the provisions of the single licenses for the same case. Should you not accept 
this condition you use of the software would not be permitted and your licenses 
would be terminated.

No trademark license is granted nor implied. Trademark use, where expressly 
permitted, is subject to the then-current trademark policy of Zextras. 
[https://www.zextras.com]
--------------------------------------------------------------------------------

Operations logged to /tmp/zmsetup.20230509-213603.log

Bootstrap mode: new install
Installing LDAP configuration database...done.
Setting defaults...

Querying DNS for "A" record of current hostname mail.imanudin.web.id...done.

Querying DNS for "MX" record of imanudin.web.id...done.

Querying DNS for "A" record of mail.imanudin.web.id...done.	MX: mail.imanudin.web.id (192.168.1.27)

	Interface: 127.0.0.1
	Interface: ::1
	Interface: 192.168.1.27


Querying DNS for "A" record of mail.imanudin.web.id...done.		192.168.1.27


Querying DNS for "A" record of mail.imanudin.web.id...done.		192.168.1.27


Querying DNS for "A" record of mail.imanudin.web.id...done.		192.168.1.27
done.
Checking for port conflicts

Main menu

   1) Common Configuration:                                                  
   2) carbonio-directory-server:               Enabled                       
   3) carbonio-mta:                            Enabled                       
   4) carbonio-appserver:                      Enabled                       
   5) 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

# 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.27/24, fe80::20c:29ff:fee9:cd29/64
Specify the binding address for service discovery: 192.168.1.27/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

# Create Main DB Role and Database for Carbonio CE

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;\""

Note: Please adjust DB_ADM_PWD with strong password

# Initial Carbonio Files Databases

Please run the following command

PGPASSWORD=DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1

Note: Please adjust DB_ADM_PWD with strong password

Below is an example output

root@ubuntu:~# PGPASSWORD=DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1
Database: 127.0.0.1:5432 user carbonio_adm
Check postgres connection: OK
CREATE ROLE
CREATE DATABASE
====================================================
carbonio-files-db database initialized successfully!
====================================================

Restart Zextras services

su - zextras
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

Zextras carbonio CE webmail
Zextras carbonio CE mail folder
Zextras carbonio CE admin
Zextras carbonio CE admin dashboard

Good luck 🙂

18 comments

  1. Hello, very clever guy 🙂
    Very big thank for your manuals!
    Can you please help me with external mail warning, like you wrote about zimbra 8 🙂
    Its not working in Carbonio CE 🙁 smthing changed there 🙁

  2. halo mas, saya sudah ikutin instuksi dari atas sampe bawah, tapi pas saya testing kirim email ke email pribadi saya, kok tidak ditermina ya?, padahal tidak ada error

      1. Untuk terima email apakah harus dengan port 25 juga?, atau bisa diganti ya mas ?.

        Soalnya port 25nya di tutup dari isp, di kasih smtp relay dari isp.

        Pas di coba kirim email ke jeffri@kantor.com, emailnya masuk, lalu coba di bales ke dari email kantor tidak masuk emailnya ke mail server.

        Apa smtp relay cuman bisa kirim tapi gk bisa nerima ?

        Kalau biar bisa nerima email dari luar dengan port 25 yg di blok ini gimana ya mas

        Terima kasih

  3. Hello sir,
    can you please explain how to set up the zextras carbonio ce multi server installation on ubuntu 20.04

      1. we have tried so many times but after we live the carbonio in production environment it always failed to restart the proxy and show the error of ssl certificate as well as the mailstore server automatically stops their services. Kindly do needful if possible.

        Thanks

  4. Dear Sir,
    I have tried your docs to install the carbonio ce but there are some problems faced by me. Such as I have not seen the proper admin panel in which only mail store list are available not all the servers ( Ldap and Proxy ). Can you please help me.

  5. hello sir,
    will we have to configure the dnsmasq service on all five nodes? or only ldap node? Kindly rply.

  6. hola amigo tengo este lio no levanta service-discover
    root@mail:~# systemctl status service-discover
    ● service-discover.service – Service discover server for Zextras
    Loaded: loaded (/lib/systemd/system/service-discover.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Thu 2024-11-14 21:11:02 -05; 2s ago
    Docs: https://docs.zextras.com/
    Process: 77338 ExecStart=/usr/bin/service-discoverd server (code=exited, status=2)
    Main PID: 77338 (code=exited, status=2)

    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: github.com/hashicorp/consul/command/agent/agent.go:61 +0x27
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: github.com/mitchellh/cli.(*CLI).Run(0xc0000da000)
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: github.com/mitchellh/cli@v1.1.0/cli.go:260 +0x5f8
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: main.realMain()
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: github.com/hashicorp/consul/main.go:53 +0x40b
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: main.main()
    nov 14 21:11:17 mail.gadarajuno.gob.ec service-discoverd[78001]: github.com/hashicorp/consul/main.go:23 +0x19
    nov 14 21:11:17 mail.gadarajuno.gob.ec systemd[1]: service-discover.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
    nov 14 21:11:17 mail.gadarajuno.gob.ec systemd[1]: service-discover.service: Failed with result ‘exit-code’.
    nov 14 21:11:17 mail.gadarajuno.gob.ec systemd[1]: Failed to start Service discover server for Zextras.
    Puedes ayudarme

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.