/grommunio-sync

EAS (Exchange ActiveSync) interface for grommunio

Primary LanguagePHPGNU Affero General Public License v3.0AGPL-3.0

grommunio Sync

grommunio Sync is an open-source application to synchronize Exchange ActiveSync (EAS) compatible devices such as mobile phones and tablets.

While Microsoft Outlook supports EAS, it is not recommended to use grommunio Sync due to a very small subset of features only supported. For Microsoft Outlook, users should rather use the native MAPI/HTTP and MAPI/RPC protocols, available through `grommunio Gromox <https://github.com/grommunio/gromox>`.

shield-agpl shield-release shield-scrut shield-loc

At a glance

  • Provides native groupware (emails, contacts, calendar, tasks and notes) connectivity for mobile devices, such as phones and tablets.
  • Delivers Exchange ActiveSync (EAS) 2.5, 12.0, 12.1, 14.0, 14.1, 16.0 and 16.1 protocol compatibility.
  • Multi-platform support for most recent Android, Apple (iOS powered iPhones and iPads) and even outdated Windows Mobile, Nokia and Blackberry devices.
  • Supports device management policies such as remote-wipe, password-strength, lockout after invalid authentication after definable amount of times.
  • Compatible, works with various web servers such as nginx and apache and others; usage of nginx is recommended.
  • Highly efficient, averaging at 2MB per sync thread per device of memory usage (using nginx with php-fpm).
  • Distributable, compatible with load balancers such as haproxy, apisix, KEMP and others.
  • Scalable, enabling multi-server and multi-location deployments.
  • Failover-safe, storing device and sync states in user stores.
  • High-performance, allowing nearly wire speeds for store synchronization.
  • Secure, with certifications through independent security research and validation.

Built with

  • PHP 7.4+, 8.x
  • PHP modules: soap, mbstring, posix, pcntl, pdo, xml, redis
  • PHP backend module: mapi

Getting started

Prerequisites

  • A working web server (nginx is recommended), with a working TLS configuration.
  • PHP, preferably available as fpm pool.
  • Redis for high-performance interprocess communication states.
  • Zcore MAPI transport (provided by Gromox).
  • Working AutoDiscover setup (recommended, provided by Gromox).

Installation

  • Deploy grommunio-sync at a location of your choice, such as /usr/share/grommunio-sync.
  • Adapt version.php with the adequate version string, see /build/version.php.in.
  • Provide a default configuration file as config.php, see /config.php.
  • Adapt web server configuration according to your needs, /build provides some examples.
  • Prepare PHP configuration according to your needs, /build provides some examples.
  • Installation and configuration of redis service.
  • (Optional) setup AutoDiscover accordingly for account discovery and configuration.

Usage

  • Point your EAS client of choice with the "Microsoft Exchange" mail account type made available.
  • With AutoDiscover, only your account credentials (username and password) are required for device setup.
  • Use grommunio-sync-top.php or grommunio Admin UI to view connections.

Support

Support is available through grommunio GmbH and its partners. See https://grommunio.com/ for details. A community forum is at https://community.grommunio.com/.

For direct contact and supplying information about a security-related responsible disclosure, contact dev@grommunio.com.

Contributing

Coding style

This repository follows a custom coding style, which can be validated anytime using the repository's provided configuration file.