GithubHelp home page GithubHelp logo

grommunio / grommunio-web Goto Github PK

View Code? Open in Web Editor NEW
37.0 7.0 17.0 187.24 MB

Web user interface for grommunio

License: Other

JavaScript 81.00% Makefile 0.11% CSS 4.03% Ruby 0.01% SCSS 0.64% Less 0.67% PHP 7.32% HTML 0.15% Shell 0.01% Hack 0.01% Fluent 6.06%
groupware

grommunio-web's Introduction

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.

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

Web UI

Web UI alternative

grommunio Web is also the basis for grommunio Desktop, a cross-platform client designed to run on your desktop without any specific browser requirements.

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

  • PHP 7.4+, 8.x
  • Required modules: json, gd, gettext, mapi, xml
  • Required backend: gromox-zcore

Getting started

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

  • 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

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

Development

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

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.

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 0x950412de

The translations are managed through a Weblate project. Contributions are regularly monitored and integrated in the release cycles of grommunio Web.

grommunio-web's People

Contributors

artemmolotov avatar bmwiedemann avatar cmpalm avatar comradekingu avatar f3rr31 avatar grammmichi avatar grammmike avatar gromandreas avatar jengelh avatar juliaschroeder avatar milotype avatar rnagy avatar robert-scheck avatar snehal1112 avatar steep-system avatar stefanakie avatar victortesla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

grommunio-web's Issues

Improvement: Avoid flash of unformated mail body

I'm on the community-repository on openSUSE-Leap-15.5
grommunio-web-3.7.50.g9e269947-lp155.62.1.noarch

Steps to reproduce (tested with Chrome and Firefox on Win10):

  • Login into webmail
  • Single click in the 2nd column on a mail to open it in the 3rd column
  • There is a short flash with the mail body displayed as raw text in light grey, without any formatting, images are missing
  • The formatted contents of previous opened mails seem to be remembered and there is no flash on reopen
  • But after a double click on any mail the flash returns, even for mails that were previously opened
  • Sign out also clears the remembered formatted content

I'm not aware of such a behavior in other webmailers like web.de.
Maybe there is a chance to improve this.

lade

option: readflag_time_enable

Hi,

i would really like to configure a default(true/false) for readflag_time_enable because many people don't want it and it's easier to mark a mail as read than not realizing that you accidentally 'read' mails and turn it back.
And some people who use shared mailboxes just don't think about why it would be better πŸ‘€

~cb

variable plugin-urls

Ticket#81902
i think it would be beneficial to test for config-overrides in /etc/grommunio-admin-common/config.json and apply them for any(not just archive like shown) plugin-url's to not run in any problems with multiple hosts or just different domainnames for some reason.
i mainly had the idea as i already have nextcloud-instances running and didn't want to install that on the mailserver.

cat /etc/grommunio-web/config-archive.php
<?php

define('PLUGIN_ARCHIVE_USER_DEFAULT_ENABLE', false);

try {
 $adminconfig = file_get_contents('/etc/grommunio-admin-common/config.json');
 $adminjson = json_decode($adminconfig, true);
}
catch (Exception $e) {
 echo "blah";
}
if ( isset( $adminjson['archiveWebAddress'] ) ) {
 define('PLUGIN_ARCHIVE_URL', $adminjson['archiveWebAddress']);
}
else
{
 define('PLUGIN_ARCHIVE_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/archive/');
}

define('PLUGIN_ARCHIVE_AUTOSTART', false);

πŸ™ˆ πŸ™‰ πŸ™Š

Collapsing en_GB into en_US screws up dates

Seems there was a commit to collapse en_GB and en_US along with a comment that Grommunio does not distinguish between the two.

The problem here which may not be immediately apparent to unsere deutschen Freunde :) is that our US cousins order dates in a completely alien way and out of step with the rest of the English speaking world, and world in general. The en_US locale displays dates month/day/year .... the rest of humanity typically orders dates day/month/year.

