Page tree
Skip to end of metadata
Go to start of metadata

Until version 2.2.x Z-Push was officially only distributed as a tarball. This source tarball will be further maintained for Z-Push 2.3, but it's highly recommended to use the newly available repositories and packages instead. If you are looking for the tarball, scroll to the end of the page. Starting with Z-Push 2.4.0 there won't be tarball releases.


With the release of Z-Push 2.3 a public repository is available.


There are different stages of packages available:


Contains the final releases of Z-Push 2.6.x.

This corresponds to the master branch of GIT. 


Contains the final releases of Z-Push 2.5.x.

This corresponds to the release/2.5 branch of GIT.


Contains public alpha and beta releases of Z-Push.

This corresponds to the release/2.6 branch in GIT.


Contains nightly builds. Use it to always have the latest code installed.

These packages are not recommended for production use (unless you know exactly what you are doing and are aware of the risks).

Corresponds to the develop branch in GIT.


The final repository contains builds for the following distributions/architectures:

Debian 8.0



Debian 9.0



Since Z-Push 2.3.7
Debian 10



RHEL 6 + PHP 5.6




RHEL 7 + PHP 5.6





SLES 12 + PHP7



Ubuntu 14.04



Ubuntu 16.04



PHP7 support since Z-Push 2.3.4

Ubuntu 18.04



PHP7.2 support since Z-Push 2.4.3

Ubuntu 20.04



Univention 4.2



Univention 4.3/4.4



openSUSE Leap 42.3



openSUSE Tumbleweed



PHP 5.4 required

Z-Push 2.3, 2.4 and 2.5 require at least PHP 5.4. Due to this, packages for older distributions are not available.

Usage of repositories together with Zarafa/Kopano

Even though the the Z-Push Kopano backend is included in all of the above repositories, this backend can only be used in distributions that are also supported by Kopano/Zarafa and therefore provide php-mapi package.


The base URL of the repository is:<stage>/<distribution>/

To e.g. add the stable repository for Ubuntu 16.04 use:

deb /

To find the correct URL for your distribution, access:


Main packages

z-push-commonCore-Base components of Z-Push.
z-push-config-apacheConfigApache configurationInstalls the Z-Push alias in the apache configuration and restarts the webserver.
z-push-config-nginxConfigNginx configurationAdd Nginx configuration file. Make sure you edit it to adapt your needs.
z-push-backend-caldavBackendCalendarTo get calendaring from a CalDav server.
z-push-backend-carddavBackendContactsTo get contacts from a CardDav server.
z-push-backend-combinedBackend-To use different backends for different folder types.
z-push-backend-imapBackendEmailTo get email from an imap server.
z-push-backend-kopanoBackendEmail, Calendar, Contacts, Tasks, Notes and GAB

Connect against a Kopano or ZCP server to get email, calendar, contacts, notes, tasks and search the GAB.


This package depends on the php-mapi packages provided by Kopano/Zarafa.

These packages can be found for the community or via the repositories for Kopano subscribers.

z-push-backend-ldapBackendContactsTo get contacts from an LDAP server.
z-push-backend-galsearch-ldapSearchProviderGABTo search the GAB (Global Address Book) against an LDAP server.
z-push-ipc-memcachedIPC Provider-Stores volatile states (Interprocess communication) in a memcache server. Recommended large for multi-host setups and setups with more than 200 users.
z-push-ipc-sharedmemoryIPC Provider-Stores volatile states (Interprocess communication) in shared memory. Use on single host installations only. Recommended for setups with less than 200 users.

Stores mobile states in a SQL database (e.g. mysql). Recommended for multi-host setups.

Migration script available in Tools. More information see State Machines.

* GAB = Global Address Book.

Other Packages

z-push-autodiscoverAutodiscoverTo be installed on the Z-Push host with a main backend.
z-push-kopano-gabsyncKOE GABProvides the GAB (Global Address Book) for the Kopano Outlook Extension. More information: Configuring GAB-Sync for Kopano OL Extension
z-push-kopano-gab2contactsToolContains a script that synchronizes the GAB (Global Address Book) into any contacts folder (e.g. in the public folder). This script is also able to update these contacts (e.g. via a daily cron job). Introduced with Z-Push 2.3.5.
z-push-kopanoMeta package

