Installation Instructions for Zextras Suite

Have a Question?

This section covers different information for a successful installation of Zextras Suite, such as requirements, setup details, and guidelines. Please read the next part, Basic Information, carefully to ensure you do not overlook any critical information needed to set up Zextras Suite.

Prerequisite Information

There is no additional software required to install Zextras Suite beyond what is required by a typical Zimbra setup. If you haven’t yet installed Zimbra, you can look at its System Requirements.

If you intend to utilise Zextras Drive, Zextras Team, or both, some additional configuration is required. Because these two programmes must interact over web sockets on ports tcp 8742 and tcp 8743, respectively, you must change the file /opt/zimbra/conf/nginx/includes/nginx.conf.web to include the following code.

Replace mail.example.com with the address of your server.
Minimum Requirements and Fine-Tuning
If you’re interested in resource optimisation and adjusting, we recommend reading the following Zimbra wiki page, which, despite the title, applies to both big and small deployments: https://wiki.zimbra.com/wiki/Performance_Tuning_Guidelines_for_Large_Deployments.

Another stringent criterion is that the Zimbra IDs in the system have just the following characters up to a maximum length of 64:
  • Lowercase and capital letters
  • Number
  • The following symbols are used: _ – # () = @
Zimbra IDs containing non-allowed characters will most certainly create issues with the Mobile module and maybe other modules as well.

Possibilities for installation
These are your options for installing Zextras:
  • Installation of a single store on a single server. The simplest method is provided in Section Quick Installation Guide.
  • Installation of a single store on a multiserver. This method is comparable to the previous one and is used for installing Zextras Suite in a multiserver environment; for more information, see Installing Zextras Suite on a Single-store Infrastructure.
  • Installation at many locations. If you need to operate several mailboxed services, read Installing Zextras Suite on a Multistore Infrastructure.
The Zextras Suite is made up of three key components:
  • Zextras Core, shortened as Core, is a jar package that extends Zimbra.
  • Zextras Administration Zimlet, also known as Zextras Suite Zimlet or just Zimlet, is an administration zimlet that allows you to access and control the Core.
  • ZAL is a Zimbra abstraction layer that is open source. Please read these instructions for installing ZAL.
The installation script adheres to the aforementioned framework, with three installation targets available: core, zimlet, and all. The latter is equal to installing Core and then zimlet soon after.
Other Zimlets Zextras
The Zextras Administration Zimlet is included in the Zextras Suite package, however the Zextras Client Zimlet must be installed separately. For more information, see the section Zextras Client at the bottom of this page.
Where can I purchase the Zextras Suite package?
The Zextras Suite installer may be downloaded via the zextras website’s download area, while existing customers can find a direct download link after checking in with their Zextras Store account.
Setup Instructions
This section covers basic information regarding system setup, installation difficulties, and crucial information about upgrading to a new version of both Zimbra and Zextras.
ZAL is a Zimbra Abstraction Layer.
The Zextras Abstraction Layer (ZAL) is an Open Source abstraction layer designed to allow any extension, regardless of version, to effortlessly interface with Zimbra Collaboration Suite.

It is provided under the GPL licence and hence cannot be included in the Zextras Suite package, but the Zextras Installer will automatically discover the most relevant library version and download and install it for you during the installation process.
Zimbra’s DoS Filter
Beginning with Zimbra 8.0.0, a connection slowing technique known as DoS Filter was implemented to mitigate the impact of Denial of Service assaults. By default, the DoS Filter only permits 30 connections per second, rejecting any connection that exceeds this limit with a 503 HTTP error.

What effect the DoS Filter has on your Zextras Suite experience
The Zextras Administration Zimlet is loaded upon logging into the Zimbra Administration Console as an Administrative Zimlet; in order to retrieve all relevant data, many requests are made, which can trigger Zimbra’s DoS Filter, causing slowness, AJAX errors, and general UI corruption (e.g. empty text boxes or incoherent checkbox state).
DoS Filter alerts may be located and recognised in the log file /opt/zimbra/log/zmmailboxd.out, which contains messages such as the following:
Controlling the DoS Filter
The DoS Filter is controlled by three separate configuration parameters. Each attribute is inherited from global or is server-configurable.