Please put an en_GB locale and possibly an en_EN locale under language in /usr/share/grommunio-web/server/language/ to address this issue.

The date formatting should then sort itself out subject to the OS having the relevant en_EN, en_GB locales installed.

This will at least enable the users to configure their own locales - (however, there remains an issue with the Gromunio web admin part of the app that I have not looked into yet, where when a user account is created there is a far more limited selection of locale's to choose from.)

Peter

PHP and Node

What version of PHP and Node is officially supported on Grommunio version 2021.08

grommunio-web and versioning

Hello,

How do you intend to handle versioning of grommunio-web and the plugins? Are they released in lock step with each other, and will they have the same version?

additional context "folders"

Hi,

it came to my attention that if you have "Show All" enabled and then switch to "Calendars" you can't select/configure multiple Calendars for side-by-side or overlapping(or however this is called) view as the checkboxes aren't available.
Previously confiured calendar views work tho.
So maybe it would be better to have an additional context named "Folders" like in a certain Software.

Or at least add the capability for those checkboxes. Maybe like the "Favourites" drop/down div?

Broken php-fpm configuration file

We did a fresh installation of Grommunio v2021.08.3 (using https://download.grommunio.com/appliance/grommunio_Appliance.x86_64-2021.08.3-Build3.1.install.iso).

Once the system was set up, the web service wasn't working, and failed with Error 502 - Bad Gateway.

This is caused by a broken php-fpm service:

localhost:~ # systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Thu 2022-03-17 16:03:06 CET; 15min ago
    Process: 1292 ExecStart=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php7/fpm/php-fpm.conf (code=exited, status=78)
   Main PID: 1292 (code=exited, status=78)

Mar 17 16:03:04 localhost systemd[1]: Starting The PHP FastCGI Process Manager...
Mar 17 16:03:06 localhost php-fpm[1292]: [17-Mar-2022 16:03:06] ERROR: [/etc/php7/fpm/php-fpm.d/gromox.conf:16] unknown entry '# Some distros may default to a directory that is not writable by user'
Mar 17 16:03:06 localhost php-fpm[1292]: [17-Mar-2022 16:03:06] ERROR: Unable to include /etc/php7/fpm/php-fpm.d/gromox.conf from /etc/php7/fpm/php-fpm.conf at line 16
Mar 17 16:03:06 localhost php-fpm[1292]: [17-Mar-2022 16:03:06] ERROR: failed to load configuration file '/etc/php7/fpm/php-fpm.conf'
Mar 17 16:03:06 localhost php-fpm[1292]: [17-Mar-2022 16:03:06] ERROR: FPM initialization failed
Mar 17 16:03:06 localhost systemd[1]: php-fpm.service: Main process exited, code=exited, status=78/CONFIG                                                                                                                                   
Mar 17 16:03:06 localhost systemd[1]: php-fpm.service: Failed with result 'exit-code'.
Mar 17 16:03:06 localhost systemd[1]: Failed to start The PHP FastCGI Process Manager.

The underlying issue is a broken /etc/php7/fpm/php-fpm.d/gromox.conf configuration:

localhost:~ # cat /etc/php7/fpm/php-fpm.d/gromox.conf
[gromox]
user = gromox
group = gromox
listen = /run/gromox/php-fpm.sock
listen.owner = gromox
listen.group = gromox
listen.mode = 0666
pm = dynamic
pm.max_children = 100
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
catch_workers_output = yes
php_admin_value[error_log] = /var/log/gromox/php-fpm.log
php_admin_value[memory_limit] = 256M
# Some distros may default to a directory that is not writable by user=gromox
# Reset it back.
php_admin_value[session.save_path] = /var/tmp/gromox-fpm

When replacing the # in lines 16 + 17 with ;, it's working as expected.

PS: I initially couldn't find any repository with corresponding source code that generated this configuration, though later stumbled upon https://github.com/grommunio/gromox/blob/master/data/fpm-gromox.conf.sample, feel free to move the issue, just as you prefer :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.