Mailu: Roundcube plugin management

Created on 1 Aug 2018  ·  8Comments  ·  Source: Mailu/Mailu

Hi,

It would be very nice if it's possible to add our own plugins to Roundcube from https://plugins.roundcube.net/. There are some great plugins on there :).

backlog prioritp2 typfeature

Most helpful comment

I'd like to pick up this issue because there are some pending feature requests for roundcube plug-ins:

  • carddav (https://github.com/Mailu/Mailu/issues/1230, https://github.com/Mailu/Mailu/issues/1116)
  • pgp (https://github.com/Mailu/Mailu/issues/506)

Personally I'd like to see https://plugins.roundcube.net/packages/melanie2/infinitescroll in the plug-in list because it improves UX a lot (any my users are used to have it and now complain about the old-school-style pagination) ;)

I think having an env var and installing the plug-ins in the running docker container is an anti-pattern (containers should be immutable, preparation errors should only happen on build time). So my idea is to install all popular plug-ins and allow to enable them via env vars.

All 8 comments

Copied from the support channel.

Okay, so currently the Roundcube image does not have composer installed. I would say required steps to get there are: 1. use an env variable to dynamically enable plugins (pre-installed ones) in the PHP config, this should be trivial 2. update the Dockerfile to install composer inside the image and maybe autoinstall plugins at startup by generating a composer.json, this is less trivial
Step 2 should be okay though, you could easily get there by using the same kind of start.py as all Mailu containers are now using, and generate the composer json based on the same environment variable as the one used to enable the plugins

This is not prioritized, but I belive it is simple enough for someone with basic PHP and Python knowledge to implement :)

I'd like to pick up this issue because there are some pending feature requests for roundcube plug-ins:

  • carddav (https://github.com/Mailu/Mailu/issues/1230, https://github.com/Mailu/Mailu/issues/1116)
  • pgp (https://github.com/Mailu/Mailu/issues/506)

Personally I'd like to see https://plugins.roundcube.net/packages/melanie2/infinitescroll in the plug-in list because it improves UX a lot (any my users are used to have it and now complain about the old-school-style pagination) ;)

I think having an env var and installing the plug-ins in the running docker container is an anti-pattern (containers should be immutable, preparation errors should only happen on build time). So my idea is to install all popular plug-ins and allow to enable them via env vars.

@micw Great to hear this. I would also like to see the PGP feature.
What's the status with this issue?

No progress yet, just collecting some feedback ;)

actually roundcube returns an error message when trying to open a mail with a pgp-signature.

Hi There,

The Mailu-Project is currently in a bit of a bind! We are short on man-power, and we need to judge if it is possible for us to put in some work on this issue.

To help with that, we are currently trying to find out which issues are actively keeping users from using Mailu, which issues have someone who want to work on them — and which issues may be less important. These a less important ones could be discarded for the time being, until the project is in a more stable and regular state once again.

In order for us to better assess this, it would be helpful if you could put a reaction on this post (use the :smiley: icon to the top-right).

  • 👍️ if you need this to be able to use Mailu. Ideally, you’d also be able to test this on your installation, and provide feedback …
  • 🎉 if you find it a nice bonus, but no deal-breaker
  • 🚀 if you want to work on it yourself!
    We want to keep this voting open for 2 weeks from now, so please help out!

Any progress on getting functionality to install roundcube plugins?
My idea was to mount the volume however that does not work because it is done at build time.

I got it working:

at first, I switched into my webmail-container and copied the /var/www/html/plugins directory to /data and also the config-file /var/www/html/config/config.inc.php

then I stopped mailu and edited the docker-compose.yml to mount the plugins-dir, the config-file and the logs-directory from host-machine:


webmail:
    image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}roundcube:${MAILU_VERSION:-1.7}
    restart: always
    env_file: mailu.env
    volumes:
      - "/srv/mailu/webmail:/data"
      - "/srv/mailu/webmail/logs:/var/www/html/logs"
      - "/srv/mailu/webmail/config.inc.php:/var/www/html/config/config.inc.php"
      - "/srv/mailu/webmail/plugins:/var/www/html/plugins"
    depends_on:
      - imap

now I can put all my plugins in my plugins-dir, activate them in config and if I get a blank page I can look into the error-log (e.g. if I missed some plugin-dependencies)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alizowghi picture alizowghi  ·  3Comments

whitef0x0 picture whitef0x0  ·  4Comments

c-holtermann picture c-holtermann  ·  3Comments

githtz picture githtz  ·  4Comments

styxlab picture styxlab  ·  4Comments