External hosts that make SOAP queries for provisioning or any other type of integration must be added to the IP whitelist to avoid DoSFilter blocking certain requests. This is also necessary anytime there are network resources outside of Zimbra between the clients and Zimbra (for example, proxies, bouncers, load-balancing servers, firewalls, and NATting devices). For further information and guidance in either of these circumstances, please see the sections below (OIP Logging with Non-Zimbra Proxies and Modify Nginx Templates Files for Correct OIP Logging).

The multi-valued zimbraHttpThrottleSafeIPs property should contain IP addresses.
Non-Zimbra Proxies and OIP Logging
This section offers information that is important if there are proxies or other network devices that can change the originating IP address of a request between a Client and Zimbra.

Mailboxd uses the HTTP Request header field X-Forwarded-For to assign OIP (Originating Client IP Address) values.

When a client connects to the Zimbra WebClient via an HTTP proxy or a load balancer, and the communication between clients and servers is intercepted, the server’s access logs only contain the IP address of the proxy or load balancer. The X-Forwarded-For request header is used to view the client’s original IP address, which has the following basic format:
The values here comprise a comma-separated list of IP addresses:
  • The original client IP address is shown on the left (client>).
  • Each consecutive IP address (ext-proxy1>, ext-proxy2>,…) is a proxy that transmitted the request, including the IP address from where it received it.
  • The IP address on the right (ext-proxyN>) is the most recent proxy.
Examples of log entries:
  • The IP address of the Originating client, from whom the request originated or was started, is xxx.xxx.xxx.xxx.
  • The first proxy server, yyy.yyy.yyy.yyy, will submit a request to another proxy server or the target server.
Modify the Nginx Template Files for Proper OIP Logging
Nginx templates must be updated in order to correctly log the OIP.
First, make a backup of the existing Nginx configuration directory.

Next, in all template files under /opt/zimbra/conf/nginx/templates, replace $proxy_add_x_forwarded_for with $http_x_forwarded_for.

Finally, the proxy service should be restarted.
Zimbra Upgrade Because the Zextras Core is deleted from the server when Zimbra is upgraded, Zextras Suite must be reinstalled. All data and settings will be preserved, therefore after reinstalling the Zextras Suite, the configuration will be exactly the same as before the Zimbra update.
Zimbra Plugins
The information above only refers to version upgrades: installing a Zimbra patch has no effect on Zextras Suite, thus reinstalling the package is not necessary.
Quick Installation Instructions
Installation may be completed in a few simple steps:
  1. Upload the Zextras Suite package you downloaded to your server.
  2. As the root user, unpack the file you just downloaded into a directory on your Zimbra server (we recommend /root/): ‘tar zxf zextras_suite-latest.tgz’ is a command.
  3. ‘cd zextras-suite’ will take you to the directory produced by unpacking the file.
  4. Run the install.sh script using the all option (for example, ‘./install.sh all’).
  5. The installer will download the most recent Core, ZAL, and Zimlets for your Zimbra version and begin the installation.
On Multiserver Infrastructures, Zextras Suite
Additional measures must be taken depending on the server roles in use:
Zextras Suite Installation on a Single-Store Infrastructure
Installing Zextras Suite on a multiserver environment that includes a single mailbox server is the same as installing it on a single-server system since the software needs only be installed on servers that run the mailboxd service.
Zextras Suite Installation on a Multistore Infrastructure
Installation of Zextras Suite on a Multistore system with several mailbox servers necessitates the following additional steps:
  • Zextras Suite must be installed on ALL store servers (those that operate the mailboxd service).
  • Zextras Suite communicates between stores using ports 8735 and 8736; consequently, ensure that your servers can contact each other on these ports and that the same ports are closed to outside traffic.
Instructions in Depth
Before installing Zextras Suite, you must have downloaded the package as described in the relevant section above and exploded the archive in a directory of your choosing.
Inside the directory zextras_suite is an executable shell script entitled install.sh, which may be started with the command./install.sh -h |./install.sh [-u] [-d]. all|theme|zimlet|core. To view a short summary of the options, go to that directory and execute it with -h:
A Zextras Theme is installed automatically during a Zextras Suite Full Installation or Zextras Suite Full Upgrade, however an updated version of the theme may also be deployed using a separate zextras-theme-installer script.
To install the Zextras suite successfully, one must either become the root user or execute the script with root rights (e.g., via sudo).

When run, the script will detect the current Zimbra version and look for a previously installed Zextras Suite or Zextras Migration Tool.
Before continue with the installation, you must agree the Zextras EULA, following which the real installation will take place.
Zextras Suite Complete Installation
To install Zextras Suite, both Core and Zimlet must be properly deployed and functioning. By selecting all as the target, Core and Zimlet will be installed sequentially and all at once.

