diff --git a/bin/podman_shared b/bin/podman_shared
index 8efb827d..06eef36f 100644
--- a/bin/podman_shared
+++ b/bin/podman_shared
@@ -1,306 +1,307 @@
#!/bin/bash
PODMAN=podman
podman__build() {
path=$1
shift
name=$1
shift
if [[ "$CACHE_REGISTRY" != "" ]]; then
CACHE_ARGS="--layers --cache-from=$CACHE_REGISTRY/$name --cache-to=$CACHE_REGISTRY/$name --cache-ttl=24h"
fi
podman build $@ $CACHE_ARGS $path -t $name
}
podman__build_base() {
podman__build docker/base/ apheleia/almalinux9 -f almalinux9
podman__build docker/swoole apheleia/swoole
}
podman__build_webapp() {
podman__build docker/webapp kolab-webapp --ulimit nofile=65535:65535 \
${KOLAB_GIT_REMOTE:+"--build-arg=GIT_REMOTE=$KOLAB_GIT_REMOTE"} \
${KOLAB_GIT_REF:+"--build-arg=GIT_REF=$KOLAB_GIT_REF"}
}
podman__build_meet() {
podman__build docker/meet kolab-meet --ulimit nofile=65535:65535 \
${KOLAB_GIT_REMOTE:+"--build-arg=GIT_REMOTE=$KOLAB_GIT_REMOTE"} \
${KOLAB_GIT_REF:+"--build-arg=GIT_REF=$KOLAB_GIT_REF"}
}
podman__build_roundcube() {
podman__build docker/roundcube roundcube --ulimit nofile=65535:65535 \
${GIT_REMOTE_ROUNDCUBEMAIL:+"--build-arg=GIT_REMOTE_ROUNDCUBEMAIL=$GIT_REMOTE_ROUNDCUBEMAIL"} \
${GIT_REF_ROUNDCUBEMAIL:+"--build-arg=GIT_REF_ROUNDCUBEMAIL=$GIT_REF_ROUNDCUBEMAIL"} \
${GIT_REMOTE_ROUNDCUBEMAIL_PLUGINS:+"--build-arg=GIT_REMOTE_ROUNDCUBEMAIL_PLUGINS=$GIT_REMOTE_ROUNDCUBEMAIL_PLUGINS"} \
${GIT_REF_ROUNDCUBEMAIL_PLUGINS:+"--build-arg=GIT_REF_ROUNDCUBEMAIL_PLUGINS=$GIT_REF_ROUNDCUBEMAIL_PLUGINS"} \
${GIT_REMOTE_CHWALA:+"--build-arg=GIT_REMOTE_CHWALA=$GIT_REMOTE_CHWALA"} \
${GIT_REF_CHWALA:+"--build-arg=GIT_REF_CHWALA=$GIT_REF_CHWALA"} \
${GIT_REMOTE_SYNCROTON:+"--build-arg=GIT_REMOTE_SYNCROTON=$GIT_REMOTE_SYNCROTON"} \
${GIT_REF_SYNCROTON:+"--build-arg=GIT_REF_SYNCROTON=$GIT_REF_SYNCROTON"} \
${GIT_REMOTE_AUTOCONF:+"--build-arg=GIT_REMOTE_AUTOCONF=$GIT_REMOTE_AUTOCONF"} \
${GIT_REF_AUTOCONF:+"--build-arg=GIT_REF_AUTOCONF=$GIT_REF_AUTOCONF"} \
${GIT_REMOTE_IRONY:+"--build-arg=GIT_REMOTE_IRONY=$GIT_REMOTE_IRONY"} \
${GIT_REF_IRONY:+"--build-arg=GIT_REF_IRONY=$GIT_REF_IRONY"} \
${GIT_REMOTE_FREEBUSY:+"--build-arg=GIT_REMOTE_FREEBUSY=$GIT_REMOTE_FREEBUSY"} \
${GIT_REF_FREEBUSY:+"--build-arg=GIT_REF_FREEBUSY=$GIT_REF_FREEBUSY"}
}
podman__build_postfix() {
podman__build docker/postfix kolab-postfix
}
podman__build_imap() {
podman__build docker/imap kolab-imap \
${IMAP_GIT_REMOTE:+"--build-arg=GIT_REMOTE=$IMAP_GIT_REMOTE"} \
${IMAP_GIT_REF:+"--build-arg=GIT_REF=$IMAP_GIT_REF"}
}
podman__build_amavis() {
podman__build docker/amavis kolab-amavis
}
podman__build_proxy() {
podman__build docker/proxy kolab-proxy
}
podman__build_collabora() {
podman build docker/collabora -t kolab-collabora --build-arg=REPOSITORY="https://www.collaboraoffice.com/repos/CollaboraOnline/23.05-CODE/CODE-rpm/"
}
podman__build_coturn() {
podman build docker/coturn -t kolab-coturn
}
podman__build_utils() {
podman build docker/utils -t kolab-utils
}
podman__build_all() {
podman__build_base
podman__build_webapp
podman__build_meet
podman__build_postfix
podman__build_imap
podman__build_amavis
podman__build_collabora
podman build docker/mariadb -t mariadb
podman build docker/redis -t redis
podman__build_proxy
podman__build_coturn
podman__build_utils
podman build docker/fluentbit -t fluentbit
podman__build_roundcube
}
kolab__validate() {
POD=$1
$PODMAN exec $POD-imap testsaslauthd -u cyrus-admin -p simple123
$PODMAN exec $POD-imap testsaslauthd -u "john@kolab.org" -p simple123
# Ensure the inbox is created
FOUND=false
for i in {1..60}; do
if $PODMAN exec $POD-imap bash -c 'echo "lm" | cyradm --auth PLAIN -u cyrus-admin -w simple123 --port 11143 localhost | grep "user/john@kolab.org"'; then
echo "Found mailbox";
FOUND=true
break
else
echo "Waiting for mailbox";
sleep 1;
fi
done
if ! $FOUND; then
echo "Failed to find the inbox for john@kolab.org"
exit 1
fi
}
podman__is_ready() {
if [[ "$(timeout 5 podman wait --condition running $1)" != "-1" ]]; then
echo "Container $1 is not running"
return 1
fi
# We can only wait for healthy if healthcheck is available
return 0
}
podman__healthcheck() {
for CONTAINER in $@; do
echo "Waiting for ${CONTAINER} become healthy "
while [ $(podman healthcheck run ${CONTAINER}) ]; do
echo -n "."; sleep 5;
done
done
}
podman__run_proxy() {
$PODMAN run -dt --pod $POD --name $POD-proxy --replace \
-v $CERTS_PATH:/etc/certs:ro \
-v /etc/letsencrypt/:/etc/letsencrypt/:ro \
-e APP_WEBSITE_DOMAIN \
-e SSL_CERTIFICATE=${KOLAB_SSL_CERTIFICATE} \
-e SSL_CERTIFICATE_KEY=${KOLAB_SSL_CERTIFICATE_KEY} \
-e WEBAPP_BACKEND="http://localhost:8000" \
-e MEET_BACKEND="http://localhost:12080" \
-e ROUNDCUBE_BACKEND="http://localhost:8080" \
-e DAV_BACKEND="http://localhost:11080/dav" \
-e COLLABORA_BACKEND="http://localhost:9980" \
-e MATRIX_BACKEND="http://localhost:8008" \
-e ELEMENT_BACKEND="http://localhost:8880" \
-e SIEVE_BACKEND="localhost:4190" \
kolab-proxy:latest
}
podman__run_roundcube() {
$PODMAN run -dt --pod $POD --name $POD-roundcube --replace \
-v ./ext:/src.orig:ro \
-e APP_DOMAIN \
-e DES_KEY \
-e DB_HOST \
-e DB_RC_DATABASE="roundcube" \
-e DB_RC_USERNAME="roundcube" \
-e DB_RC_PASSWORD="${DB_PASSWORD:?"missing env variable"}" \
-e IMAP_HOST=127.0.0.1 \
-e IMAP_PORT=11143 \
-e IMAP_ADMIN_LOGIN \
-e IMAP_ADMIN_PASSWORD \
-e SUBMISSION_HOST=127.0.0.1 \
-e SUBMISSION_ENCRYPTION=starttls \
-e SUBMISSION_PORT=10587 \
-e IMAP_DEBUG \
+ -e LOG_DRIVER=stdout \
-e KOLAB_FILES_SERVER_URL=http://localhost:8080/chwala \
-e FILEAPI_WOPI_OFFICE=http://localhost:9980 \
-e FILEAPI_KOLABFILES_BASEURI=http://localhost:8000/api \
-e FILE_API_SERVER_URL=http://localhost:8080/chwala/api/ \
-e KOLAB_ADDRESSBOOK_CARDDAV_SERVER=http://localhost:11080/dav \
-e CALENDAR_CALDAV_SERVER=http://localhost:11080/dav \
-e TASKLIST_CALDAV_SERVER=http://localhost:11080/dav \
roundcube:latest
}
podman__run_mariadb() {
$PODMAN run -dt --pod $POD --name $POD-mariadb --replace \
$MARIADB_STORAGE \
-e MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:?"missing env variable"} \
-e TZ="+02:00" \
-e DB_HKCCP_DATABASE="kolabdev" \
-e DB_HKCCP_USERNAME="kolabdev" \
-e DB_HKCCP_PASSWORD=${DB_PASSWORD:?"missing env variable"} \
-e DB_KOLAB_DATABASE="kolab" \
-e DB_KOLAB_USERNAME="kolab" \
-e DB_KOLAB_PASSWORD=${DB_PASSWORD:?"missing env variable"} \
-e DB_RC_DATABASE="roundcube" \
-e DB_RC_USERNAME="roundcube" \
-e DB_RC_PASSWORD=${DB_PASSWORD:?"missing env variable"} \
--health-cmd "mysqladmin -u root ping && test -e /tmp/initialized" \
mariadb:latest
}
podman__run_redis() {
$PODMAN run -dt --pod $POD --name $POD-redis --replace \
$REDIS_STORAGE \
--health-cmd "redis-cli ping || exit 1" \
redis:latest
}
podman__run_minio() {
$PODMAN run -dt --pod $POD --name $POD-minio --replace \
$MINIO_STORAGE \
-e MINIO_ROOT_USER=${MINIO_USER:?"missing env variable"} \
-e MINIO_ROOT_PASSWORD=${MINIO_PASSWORD:?"missing env variable"} \
--health-cmd "mc ready local || exit 1" \
--entrypoint sh \
quay.io/minio/minio:latest -c 'mkdir -p /data/kolab && minio server /data --console-address ":9001"'
}
podman__run_webapp() {
# We run with a fixed config.demo overlay and override the environment with ci/env
$PODMAN run -dt --pod $POD --name $POD-webapp --replace \
--env-file=$1 \
-v ./src:/src/kolabsrc.orig:ro \
-v ./$2/src:/src/overlay:ro \
-e NOENVFILE=true \
-e APP_SERVICES_ALLOWED_DOMAINS="webapp,localhost,services.$HOST" \
-e KOLAB_ROLE=combined \
-e PASSPORT_PRIVATE_KEY="$PASSPORT_PRIVATE_KEY" \
-e PASSPORT_PUBLIC_KEY="$PASSPORT_PUBLIC_KEY" \
-e MINIO_ENDPOINT="http://localhost:9000" \
-e MEET_SERVER_URLS="http://127.0.0.1:12080/meetmedia/api/" \
-e MEET_SERVER_VERIFY_TLS=false \
--health-cmd "./artisan octane:status || exit 1" \
kolab-webapp:latest
}
podman__run_imap() {
$PODMAN run -dt --pod $POD --name $POD-imap --replace \
$IMAP_SPOOL_STORAGE \
$IMAP_LIB_STORAGE \
-e APP_SERVICES_DOMAIN="localhost" \
-e SERVICES_PORT=8000 \
-e IMAP_ADMIN_LOGIN \
-e IMAP_ADMIN_PASSWORD \
--health-cmd "test -e /run/saslauthd/mux && kill -0 \$(cat /var/run/master.pid)" \
kolab-imap:latest
}
podman__run_postfix() {
$PODMAN run -dt --pod $POD --name $POD-postfix --replace \
--privileged \
$POSTFIX_SPOOL_STORAGE \
$POSTFIX_LIB_STORAGE \
-v $CERTS_PATH:/etc/certs:ro \
-v /etc/letsencrypt/:/etc/letsencrypt/:ro \
-e SSL_CERTIFICATE="$KOLAB_SSL_CERTIFICATE" \
-e SSL_CERTIFICATE_FULLCHAIN="$KOLAB_SSL_CERTIFICATE_FULLCHAIN" \
-e SSL_CERTIFICATE_KEY="$KOLAB_SSL_CERTIFICATE_KEY" \
-e APP_DOMAIN \
-e APP_SERVICES_DOMAIN="localhost" \
-e SERVICES_PORT=8000 \
-e AMAVIS_HOST=127.0.0.1 \
-e DB_HOST=127.0.0.1 \
-e DB_USERNAME \
-e DB_PASSWORD \
-e DB_DATABASE \
-e LMTP_DESTINATION="localhost:11024" \
--health-cmd "test -e /run/saslauthd/mux && kill -0 \$(cat /var/spool/postfix/pid/master.pid)" \
kolab-postfix:latest
}
podman__run_amavis() {
$PODMAN run -dt --pod $POD --name $POD-amavis --replace \
-e APP_DOMAIN \
-e POSTFIX_HOST=localhost \
-e DB_HOST=localhost \
-e DB_USERNAME \
-e DB_PASSWORD \
-e DB_DATABASE \
kolab-amavis:latest
}
podman__run_collabora() {
$PODMAN run -dt --pod $POD --name $POD-collabora --replace \
--privileged \
-e ALLOWED_HOSTS=${APP_DOMAIN} \
kolab-collabora:latest
}
podman__run_meet() {
$PODMAN run -dt --pod $POD --name $POD-meet --replace \
-v ./meet/server:/src/meet:ro \
-e WEBRTC_LISTEN_IP=0.0.0.0 \
-e WEBRTC_ANNOUNCED_ADDRESS=${PUBLIC_IP:?"missing env variable"} \
-e PUBLIC_DOMAIN=$APP_DOMAIN \
-e LISTENING_HOST=127.0.0.1 \
-e LISTENING_PORT=12080 \
-e DEBUG="*" \
-e TURN_SERVER=none \
-e AUTH_TOKEN=${MEET_SERVER_TOKEN} \
-e WEBHOOK_TOKEN=${MEET_WEBHOOK_TOKEN} \
-e WEBHOOK_URL=$APP_DOMAIN/api/webhooks/meet \
-e SSL_CERT=none \
-e FORCE_WSS=true \
kolab-meet:latest
}
diff --git a/docker/roundcube/Dockerfile b/docker/roundcube/Dockerfile
index 6878e83c..018d1613 100644
--- a/docker/roundcube/Dockerfile
+++ b/docker/roundcube/Dockerfile
@@ -1,126 +1,127 @@
FROM apheleia/almalinux9
ENV HOME=/opt/app-root/src
# Add kolab
RUN rpm --import https://mirror.apheleia-it.ch/repos/Kolab:/16/key.asc && \
rpm -Uvh https://mirror.apheleia-it.ch/repos/Kolab:/16/kolab-16-for-el9.rpm
# Install php modules
RUN sed -i -e '/^ssl/d' /etc/yum.repos.d/kolab*.repo && \
dnf config-manager --enable kolab-16 &&\
dnf -y --setopt=install_weak_deps=False --setopt tsflags= install php-kolab php-kolabformat \
composer \
diffutils \
file \
git \
make \
unzip \
curl-minimal \
mariadb \
which \
rsync \
openssl-devel \
httpd \
patch \
php-cli \
php-common \
php-devel \
php-ldap \
php-opcache \
php-pecl-apcu \
php-mysqlnd \
php-gd \
php-fpm \
php-pear \
ImageMagick \
re2c \
npm \
wget && \
dnf clean all
RUN npm install -g less less-plugin-clean-css
WORKDIR ${HOME}
COPY rootfs/opt/app-root/src/build.sh /opt/app-root/src/
COPY rootfs/opt/app-root/src/update.sh /opt/app-root/src/
COPY rootfs/opt/app-root/src/composer.json /opt/app-root/src/
COPY rootfs/opt/app-root/src/roundcubemail-config-templates /opt/app-root/src/roundcubemail-config-templates
ARG GIT_REF_ROUNDCUBEMAIL=dev/kolab-1.5
ARG GIT_REMOTE_ROUNDCUBEMAIL=https://git.kolab.org/source/roundcubemail.git
ARG GIT_REF_ROUNDCUBEMAIL_PLUGINS=master
ARG GIT_REMOTE_ROUNDCUBEMAIL_PLUGINS=https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
ARG GIT_REF_CHWALA=master
ARG GIT_REMOTE_CHWALA=https://git.kolab.org/diffusion/C/chwala.git
ARG GIT_REF_SYNCROTON=master
ARG GIT_REMOTE_SYNCROTON=https://git.kolab.org/diffusion/S/syncroton.git
ARG GIT_REF_AUTOCONF=master
ARG GIT_REMOTE_AUTOCONF=https://git.kolab.org/diffusion/AC/autoconf.git
ARG GIT_REF_IRONY=master
ARG GIT_REMOTE_IRONY=https://git.kolab.org/source/iRony.git
ARG GIT_REF_FREEBUSY=master
ARG GIT_REMOTE_FREEBUSY=https://git.kolab.org/diffusion/F/freebusy.git
RUN /opt/app-root/src/build.sh && \
chgrp -R 0 /opt/app-root/src && \
chmod -R g=u /opt/app-root/src && \
mkdir -p /run/php-fpm && \
chmod 777 /run/php-fpm && \
mkdir -p /run/httpd && \
chmod 777 /run/httpd && \
mkdir -p /data && \
chmod 777 /data && \
chmod -R 777 /etc/php.ini /etc/httpd /var/log/httpd /var/lib/httpd /data && \
chown -R 1001:0 /opt/app-root/src /data
COPY /rootfs /
RUN chmod -R 777 /etc/php.ini /etc/httpd /opt/app-root/src/*.sh
VOLUME /data
ENV RUN_MIGRATIONS=true
ENV KOLABOBJECTS_COMPAT_MODE=false
+ENV LOGDRIVER=logfmt
# ENV FILEAPI_KOLABFILES_BASEURI=
# ENV FILEAPI_WOPI_OFFICE=
# ENV FILE_API_URL=
# ENV FILE_API_SERVER_URL=
# ENV CALENDAR_CALDAV_SERVER=
# ENV TASKLIST_CALDAV_SERVER=
# ENV KOLAB_ADDRESSBOOK_CARDDAV_SERVER=
# ENV KOLAB_FILES_URL=
# ENV KOLAB_FILES_SERVER_URL=
# ENV IMAP_HOST=
# ENV IMAP_PORT=
# ENV IMAP_TLS=
# ENV IMAP_PROXY_PROTOCOL=
# ENV IMAP_ADMIN_LOGIN=
# ENV IMAP_ADMIN_PASSWORD=
# ENV DB_RC_USERNAME=
# ENV DB_RC_PASSWORD=
# ENV DB_RC_DATABASE=
# ENV DB_HOST=
# ENV DES_KEY=
# ENV APP_DOMAIN=
# ENV PROXY_WHITELIST=
# ENV SUBMISSION_HOST=
# ENV SUBMISSION_PORT=
# ENV SUBMISSION_ENCRYPTION=
# ENV DISABLED_PLUGINS=
# ENV EXTRA_PLUGINS=
# ENV SQL_DEBUG=
# ENV MEMCACHE_DEBUG=
# ENV IMAP_DEBUG=
# ENV SMTP_DEBUG=
# ENV DAV_DEBUG=
# ENV ACTIVESYNC_DEBUG=
USER 1001
EXPOSE 8080
# https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop
STOPSIGNAL SIGWINCH
CMD [ "/opt/app-root/src/init.sh" ]
diff --git a/docker/roundcube/rootfs/opt/app-root/src/roundcubemail-config-templates/config.inc.php b/docker/roundcube/rootfs/opt/app-root/src/roundcubemail-config-templates/config.inc.php
index 90a11809..f1b4f99e 100644
--- a/docker/roundcube/rootfs/opt/app-root/src/roundcubemail-config-templates/config.inc.php
+++ b/docker/roundcube/rootfs/opt/app-root/src/roundcubemail-config-templates/config.inc.php
@@ -1,224 +1,224 @@
2) {
array_shift($components);
}
$config['session_domain'] = implode('.', $components);
$config['des_key'] = getenv('DES_KEY');
$config['username_domain'] = getenv('APP_DOMAIN');
$config['use_secure_urls'] = true;
$config['mail_domain'] = '';
// IMAP Server Settings
$config['default_host'] = (getenv('IMAP_TLS') == "true" ? "ssl://" : "") . getenv('IMAP_HOST');
$config['default_port'] = getenv('IMAP_PORT');
$config['imap_delimiter'] = '/';
$config['imap_force_lsub'] = true;
if (getenv('IMAP_TLS') == "true") {
$config['imap_conn_options'] = [
'ssl' => [
'verify_peer_name' => false,
'verify_peer' => false,
'allow_self_signed' => true
],
'proxy_protocol' => getenv('IMAP_PROXY_PROTOCOL')
];
}
$config['proxy_whitelist'] = getenvlist('PROXY_WHITELIST');
// Caching and storage settings
$config['imap_cache'] = 'db';
$config['imap_cache_ttl'] = '10d';
$config['messages_cache'] = 'db';
$config['message_cache_ttl'] = '10d';
$config['session_storage'] = 'db';
// SMTP Server Settings
if (getenv('SUBMISSION_ENCRYPTION') == "starttls") {
$config['smtp_server'] = "tls://" . getenv('SUBMISSION_HOST');
} else {
$config['smtp_server'] = getenv('SUBMISSION_HOST');
}
$config['smtp_port'] = getenv('SUBMISSION_PORT');
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_helo_host'] = $_SERVER["HTTP_HOST"] ?? null;
if (!empty(getenv('SUBMISSION_ENCRYPTION'))) {
$config['smtp_conn_options'] = [
'ssl' => [
'verify_peer_name' => false,
'verify_peer' => false,
'allow_self_signed' => true
]
];
}
// Kolab specific defaults
$config['product_name'] = 'Kolab Groupware';
$config['quota_zero_as_unlimited'] = false;
$config['login_lc'] = 2;
$config['auto_create_user'] = true;
$config['enable_installer'] = false;
// The SMTP server does not allow empty identities
$config['mdn_use_from'] = true;
// Plugins
$plugins = [
'acl',
'archive',
'calendar',
'jqueryui',
'kolab_activesync',
'kolab_addressbook',
'kolab_files',
'managesieve',
'newmail_notifier',
'odfviewer',
'redundant_attachments',
'contextmenu',
'tasklist',
'enigma',
];
if (getenv('KOLABOBJECTS_COMPAT_MODE') == "true") {
$plugins[] = 'kolab_config';
$plugins[] = 'kolab_folders';
$plugins[] = 'kolab_notes';
$plugins[] = 'kolab_tags';
// These require ldap
// $plugins[] = 'kolab_auth';
// $plugins[] = 'kolab_delegation';
}
if ($disabledPlugins = getenvlist('DISABLED_PLUGINS')) {
$plugins = array_diff($plugins, $disabledPlugins);
}
if ($extraPlugins = getenvlist('EXTRA_PLUGINS')) {
$plugins = array_merge($plugins, $extraPlugins);
}
// contextmenu must be after kolab_addressbook (#444)
$plugins[] = 'contextmenu';
$config['plugins'] = $plugins;
// Do not show deleted messages, mark deleted messages as read,
// and flag them as deleted instead of moving them to the Trash
// folder.
$config['skip_deleted'] = true;
$config['read_when_deleted'] = true;
$config['flag_for_deletion'] = true;
$config['delete_always'] = true;
$config['session_lifetime'] = 180;
$config['password_charset'] = 'UTF-8';
$config['useragent'] = 'Kolab 16/Roundcube ' . RCUBE_VERSION;
$config['message_sort_col'] = 'date';
$config['spellcheck_engine'] = 'pspell';
$config['spellcheck_dictionary'] = true;
$config['spellcheck_ignore_caps'] = true;
$config['spellcheck_ignore_nums'] = true;
$config['spellcheck_ignore_syms'] = true;
$config['spellcheck_languages'] = array(
'da' => 'Dansk',
'de' => 'Deutsch',
'en' => 'English',
'es' => 'Español',
'fr' => 'Français',
'it' => 'Italiano',
'nl' => 'Nederlands',
'pt' => 'Português',
'ru' => 'Русский',
'sv' => 'Svenska'
);
$config['undo_timeout'] = 10;
$config['upload_progress'] = 2;
$config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}';
$config['preview_pane'] = true;
$config['preview_pane_mark_read'] = 0;
$config['autoexpand_threads'] = 2;
$config['top_posting'] = 0;
$config['sig_above'] = false;
$config['mdn_requests'] = 0;
$config['mdn_default'] = false;
$config['dsn_default'] = false;
$config['reply_same_folder'] = false;
if (file_exists(RCUBE_CONFIG_DIR . '/' . ($_SERVER["HTTP_HOST"] ?? null) . '/' . basename(__FILE__))) {
include_once(RCUBE_CONFIG_DIR . '/' . ($_SERVER["HTTP_HOST"] ?? null) . '/' . basename(__FILE__));
}
// Re-apply mandatory settings here.
$config['debug_level'] = 1;
$config['devel_mode'] = false;
- $config['log_driver'] = 'logfmt';
+ $config['log_driver'] = getenv('LOG_DRIVER');
$config['per_user_logging'] = true;
$config['log_date_format'] = 'd-M-Y H:i:s,u O';
$config['smtp_log'] = false;
$config['log_logins'] = true;
$config['log_session'] = false;
$config['sql_debug'] = getenv('SQL_DEBUG');
$config['memcache_debug'] = getenv('MEMCACHE_DEBUG');
$config['imap_debug'] = getenv('IMAP_DEBUG');
$config['smtp_debug'] = getenv('SMTP_DEBUG');
$config['dav_debug'] = getenv('DAV_DEBUG');
$config['skin'] = 'kolab';
$config['skin_include_php'] = false;
$config['mime_magic'] = null;
$config['im_identify_path'] = '/usr/bin/identify';
$config['im_convert_path'] = '/usr/bin/convert';
$config['log_dir'] = 'logs/';
#$config['temp_dir'] = '/var/lib/roundcubemail/';
// Some additional default folders (archive plugin)
$config['archive_mbox'] = 'Archive';
// The Kolab daemon by default creates 'Spam'
$config['junk_mbox'] = 'Spam';
$config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash', 'Archive');
// $config['address_book_type'] = 'ldap';
$config['autocomplete_min_length'] = 3;
$config['autocomplete_threads'] = 0;
$config['autocomplete_max'] = 15;
// Disable the default addressbook and use the dav addressbook by default
$config['address_book_type'] = '';
$config['autocomplete_single'] = true;
$config['htmleditor'] = 0;
$config['kolab_http_request'] = Array(
'ssl_verify_host' => false,
'ssl_verify_peer' => false,
);
@include('kolab_syncroton.inc.php');
@include('chwala.inc.php');
?>