grommunio Web
Sourced from the grommunio-web README.
grommunio Web
Section titled “grommunio Web”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 Desk, a cross-platform client designed to run on your desktop without any specific browser requirements.
At a glance
Section titled “At a glance”- 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.
Compatibility
Section titled “Compatibility”- PHP 8.x
- Required modules: json, gd, gettext, mapi, xml
- Required backend: gromox-zcore
Getting started
Section titled “Getting started”Prerequisites
Section titled “Prerequisites”- A working web server (nginx is recommended), with a working TLS configuration
- PHP, preferably with the FPM executor
- Zcore MAPI transport (provided by Gromox)
Installation
Section titled “Installation”- 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
Section titled “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 [email protected].
Contributing
Section titled “Contributing”- 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).
Development
Section titled “Development”Coding style
Section titled “Coding style”This repository follows a custom coding style, which can be validated anytime using the repository's provided configuration file.
Setup of the development environment
Section titled “Setup of the development environment”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.phpor use the config.php.dist file:
cp -p /usr/share/grommunio-web-dev/config.php.dist /usr/share/grommunio-web-dev/config.phpIf 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.phpMake 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.phpAt 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.
Translations
Section titled “Translations”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 0x950412deThe translations are managed through a Weblate project. Contributions are regularly monitored and integrated in the release cycles of grommunio Web.