(Last Updated On: April 2, 2019)

In this blog post, I’ll take you through the installation of the latest Zimbra Collaboration 8.8.x Community Edition release on an Ubuntu 18.04 LTS server. These steps are only for single server installation, for multi-server installation of Zimbra collaboration, see our guide Zimbra Multi-Server Installation on CentOS 7

Installing Zimbra Collaboration on Ubuntu 18.04 LTS – Pre-requisites

To use this guide, you should:

  • Have Installed Ubuntu 18.04 server
  • Have ssh access to the user – user with sudo privileges
  • Have DNS server – Dnsmasq should be fine

The recommended system requirements for a Zimbra server which support up to 50 users are:

  • 4 vCPU or more depending on your available resources
  • 8 GB RAM or more
  • 50 GB available disk space
  • DNS Server

Follow steps below to install and configure Zimbra Collaboration server on your Ubuntu 18.04 server.

Step 1: Install and Configure Dnsmasq

In this guide, we will be using dnsmasq as a DNS Server. Follow this guide How to Install and Configure Dnsmasq on Ubuntu 18.04 LTS.

Set Zimbra Domain, DNS server forwarder, and the MX records.

$ sudo vim /etc/dnsmasq.conf
server=8.8.8.8
listen-address=127.0.0.1
domain=example.com # Define domain
mx-host=example.com,mail.example.com,0 # Set MX record for the domain, preference is 0
address=/mail.example.com/62.15.116.167 # Send example.com to 62.15.116.167

Set server hostname:

sudo hostnamectl set-hostname mail.example.com

Add Server name and IP address to /etc/hosts file.

echo "62.15.116.167 mail.example.com" | sudo tee -a /etc/hosts

Restart dnsmasq  service and test.

sudo systemctl restart dnsmasq

Dig for an A record of Zimbra Server.

$ dig A zimbra.computingforgeeks.com
; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> A zimbra.computingforgeeks.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14888
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;zimbra.computingforgeeks.com. IN A
;; ANSWER SECTION:
zimbra.computingforgeeks.com. 0 IN A 62.15.116.167
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Apr 01 21:58:39 CEST 2019
;; MSG SIZE rcvd: 73

Also, query MX record of your domain. Should return Zimbra server IP Address.

$ dig MX computingforgeeks.com
; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> MX zimbra.computingforgeeks.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25343
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;zimbra.computingforgeeks.com. IN MX
;; ANSWER SECTION:
zimbra.computingforgeeks.com. 0 IN MX 0 zimbra.computingforgeeks.com.
;; ADDITIONAL SECTION:
zimbra.computingforgeeks.com. 0 IN A 62.15.116.167
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Apr 01 21:59:40 CEST 2019
;; MSG SIZE rcvd: 117

Now that we have both A record and MX, let’s begin the installation.

Step 2: Download Zimbra Collaboration Open Source Edition

As of this writing, the latest release of Zimbra is 8.8.12. Let’s download the file the o local server.

wget https://files.zimbra.com/downloads/8.8.12_GA/zcs-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz

Extract file:

tar xvf zcs-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz

Change to zcs-* directory,

cd zcs*/

Step 3: Install Zimbra Collaboration Open Source Edition on Ubuntu 18.04 LTS

We are ready to start the installation of Zimbra Collaboration Open Source Edition on Ubuntu 18.04 LTS.

Run the installer script – This is an all in one server installation.

# ./install.sh

Operations logged to /tmp/install.log.DM7y8xw8
Checking for existing installation...
    zimbra-drive...NOT FOUND
    zimbra-imapd...NOT FOUND
    zimbra-patch...NOT FOUND
    zimbra-mta-patch...NOT FOUND
    zimbra-proxy-patch...NOT FOUND
    zimbra-license-tools...NOT FOUND
    zimbra-license-extension...NOT FOUND
    zimbra-network-store...NOT FOUND
    zimbra-network-modules-ng...NOT FOUND
    zimbra-chat...NOT FOUND
    zimbra-talk...NOT FOUND
    zimbra-ldap...NOT FOUND
    zimbra-logger...NOT FOUND
    zimbra-mta...NOT FOUND
    zimbra-dnscache...NOT FOUND
    zimbra-snmp...NOT FOUND
    zimbra-store...NOT FOUND
    zimbra-apache...NOT FOUND
    zimbra-spell...NOT FOUND
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-core...NOT FOUND


----------------------------------------------------------------------
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
SYNACOR, INC. ("SYNACOR") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.

License Terms for this Zimbra Collaboration Suite Software:
https://www.zimbra.com/license/zimbra-public-eula-2-6.html
----------------------------------------------------------------------

1. Type “Y” to accept license terms and start the installation.

Do you agree with the terms of the software license agreement? [N] Y

2. Agree to use Zimbra package repository.

Use Zimbra's package repository [Y] Y
Warning: apt-key output should not be parsed (stdout is not a terminal)
Importing Zimbra GPG key
Configuring package repository
Checking for installable packages
Found zimbra-core (local)
Found zimbra-ldap (local)
Found zimbra-logger (local)
Found zimbra-mta (local)
Found zimbra-dnscache (local)
Found zimbra-snmp (local)
Found zimbra-store (local)
Found zimbra-apache (local)
Found zimbra-spell (local)
Found zimbra-memcached (repo)
Found zimbra-proxy (local)
Found zimbra-drive (repo)
Found zimbra-imapd (local)
Found zimbra-patch (repo)
Found zimbra-mta-patch (repo)
Found zimbra-proxy-patch (repo)

