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'); ?>