grommunio Web is an open-source web application and provides all the familiar email, advanced calendaring and contact features you need to be productive. It is the main web application for access to your productivity workspace, including email, calendar, contacts, tasks, notes and more.
grommunio Web is also the basis for grommunio Desktop, a cross-platform client designed to run on your desktop without any specific browser requirements.
- Provides web-based groupware (emails, contacts, calendar, tasks and notes) connectivity.
- Includes extensions integrating grommunio Meet, Chat Archive and more.
- Compatible, works with any modern web browser such as Chrome, Edge, Firefox, Safari and others.
- Easy to use, providing a polished interface with nearly no training required for users.
- Distributable, compatible with load balancers such as haproxy, apisix, KEMP and others.
- Scalable, capable of running with tens of thousands of sessions concurrently.
- Fast, with a snappy interface which reacts almost immediately to user interactions.
- Secure, with certifications through independent security research and validation.
- PHP 7.4+, 8.x
- Required modules: json, gd, gettext, mapi, xml
- Required backend: gromox-zcore
- A working web server (nginx is recommended), with a working TLS configuration
- PHP, preferably with the FPM executor
- Zcore MAPI transport (provided by Gromox)
- Deploy grommunio-web at a location of your choice, such as
/usr/share/grommunio-web
. - Validate the configuration file and save to
/etc/grommunio-web/config.php
. Confer with the template in /config.php.dist. - Adapt web server configuration according to your needs. /build provides some examples.
- Prepare PHP configuration according to your needs. /build provides some examples.
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.
- https://docs.github.com/en/get-started/quickstart/contributing-to-projects
- Alternatively, upload commits to a git store of your choosing, or export the series as a patchset using git format-patch, then convey the git link/patches through our direct contact address (above).
This repository follows a custom coding style, which can be validated anytime using the repository's provided configuration file.
To get started, make sure you have a working set of the following components:
- gromox-http
- gromox-zcore
- php-mapi
- nginx
Checkout the repository into a new directory, e.g.
/usr/share/grommunio-web-dev
.
If you want to use the existing grommunio-web config, point config.php
to
it:
ln -s /etc/grommunio-web/config.php /usr/share/grommunio-web-dev/config.php
or use the config.php.dist
file:
cp -p /usr/share/grommunio-web-dev/config.php.dist /usr/share/grommunio-web-dev/config.php
If you want to use the existing grommunio-web defaults, copy the defaults.php
file:
cp -p /usr/share/grommunio-web/defaults.php /usr/share/grommunio-web-dev/defaults.php
Make sure to adjust /usr/share/grommunio-web-dev/defaults.php
to
use sources instead of the release variant as follows: Search for…
if (!defined('DEBUG_LOADER')) define('DEBUG_LOADER', LOAD_RELEASE);
and replace it with
if (!defined('DEBUG_LOADER')) define('DEBUG_LOADER', LOAD_SOURCE);
For debugging purposes it might make sense to enable debug.php
file:
cp -p /usr/share/grommunio-web-dev/debug.php.dist /usr/share/grommunio-web-dev/debug.php
At last, adjust (or copy) the nginx config file
/usr/share/grommunio-common/nginx/locations.d/grommunio-web.conf
by
replacing
alias /usr/share/grommunio-web/;
with
alias /usr/share/grommunio-web-dev/;
After changing the configuration, validate your nginx configuration with
the nginx -t
command and reload with systemctl reload nginx
.
For performance reasons, the languages are loaded into the shared memory of the
running system. After changes to the translation files, re-generate the gettext
strings (see Makefile
) and make sure you clear the shared memory segment
for the cache:
ipcrm -M 0x950412de
The translations are managed through a Weblate project. Contributions are regularly monitored and integrated in the release cycles of grommunio Web.