Complete installation:
After the installation is complete, you will need to restart Zimbra. You will be prompted to do so by the script.
Core Installation of Zextras Suite
You must first stop the Zimbra services before installing Zextras Core. This may be accomplished by either halting them before executing the script or having the script stop them when requested. Following that, the script will do a number of tests, including a check for earlier Zextras Core installation, and if necessary, it will install the jar file among the Zimbra extensions.

Installation of merely the core
Once the Core has been installed, Zimbra must be rebooted to ensure that it is functioning properly.
Installation of Zextras Suite Zimlet
In contrast to the installation of Zextras Suite Core, you must have Zimbra installed and its services operating in order to install the Zextras Suite Zimlet. As with the Core Installation, you can either start them manually or let the script start them after prompting you. When Zimbra is activated, the administrative zimlet will be installed with the same versions as Zimbra.
Installation of Zimlet only:

zimlet install.sh
Full Zextras Suite Upgrade
If you already have a copy of Zextras Suite on your PC, installing a newer version will immediately upgrade it. Please follow the installation instructions provided above.
Please review the Zimbra Upgrade section above if you have recently upgraded your Zimbra installation.
Zextras Suite Upgrade on a Multiserver Infrastructure
  • Upgrading Zextras Suite to a new minor release (for example, 2.16.1 to 2.16.2). Each unique server may be upgraded independently, and Zextras Suite will work normally even in a mixed minor version scenario.
  • Upgrading Zextras Suite to a new major release (for example, 2.14.x to 2.16.x). Backwards compatibility is not guaranteed if all servers are upgraded at the same time, and Zextras Suite will not be completely functioning until all nodes have been upgraded to the same version.
Uninstallation of Zextras Suite
The removal technique is nearly identical to the installation procedure, and simply inserting the -u switch before the target is all that is required. The script will check for the presence of any Zextras Suite components and will urge you to remove them.

Therefore:
  • ./install.sh -u all will remove the Zextras Core as well as the Zextras Administration Zimlet.
  • ./install.sh -u core removes the Zextras Core.
  • ./install.sh -u zimlet will remove the Zextras Administration Zimlet from your system.
After-Install and After-Uninstall
It is highly recommended that you delete both your browser’s and the server’s cache after installing or uninstalling Zextras Suite; the latter action may be accomplished by issuing the command:
fc zmprov zimlet
as a Zimbra user.
Zextras Client Additional Components
Zextras Client gives end users access to new Zextras Suite capabilities as well as certain older ones that were previously only available in the Zextras Administration Console.

The Zextras Client Zimlet is completely free; it requires the Zextras Core to work and its deployment is optional. There are numerous options for enabling it once it has been deployed.

Install the Zextras Client.
Deploying the Zextras Client Zimlet is simple and can be done in a few steps using either the Zextras Administration Zimlet or the Zextras CLI.
  • Access the Zimbra Administration Console.
  • Enter the Zextras Administration Zimlet’s Core area.
  • Deploy the Zextras Client Zimlet by clicking the Deploy button.
  • Once deployed, the zimlet will be identified as com_zextras_client in the list of deployed zimlets.
  • Run the Zextras CLI command zxsuite core doDeployClientZimlet.
Deploying the Zextras Client Zimlet on a multiserver architecture follows the same processes as on a single server. Because the Zimlet is installed using LDAP, you will only need to deploy it once, regardless of the number of mailbox servers in your architecture.
Activate the Zextras Client
After the deployment, the Zextras Client Zimlet will only be activated for users that belong to the default COS.

The Zextras Client Zimlet may be enabled for your users in the following ways:
  • Per user – under the Zimlets section of each user’s Zimbra Administration Console settings.
  • Per COS – via the Zimbra Administration Console, in the Zimlets portion of each Class of Service’s settings.
  • Using the zmzimletctl command in the Zimbra CLI
  • Zimlet Zextras Client Update
Zextras Client should be updated.
When you upgrade Zextras Suite, the Zextras Installer will automatically update the Zextras Client Zimlet. If this update fails, manually hitting the Deploy button will install the most recent version available.
Uninstall the Zextras Client.
To uninstall the Zextras Client Zimlet, use the Undeploy button next to the corresponding entry in the Configure Zimlets section of the Zimbra Administration Console or the zmzimletctl command in the Zimbra CLI.