3. Select the packages to install

Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y] 
Install zimbra-dnscache [Y] 
Install zimbra-snmp [Y] 
Install zimbra-store [Y] 
Install zimbra-apache [Y] 
Install zimbra-spell [Y] 
Install zimbra-memcached [Y] 
Install zimbra-proxy [Y] 
Install zimbra-drive [Y] 
Install zimbra-imapd (BETA - for evaluation only) [N] 
Install zimbra-chat [Y] 

Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.

Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-dnscache
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy
    zimbra-drive
    zimbra-patch
    zimbra-mta-patch
    zimbra-proxy-patch
    zimbra-chat

4. Agree to system modification.

The system will be modified.  Continue? [N] Y

Download and installation of Zimbra packages will start.

Downloading packages (12):
   zimbra-core-components
   zimbra-ldap-components
   zimbra-mta-components
   zimbra-dnscache-components
   zimbra-snmp-components
   zimbra-store-components
   zimbra-jetty-distribution
   zimbra-apache-components
   zimbra-spell-components
   zimbra-memcached
   zimbra-proxy-components
   zimbra-mta-patch
     ...done

Removing /opt/zimbra
Removing zimbra crontab entry...done.
Cleaning up zimbra init scripts...done.
Cleaning up /etc/security/limits.conf...done.

Finished removing Zimbra Collaboration Server.

Installing repo packages (12):
   zimbra-core-components
   zimbra-ldap-components
   zimbra-mta-components
   zimbra-dnscache-components
   zimbra-snmp-components
   zimbra-store-components
   zimbra-jetty-distribution
   zimbra-apache-components
   zimbra-spell-components
   zimbra-memcached
   zimbra-proxy-components
   zimbra-mta-patch
      ...

Set Admin account password – 7>4

7) zimbra-store:                            Enabled                       
        +Create Admin User:                    yes                           
        +Admin user to create:                 [email protected]
******* +Admin Password                        UNSET                         
        +Anti-virus quarantine user:           [email protected]
        +Enable automated spam training:       yes                           
        +Spam training user:                   [email protected]
        +Non-spam(Ham) training user:          [email protected]
        +SMTP host:                            zimbra.computingforgeeks.com  
        +Web server HTTP port:                 8080                          
        +Web server HTTPS port:                8443                          
        +Web server mode:                      https                         
        +IMAP server port:                     7143                          
        +IMAP server SSL port:                 7993                          
        +POP server port:                      7110                          
        +POP server SSL port:                  7995                          
        +Use spell check server:               yes                           
        +Spell server URL:                     http://zimbra.computingforgeeks.com:7780/aspell.php
        +Enable version update checks:         TRUE                          
        +Enable version update notifications:  TRUE                          
        +Version update notification email:    [email protected]
        +Version update source email:          [email protected]
        +Install mailstore (service webapp):   yes                           
        +Install UI (zimbra,zimbraAdmin webapps): yes 
.....
Password for [email protected] (min 6 characters): [8441mra12P]                         

Complete configuration and apply.

Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-logger: Enabled
4) zimbra-mta: Enabled
5) zimbra-dnscache: Enabled
6) zimbra-snmp: Enabled
7) zimbra-store: Enabled
8) zimbra-spell: Enabled
9) zimbra-proxy: Enabled
10) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes] <Enter>
Save config in file: [/opt/zimbra/config.24171]
Saving config in /opt/zimbra/config.24171…done.
The system will be modified - continue? [No] Yes

The installer script will start to configure Zimbra server. When done you should get output like below.

Starting servers...done.
Installing common zimlets...
	com_zimbra_cert_manager...done.
	com_zimbra_adminversioncheck...done.
	com_zimbra_attachcontacts...done.
	com_zimbra_viewmail...done.
	com_zimbra_attachmail...done.
	com_zimbra_url...done.
	com_zimbra_webex...done.
	com_zimbra_bulkprovision...done.
	com_zimbra_proxy_config...done.
	com_zimbra_mailarchive...done.
	com_zextras_chat_open...done.
	com_zimbra_ymemoticons...done.
	com_zimbra_clientuploader...done.
	com_zimbra_date...done.
	com_zimbra_srchhighlighter...done.
	com_zimbra_tooltip...done.
	com_zextras_drive_open...done.
	com_zimbra_phone...done.
	com_zimbra_email...done.
Finished installing common zimlets.
Restarting mailboxd...done.
Creating galsync account for default domain...done.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
	The VERSION of zcs installed (8.8.12_GA_3794_UBUNTU18_64)
	The ADMIN EMAIL ADDRESS created ([email protected])

Notify Zimbra of your installation? [Yes]
Checking if the NG started running...done. 
Setting up zimbra crontab...done.

Moving /tmp/zmsetup.20190401-221739.log to /opt/zimbra/log
Configuration complete - press return to exit 

Confirm Zimbra services status.

# su - zimbra -c "zmcontrol status"
Host zimbra.computingforgeeks.com
amavis Running
antispam Running
dnscache Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Stopped
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running

Accessing Zimbra Admin Dashboard

If you have an active firewall, configure it for Zimbra using Zimbra Firewall Configuration with ufw for Ubuntu and firewalld for CentOS

Access Admin interface using https://ip-addres|hostname:7071

Login with Username admin and Password configured earlier.

Monitoring Zimbra Server

Follow our guide on How to Monitor Zimbra Server with Grafana, Influxdb and Telegraf

Other Zimbra guides:

How to Install Zimbra Desktop on Ubuntu 18.04 Bionic Beaver

How to Restore Zimbra LDAP database from Backup

How to solve Zimbra zmconfigd not running/starting

How to Configure Microsoft Outlook for Zimbra

How to Set Secure Password Policy on Zimbra

Configure whitelist and blacklist Zimbra Amavis Spam filtering

Managing Distribution Lists on Zimbra Mail Server