Installs the basic stack for Kopano (and ZCP). To run on apache install z-push-config-apache.

Includes: z-push-common, z-push-backend-kopano, z-push-ipc-sharedmemory

Please note the additional dependencies for the z-push-backend-kopano package mentioned in the table above.


This will guide you through the basic installation on example of Kopano/Zarafa.

The examples below show how to add the repository and install Z-Push using shared-memory and the file state machine (same as with Z-Push 2.2.x).

z-push-top and z-push-admin can be executed from any location (as root).

The main directory is /usr/share/z-push, the configuration files are located in /etc/z-push.

If you use Kopano on a different host or ZCP you need to adjust the MAPI_SERVER in /etc/z-push/kopano.conf.php to fit your environment.

Debian und Ubuntu based systems

Add repository

First of all, the repository needs to be added to your distribution.

E.g. for stable releases on Debian 8, create a new file in /etc/apt/sources.list.d/z-push.list with the content:

deb /

To find the correct URL for your distribution, access:

Then, download the repository key and it to the keychain.

wget -qO - | sudo apt-key add -

Install packages from repository

Assuming that Apache is your webserver, run:

sudo apt-get update


sudo apt-get install z-push-kopano z-push-config-apache

RHEL based systems

Add repository

First of all, the repository needs to be added to your distribution.

For the final releases on CentOS 7, create a new file in /etc/yum.repos.d/z-push.repo with the content:

name=Z-Push noarch Enterprise Linux 7 - $basearch

Update the package list:

yum update

Note: If you are using RHEL_6_PHP_56 or RHEL_7_PHP_56 repository and memcached for inter process communication, make sure you have Remis repository enabled.

Install packages from repository

Assuming that Apache is your webserver and you want to install basic Z-Push with the Kopano backend, run:

yum install z-push-common z-push-config-apache z-push-backend-kopano z-push-ipc-sharedmemory

From Source

If you really want to install from the source tarball, the download is available here:

For information on how to install from source, please consult the INSTALL file in the tarballs main directory.

Instead of using the tarball or packages you can also use Z-Push from our GIT. See how to get the latest Z-Push code from GIT.

Speed optimizations


Please check if your OS already has or is compatible with PHP opcache. This increases performance a lot as the PHP is compiled and cached. More information can be found here:

To check your opcache usage have a look at this script:


The file state machine is used by default. It's the easiest to setup and fits most user profiles. As the states are just files they can easily be backup-ed and maintained. 

There are a few downsides to the file state-machine, e.g. they are not clusterable. Some admins use NFS to share the states between several machines, which is required if you run several z-push systems and users can connect to any of them (like with a round-robin load balancer without session stickiness). NFS works but has some issues with stability. In this scenario we strongly recommend the usage of the sql state machine.

More about state machines here: State Machines

Inter process communication (IPC)

By default Z-Push installs the shared-memory IPC provider. It's the easiest to setup and a well fit for the most installations.

There are downsides using shared-memory IPC:

  • PHP memory usage per request is about 5 to 10 MB higher than when using the memcache IPC provider
  • It's not clusterable. If you use several z-push servers with shared states (like described above) the IPC data needs to be shared between these machines as well. The Shared-memory IPC doesn't allow that.
  • It doesn't scale for hundreds of users.

You should use the memcache IPC provider in these cases. It requires the installation of a central memcache service, where all Z-Push instances connect to. It's a lightweight service that only requires a few MB of RAM (32 MB should be enough for most cases). You can install it on one of the Z-Push hosts or setup a dedicated machine (ideally with fail over). 

It's not ideal if the IPC data is lost (e.g. when restarting the memcache service), but it's not a big problem either. Within a few requests the required data is built up again.

If your Z-Push server is running out of memory handling Z-Push requests, you should immediately switch to memcache IPC (can be running on the same system). There will be no downtime for users.

Related configuration topics

  • No labels