add documentation, allow overrides, clean plugins

master
Alexander Graf 3 years ago
parent b3d48cc20f
commit 1a41657f90
No known key found for this signature in database
GPG Key ID: B8A9DC143E075629

@ -100,6 +100,7 @@ services:
env_file: .env env_file: .env
volumes: volumes:
- "$ROOT/webmail:/data" - "$ROOT/webmail:/data"
- "$ROOT/overrides/$WEBMAIL:/overrides:ro"
depends_on: depends_on:
- imap - imap

@ -128,6 +128,7 @@ services:
env_file: .env env_file: .env
volumes: volumes:
- "$ROOT/webmail:/data" - "$ROOT/webmail:/data"
- "$ROOT/overrides/$WEBMAIL:/overrides:ro"
depends_on: depends_on:
- imap - imap

@ -262,3 +262,52 @@ The roundcube service stores configurations in a database.
- ``ROUNDCUBE_DB_PW``: the database password for roundcube service. (when not ``sqlite``) - ``ROUNDCUBE_DB_PW``: the database password for roundcube service. (when not ``sqlite``)
- ``ROUNDCUBE_DB_USER``: the database user for roundcube service. (when not ``sqlite``) - ``ROUNDCUBE_DB_USER``: the database user for roundcube service. (when not ``sqlite``)
- ``ROUNDCUBE_DB_NAME``: the database name for roundcube service. (when not ``sqlite``) - ``ROUNDCUBE_DB_NAME``: the database name for roundcube service. (when not ``sqlite``)
.. _webmail_settings
Webmail settings
----------------
When using roundcube it is possible to select the plugins to be enabled by setting ``ROUNDCUBE_PLUGINS`` to
a comma separated list of plugin-names. Included plugins are:
- acl (needs configuration)
- additional_message_headers (needs configuration)
- archive
- attachment_reminder
- carddav
- database_attachmentsi
- debug_logger
- emoticons
- enigma
- help
- hide_blockquote
- identicon
- identity_select
- jqueryui
- mailu
- managesieve
- markasjunk
- new_user_dialog
- newmail_notifier
- reconnect
- show_additional_headers (needs configuration)
- subscriptions_option
- vcard_attachments
- zipdownload
If ``ROUNDCUBE_PLUGINS`` is not set the following plugins are enabled by default:
- archive
- carddav
- enigma
- mailu
- managesieve
- markasjunk
- zipdownload
To disable all plugins just set ``ROUNDCUBE_PLUGINS`` to ``mailu``.
To configure a plugin add php files named ``*.inc`` to roundcube's :ref:`override section <override-label>`.

@ -147,6 +147,7 @@ services:
env_file: {{ env }} env_file: {{ env }}
volumes: volumes:
- "{{ root }}/webmail:/data" - "{{ root }}/webmail:/data"
- "{{ root }}/overrides/{{ webmail_type }}:/overrides:ro"
depends_on: depends_on:
- imap - imap
{% endif %} {% endif %}

@ -123,6 +123,7 @@ services:
env_file: {{ env }} env_file: {{ env }}
volumes: volumes:
- "{{ root }}/webmail:/data" - "{{ root }}/webmail:/data"
- "{{ root }}/overrides/{{ webmail_type }}:/overrides:ro"
deploy: deploy:
replicas: 1 replicas: 1
healthcheck: healthcheck:

@ -57,7 +57,10 @@ RUN set -eu \
&& chown www-data:www-data logs temp \ && chown www-data:www-data logs temp \
&& chmod -R a+rX . \ && chmod -R a+rX . \
&& a2enmod rewrite deflate expires headers \ && a2enmod rewrite deflate expires headers \
&& echo date.timezone=${TZ} > /usr/local/etc/php/conf.d/timezone.ini && echo date.timezone=${TZ} > /usr/local/etc/php/conf.d/timezone.ini \
&& rm -rf plugins/{autologon,example_addressbook,http_authentication,krb_authentication,new_user_identity,password,redundant_attachments,squirrelmail_usercopy,userinfo,virtuser_file,virtuser_query}
# enable database_attachments (and memcache?)
COPY mailu.php /var/www/html/plugins/mailu/mailu.php COPY mailu.php /var/www/html/plugins/mailu/mailu.php
COPY php.ini / COPY php.ini /
@ -65,7 +68,8 @@ COPY config.inc.php /
COPY start.py / COPY start.py /
EXPOSE 80/tcp EXPOSE 80/tcp
VOLUME ["/data"] VOLUME /data
VOLUME /overrides
CMD /start.py CMD /start.py

@ -55,6 +55,11 @@ $config['sso_logout_url'] = '/sso/logout';
// configure enigma gpg plugin // configure enigma gpg plugin
$config['enigma_pgp_homedir'] = '/data/gpg'; $config['enigma_pgp_homedir'] = '/data/gpg';
// Set From header for DKIM signed message delivery reports // set From header for DKIM signed message delivery reports
$config['mdn_use_from'] = true; $config['mdn_use_from'] = true;
// includes
{%- for inc in INCLUDES %}
include('{{ inc }}');
{%- endfor %}

@ -59,6 +59,9 @@ else:
context["PLUGINS"] = ",".join(f"'{p}'" for p in plugins) context["PLUGINS"] = ",".join(f"'{p}'" for p in plugins)
# add overrides
context["INCLUDES"] = sorted(inc for inc in os.listdir("/overrides") if inc.endswith(".inc")) if os.path.isdir("/overrides") else []
# create config files # create config files
conf.jinja("/php.ini", context, "/usr/local/etc/php/conf.d/roundcube.ini") conf.jinja("/php.ini", context, "/usr/local/etc/php/conf.d/roundcube.ini")
conf.jinja("/config.inc.php", context, "/var/www/html/config/config.inc.php") conf.jinja("/config.inc.php", context, "/var/www/html/config/config.inc.php")

Loading…
Cancel
Save