mirror of
				https://github.com/zokradonh/kopano-docker
				synced 2025-11-04 12:27:30 +00:00 
			
		
		
		
	prepare changes to run kdav through kweb as well (#424)
* prepare changes to run kdav through kweb as well * add kdav configuration * add remaining kdav configuration for kweb * import remaining kweb/php-fpm config from https://stash.kopano.io/projects/PKG/repos/kopano-one-php-fpm/browse
This commit is contained in:
		
							parent
							
								
									045ca52d79
								
							
						
					
					
						commit
						8432396059
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@ -163,7 +163,7 @@ build-playground:
 | 
				
			|||||||
build-python: build-base
 | 
					build-python: build-base
 | 
				
			||||||
	component=python make build
 | 
						component=python make build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build-kdav:
 | 
					build-kdav: build-php
 | 
				
			||||||
	docker pull composer:1.9
 | 
						docker pull composer:1.9
 | 
				
			||||||
	component=kdav make build-builder
 | 
						component=kdav make build-builder
 | 
				
			||||||
	component=kdav make build
 | 
						component=kdav make build
 | 
				
			||||||
 | 
				
			|||||||
@ -259,7 +259,7 @@ services:
 | 
				
			|||||||
      - kopano-net
 | 
					      - kopano-net
 | 
				
			||||||
      - web-net
 | 
					      - web-net
 | 
				
			||||||
    tmpfs:
 | 
					    tmpfs:
 | 
				
			||||||
      - /run/apache2/
 | 
					      - /run/php/
 | 
				
			||||||
      - /run/sessions/
 | 
					      - /run/sessions/
 | 
				
			||||||
      - /tmp
 | 
					      - /tmp
 | 
				
			||||||
      - /var/log/kdav/
 | 
					      - /var/log/kdav/
 | 
				
			||||||
 | 
				
			|||||||
@ -2,11 +2,11 @@
 | 
				
			|||||||
ARG docker_repo=zokradonh
 | 
					ARG docker_repo=zokradonh
 | 
				
			||||||
FROM composer:1.9 as builder
 | 
					FROM composer:1.9 as builder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN git clone --depth 1 https://stash.kopano.io/scm/kc/kdav.git /usr/share/kdav
 | 
					RUN git clone --depth 1 https://stash.kopano.io/scm/kc/kdav.git /usr/share/kopano-kdav
 | 
				
			||||||
WORKDIR /usr/share/kdav
 | 
					WORKDIR /usr/share/kopano-kdav
 | 
				
			||||||
RUN composer install
 | 
					RUN composer install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM ${docker_repo}/kopano_base
 | 
					FROM ${docker_repo}/kopano_php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG ADDITIONAL_KOPANO_PACKAGES=""
 | 
					ARG ADDITIONAL_KOPANO_PACKAGES=""
 | 
				
			||||||
ARG DOWNLOAD_COMMUNITY_PACKAGES=1
 | 
					ARG DOWNLOAD_COMMUNITY_PACKAGES=1
 | 
				
			||||||
@ -30,18 +30,11 @@ LABEL maintainer=az@zok.xyz \
 | 
				
			|||||||
    org.label-schema.schema-version="1.0"
 | 
					    org.label-schema.schema-version="1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# install Kopano kDAV
 | 
					# install Kopano kDAV
 | 
				
			||||||
# hadolint ignore=SC2215
 | 
					RUN \
 | 
				
			||||||
RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \
 | 
					 | 
				
			||||||
    # apt key for this repo has already been installed in base
 | 
					 | 
				
			||||||
    echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_CORE_REPOSITORY_URL} ./" > /etc/apt/sources.list.d/kopano.list; \
 | 
					 | 
				
			||||||
    set -x && \
 | 
					    set -x && \
 | 
				
			||||||
    apt-get update && apt-get install -y --no-install-recommends \
 | 
					    apt-get update && apt-get install -y --no-install-recommends \
 | 
				
			||||||
        apache2 \
 | 
					 | 
				
			||||||
        libapache2-mod-php7.3 \
 | 
					 | 
				
			||||||
        crudini \
 | 
					 | 
				
			||||||
        php7-mapi \
 | 
					 | 
				
			||||||
        php-xml \
 | 
					 | 
				
			||||||
        php-mbstring \
 | 
					        php-mbstring \
 | 
				
			||||||
 | 
					        php-xml \
 | 
				
			||||||
        php-zip \
 | 
					        php-zip \
 | 
				
			||||||
        sqlite \
 | 
					        sqlite \
 | 
				
			||||||
        php-sqlite3 \
 | 
					        php-sqlite3 \
 | 
				
			||||||
@ -49,40 +42,21 @@ RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \
 | 
				
			|||||||
        ${ADDITIONAL_KOPANO_PACKAGES} \
 | 
					        ${ADDITIONAL_KOPANO_PACKAGES} \
 | 
				
			||||||
    && rm -rf /var/cache/apt /var/lib/apt/lists/*
 | 
					    && rm -rf /var/cache/apt /var/lib/apt/lists/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY apache2-kopano-kdav.conf /etc/apache2/sites-available/kopano-kdav.conf
 | 
					# ensure right permissions of folders
 | 
				
			||||||
 | 
					 | 
				
			||||||
# configure basics
 | 
					 | 
				
			||||||
RUN \
 | 
					RUN \
 | 
				
			||||||
    # configure apache
 | 
					    mkdir -p /var/lib/kopano/kdav /var/log/kdav && \
 | 
				
			||||||
    rm /etc/apache2/sites-enabled/* && \
 | 
					    chown www-data:www-data /var/lib/kopano/kdav /var/log/kdav
 | 
				
			||||||
    sed -e 's,^ErrorLog.*,ErrorLog "|/bin/cat",' -i /etc/apache2/apache2.conf && \
 | 
					 | 
				
			||||||
    sed -e "s,MaxSpareServers[^:].*,MaxSpareServers 5," -i /etc/apache2/mods-available/mpm_prefork.conf && \
 | 
					 | 
				
			||||||
    a2disconf other-vhosts-access-log && \
 | 
					 | 
				
			||||||
    a2ensite kopano-kdav && \
 | 
					 | 
				
			||||||
    echo "Listen 80" > /etc/apache2/ports.conf && \
 | 
					 | 
				
			||||||
    # configure mod_php
 | 
					 | 
				
			||||||
    a2enmod rewrite && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/apache2/php.ini PHP upload_max_filesize 500M && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/apache2/php.ini PHP post_max_size 500M && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/apache2/php.ini PHP max_input_vars 1800 && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/apache2/php.ini Session session.save_path /run/sessions && \
 | 
					 | 
				
			||||||
    mkdir -p /var/lib/kopano/kdav && \
 | 
					 | 
				
			||||||
    chown www-data:www-data /var/lib/kopano/kdav && \
 | 
					 | 
				
			||||||
    mkdir -p /var/log/kdav && \
 | 
					 | 
				
			||||||
    chown www-data:www-data /var/log/kdav
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=builder /usr/share/kdav /usr/share/kdav
 | 
					COPY --from=builder /usr/share/kopano-kdav /usr/share/kopano-kdav
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# tweaks to make the container read-only
 | 
					# tweaks to make the container read-only
 | 
				
			||||||
RUN \
 | 
					RUN \
 | 
				
			||||||
    mv /usr/share/kdav/config.php /usr/share/kdav/config.php.dist && \
 | 
					    mv /usr/share/kopano-kdav/config.php /usr/share/kopano-kdav/config.php.dist && \
 | 
				
			||||||
    ln -s /tmp/config.php /usr/share/kdav/config.php
 | 
					    ln -s /tmp/config.php /usr/share/kopano-kdav/config.php
 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 80/tcp
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY kopano-kdav.conf /etc/php/7.3/fpm/pool.d/
 | 
				
			||||||
COPY start.sh /kopano/start.sh
 | 
					COPY start.sh /kopano/start.sh
 | 
				
			||||||
 | 
					COPY kweb.cfg /etc/kweb.cfg
 | 
				
			||||||
ENV LANG en_US.UTF-8
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
 | 
					ENTRYPOINT ["/usr/bin/dumb-init", "--"]
 | 
				
			||||||
CMD [ "/kopano/start.sh" ]
 | 
					CMD [ "/kopano/start.sh" ]
 | 
				
			||||||
 | 
				
			|||||||
@ -1,29 +0,0 @@
 | 
				
			|||||||
<VirtualHost *:80>
 | 
					 | 
				
			||||||
	DocumentRoot /usr/share/kdav/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	LogFormat "%{X-Forwarded-For}i %{%a %b %d %T %Y}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
 | 
					 | 
				
			||||||
	ErrorLog "|/bin/cat"
 | 
					 | 
				
			||||||
	CustomLog "|/bin/cat" proxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	RewriteEngine On
 | 
					 | 
				
			||||||
	# redirect well-known url http://sabre.io/dav/service-discovery/
 | 
					 | 
				
			||||||
	# (redirect may need to be done to the absolute external url)
 | 
					 | 
				
			||||||
	RewriteRule ^/.well-known/carddav$ / [R]
 | 
					 | 
				
			||||||
	RewriteRule ^/.well-known/caldav$ / [R]
 | 
					 | 
				
			||||||
	# This makes every request go to server.php
 | 
					 | 
				
			||||||
	RewriteRule ^/(.*)$ /server.php [L]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Output buffering needs to be off, to prevent high memory usage
 | 
					 | 
				
			||||||
	php_flag output_buffering off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# This is also to prevent high memory usage
 | 
					 | 
				
			||||||
	php_flag always_populate_raw_post_data off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# SabreDAV is not compatible with mbstring function overloading
 | 
					 | 
				
			||||||
	php_flag mbstring.func_overload off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# set higher limits by default
 | 
					 | 
				
			||||||
	php_value memory_limit 256M
 | 
					 | 
				
			||||||
	php_value max_execution_time 259200
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</VirtualHost>
 | 
					 | 
				
			||||||
							
								
								
									
										53
									
								
								kdav/kopano-kdav.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								kdav/kopano-kdav.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					[kopano-kdav]
 | 
				
			||||||
 | 
					; Unix user/group of processes
 | 
				
			||||||
 | 
					; Note: The user is mandatory. If the group is not set, the default user's group
 | 
				
			||||||
 | 
					;       will be used.
 | 
				
			||||||
 | 
					user = www-data
 | 
				
			||||||
 | 
					group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
				
			||||||
 | 
					; permissions must be set in order to allow connections from a web server. Many
 | 
				
			||||||
 | 
					; BSD-derived systems allow connections regardless of permissions.
 | 
				
			||||||
 | 
					; Default Values: user and group are set as the running user
 | 
				
			||||||
 | 
					;                 mode is set to 0660
 | 
				
			||||||
 | 
					listen.owner = www-data
 | 
				
			||||||
 | 
					listen.group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listen = /run/php/php-fpm-kopano-kdav.sock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Pool configuration intended for up to 500 users.
 | 
				
			||||||
 | 
					pm = dynamic
 | 
				
			||||||
 | 
					pm.max_children = 100
 | 
				
			||||||
 | 
					pm.start_servers = 10
 | 
				
			||||||
 | 
					pm.min_spare_servers = 10
 | 
				
			||||||
 | 
					pm.max_spare_servers = 50
 | 
				
			||||||
 | 
					pm.process_idle_timeout = 60s
 | 
				
			||||||
 | 
					pm.max_requests = 200
 | 
				
			||||||
 | 
					pm.status_path = /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ping.path = /ping
 | 
				
			||||||
 | 
					ping.response = pong
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					security.limit_extensions = .php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_flag[display_errors] = off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_value[max_execution_time] = 60
 | 
				
			||||||
 | 
					php_admin_value[post_max_size] = 20M
 | 
				
			||||||
 | 
					php_admin_value[upload_max_filesize] = 20M
 | 
				
			||||||
 | 
					php_admin_value[memory_limit] = 64M
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_flag[log_errors] = on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Redirect worker stdout and stderr into main error log. If not set, stdout and
 | 
				
			||||||
 | 
					; stderr will be redirected to /dev/null according to FastCGI specs.
 | 
				
			||||||
 | 
					; Note: on highloaded environement, this can cause some delay in the page
 | 
				
			||||||
 | 
					; process time (several ms).
 | 
				
			||||||
 | 
					; Default Value: no
 | 
				
			||||||
 | 
					catch_workers_output = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; KDAV specifics, to reduce memory usage.
 | 
				
			||||||
 | 
					php_flag[output_buffering] = off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; SabreDAV is not compatible with mbstring function overloading.
 | 
				
			||||||
 | 
					php_flag[mbstring.func_overload] = off
 | 
				
			||||||
							
								
								
									
										30
									
								
								kdav/kweb.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								kdav/kweb.cfg
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					:9080 {
 | 
				
			||||||
 | 
						log stdout
 | 
				
			||||||
 | 
						errors stderr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# healthcheck
 | 
				
			||||||
 | 
						status 200 /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rewrite /kdav/ {
 | 
				
			||||||
 | 
							to /kdav/server.php
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fastcgi2 /kdav/ /run/php/php-fpm-kopano-kdav.sock php {
 | 
				
			||||||
 | 
							without /kdav/
 | 
				
			||||||
 | 
							root /usr/share/kopano-kdav
 | 
				
			||||||
 | 
							read_timeout 259200s
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						redir 302 {
 | 
				
			||||||
 | 
							/.well-known/carddav /kdav/
 | 
				
			||||||
 | 
							/.well-known/caldav /kdav/
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						status 403 {
 | 
				
			||||||
 | 
							/kdav/config.php
 | 
				
			||||||
 | 
							/kdav/lib
 | 
				
			||||||
 | 
							/kdav/mapi
 | 
				
			||||||
 | 
							/kdav/vendor
 | 
				
			||||||
 | 
							/kdav/version.php
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -34,7 +34,7 @@ if [ "${AUTOCONFIGURE}" == true ]; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	CONFIG_PHP=/tmp/config.php
 | 
						CONFIG_PHP=/tmp/config.php
 | 
				
			||||||
	# copy latest config template. This should be the mount point for preexisting config files.
 | 
						# copy latest config template. This should be the mount point for preexisting config files.
 | 
				
			||||||
	cp /usr/share/kdav/config.php.dist $CONFIG_PHP
 | 
						cp /usr/share/kopano-kdav/config.php.dist $CONFIG_PHP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ "$KCCONF_SERVERHOSTNAME" == "127.0.0.1" ]; then
 | 
						if [ "$KCCONF_SERVERHOSTNAME" == "127.0.0.1" ]; then
 | 
				
			||||||
		echo "kDAV is using the default: connection"
 | 
							echo "kDAV is using the default: connection"
 | 
				
			||||||
@ -60,11 +60,9 @@ touch /var/log/kdav/kdav.log
 | 
				
			|||||||
chown www-data:www-data /var/log/kdav/kdav.log
 | 
					chown www-data:www-data /var/log/kdav/kdav.log
 | 
				
			||||||
tail --pid=$$ -F --lines=0 -q /var/log/kdav/kdav.log &
 | 
					tail --pid=$$ -F --lines=0 -q /var/log/kdav/kdav.log &
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Starting Apache"
 | 
					 | 
				
			||||||
rm -f /run/apache2/apache2.pid
 | 
					 | 
				
			||||||
set +u
 | 
					set +u
 | 
				
			||||||
# shellcheck disable=SC1091
 | 
					 | 
				
			||||||
source /etc/apache2/envvars
 | 
					 | 
				
			||||||
# cleaning up env variables
 | 
					# cleaning up env variables
 | 
				
			||||||
unset "${!KCCONF_@}"
 | 
					unset "${!KCCONF_@}"
 | 
				
			||||||
exec /usr/sbin/apache2 -DFOREGROUND
 | 
					echo "Starting php-fpm"
 | 
				
			||||||
 | 
					php-fpm7.3 -F &
 | 
				
			||||||
 | 
					exec /usr/libexec/kopano/kwebd caddy -conf /etc/kweb.cfg
 | 
				
			||||||
 | 
				
			|||||||
@ -34,19 +34,17 @@ RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \
 | 
				
			|||||||
    # install
 | 
					    # install
 | 
				
			||||||
    set -x && \
 | 
					    set -x && \
 | 
				
			||||||
    apt-get update && apt-get install -y --no-install-recommends \
 | 
					    apt-get update && apt-get install -y --no-install-recommends \
 | 
				
			||||||
 | 
					        ca-certificates \
 | 
				
			||||||
 | 
					        crudini \
 | 
				
			||||||
        kopano-kwebd \
 | 
					        kopano-kwebd \
 | 
				
			||||||
        php-fpm \
 | 
					        php-fpm \
 | 
				
			||||||
        crudini \
 | 
					        php7-mapi \
 | 
				
			||||||
        ca-certificates \
 | 
					 | 
				
			||||||
        ${ADDITIONAL_KOPANO_PACKAGES} \
 | 
					        ${ADDITIONAL_KOPANO_PACKAGES} \
 | 
				
			||||||
    && rm -rf /var/cache/apt /var/lib/apt/lists
 | 
					    && rm -rf /var/cache/apt /var/lib/apt/lists
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# configure php-fpm
 | 
					# configure php-fpm
 | 
				
			||||||
RUN \
 | 
					RUN \
 | 
				
			||||||
    mkdir -p /run/php && chown www-data:www-data /run/php && \
 | 
					    mkdir -p /run/php && chown www-data:www-data /run/php && \
 | 
				
			||||||
    crudini --set /etc/php/7.3/fpm/php.ini PHP upload_max_filesize 500M && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/fpm/php.ini PHP post_max_size 500M && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/fpm/php.ini PHP max_input_vars 1800 && \
 | 
					 | 
				
			||||||
    crudini --set /etc/php/7.3/fpm/php.ini Session session.save_path /run/sessions
 | 
					    crudini --set /etc/php/7.3/fpm/php.ini Session session.save_path /run/sessions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXPOSE 9080/tcp
 | 
					EXPOSE 9080/tcp
 | 
				
			||||||
 | 
				
			|||||||
@ -1,2 +1,3 @@
 | 
				
			|||||||
 | 
					[global]
 | 
				
			||||||
;output errors on stderr
 | 
					;output errors on stderr
 | 
				
			||||||
error_log = /proc/self/fd/2
 | 
					error_log = /proc/self/fd/2
 | 
				
			||||||
 | 
				
			|||||||
@ -202,7 +202,7 @@
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	folderish /caldav
 | 
						folderish /caldav
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	proxy /kdav/ {%KWEBD_DNS_KDAV%}:80 {
 | 
						proxy /kdav/ {%KWEBD_DNS_KDAV%}:9080 {
 | 
				
			||||||
		transparent
 | 
							transparent
 | 
				
			||||||
		keepalive 0
 | 
							keepalive 0
 | 
				
			||||||
		fail_timeout 10s
 | 
							fail_timeout 10s
 | 
				
			||||||
 | 
				
			|||||||
@ -70,6 +70,7 @@ RUN mkdir -p /tmp/webapp/ && \
 | 
				
			|||||||
        ln -s /tmp/webapp/"$(basename "$i")" "$i"; \
 | 
					        ln -s /tmp/webapp/"$(basename "$i")" "$i"; \
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY kopano-webapp.conf /etc/php/7.3/fpm/pool.d/
 | 
				
			||||||
COPY kweb.cfg /etc/kweb.cfg
 | 
					COPY kweb.cfg /etc/kweb.cfg
 | 
				
			||||||
COPY start.sh /kopano/start.sh
 | 
					COPY start.sh /kopano/start.sh
 | 
				
			||||||
COPY goss* /goss/
 | 
					COPY goss* /goss/
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										47
									
								
								webapp/kopano-webapp.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								webapp/kopano-webapp.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					[kopano-webapp]
 | 
				
			||||||
 | 
					; Unix user/group of processes
 | 
				
			||||||
 | 
					; Note: The user is mandatory. If the group is not set, the default user's group
 | 
				
			||||||
 | 
					;       will be used.
 | 
				
			||||||
 | 
					user = www-data
 | 
				
			||||||
 | 
					group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
				
			||||||
 | 
					; permissions must be set in order to allow connections from a web server. Many
 | 
				
			||||||
 | 
					; BSD-derived systems allow connections regardless of permissions.
 | 
				
			||||||
 | 
					; Default Values: user and group are set as the running user
 | 
				
			||||||
 | 
					;                 mode is set to 0660
 | 
				
			||||||
 | 
					listen.owner = www-data
 | 
				
			||||||
 | 
					listen.group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listen = /run/php/php-fpm-kopano-webapp.sock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Pool configuration intended for up to 500 users.
 | 
				
			||||||
 | 
					pm = dynamic
 | 
				
			||||||
 | 
					pm.max_children = 100
 | 
				
			||||||
 | 
					pm.start_servers = 10
 | 
				
			||||||
 | 
					pm.min_spare_servers = 10
 | 
				
			||||||
 | 
					pm.max_spare_servers = 50
 | 
				
			||||||
 | 
					pm.process_idle_timeout = 60s
 | 
				
			||||||
 | 
					pm.max_requests = 500
 | 
				
			||||||
 | 
					pm.status_path = /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ping.path = /ping
 | 
				
			||||||
 | 
					ping.response = pong
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					security.limit_extensions = .php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_flag[display_errors] = off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_value[max_execution_time] = 60
 | 
				
			||||||
 | 
					php_admin_value[post_max_size] = 20M
 | 
				
			||||||
 | 
					php_admin_value[upload_max_filesize] = 20M
 | 
				
			||||||
 | 
					php_admin_value[memory_limit] = 32M
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_flag[log_errors] = on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Redirect worker stdout and stderr into main error log. If not set, stdout and
 | 
				
			||||||
 | 
					; stderr will be redirected to /dev/null according to FastCGI specs.
 | 
				
			||||||
 | 
					; Note: on highloaded environement, this can cause some delay in the page
 | 
				
			||||||
 | 
					; process time (several ms).
 | 
				
			||||||
 | 
					; Default Value: no
 | 
				
			||||||
 | 
					catch_workers_output = no
 | 
				
			||||||
@ -6,9 +6,26 @@
 | 
				
			|||||||
	status 200 /status
 | 
						status 200 /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	alias /webapp/ /usr/share/kopano-webapp/
 | 
						alias /webapp/ /usr/share/kopano-webapp/
 | 
				
			||||||
	fastcgi2 /webapp/ /run/php/php7.3-fpm.sock php {
 | 
						fastcgi2 /webapp/ /run/php/php-fpm-kopano-webapp.sock php {
 | 
				
			||||||
		without /webapp/
 | 
							without /webapp/
 | 
				
			||||||
		root /usr/share/kopano-webapp/
 | 
							root /usr/share/kopano-webapp/
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						status 403 {
 | 
				
			||||||
 | 
							/webapp/config.php
 | 
				
			||||||
 | 
							/webapp/debug.php
 | 
				
			||||||
 | 
							/webapp/defaults.php
 | 
				
			||||||
 | 
							/webapp/init.php
 | 
				
			||||||
 | 
							/webapp/server
 | 
				
			||||||
 | 
							/webapp/version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/webapp/plugins/forbidden
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rewrite /webapp/plugins/ {
 | 
				
			||||||
 | 
							regexp config.php
 | 
				
			||||||
 | 
							to /webapp/plugins/forbidden
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	folderish /webapp
 | 
						folderish /webapp
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -47,7 +47,6 @@ RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \
 | 
				
			|||||||
    # TODO remove php-mbstring once https://jira.z-hub.io/browse/ZP-1541 is resolved
 | 
					    # TODO remove php-mbstring once https://jira.z-hub.io/browse/ZP-1541 is resolved
 | 
				
			||||||
    # TODO remove php-xml once https://jira.z-hub.io/projects/ZP/issues/ZP-1558 is resolved
 | 
					    # TODO remove php-xml once https://jira.z-hub.io/projects/ZP/issues/ZP-1558 is resolved
 | 
				
			||||||
    apt-get update && apt-get install -y --no-install-recommends \
 | 
					    apt-get update && apt-get install -y --no-install-recommends \
 | 
				
			||||||
        crudini \
 | 
					 | 
				
			||||||
        php-mbstring \
 | 
					        php-mbstring \
 | 
				
			||||||
        php-xml \
 | 
					        php-xml \
 | 
				
			||||||
        z-push-autodiscover \
 | 
					        z-push-autodiscover \
 | 
				
			||||||
@ -76,6 +75,7 @@ RUN \
 | 
				
			|||||||
    mkdir -p /var/lib/z-push /var/log/z-push && \
 | 
					    mkdir -p /var/lib/z-push /var/log/z-push && \
 | 
				
			||||||
    chown www-data:www-data /var/lib/z-push /var/log/z-push
 | 
					    chown www-data:www-data /var/lib/z-push /var/log/z-push
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY kopano-z-push.conf /etc/php/7.3/fpm/pool.d/
 | 
				
			||||||
COPY kweb.cfg /etc/kweb.cfg
 | 
					COPY kweb.cfg /etc/kweb.cfg
 | 
				
			||||||
COPY start.sh /kopano/start.sh
 | 
					COPY start.sh /kopano/start.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										47
									
								
								zpush/kopano-z-push.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								zpush/kopano-z-push.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					[kopano-z-push]
 | 
				
			||||||
 | 
					; Unix user/group of processes
 | 
				
			||||||
 | 
					; Note: The user is mandatory. If the group is not set, the default user's group
 | 
				
			||||||
 | 
					;       will be used.
 | 
				
			||||||
 | 
					user = www-data
 | 
				
			||||||
 | 
					group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
				
			||||||
 | 
					; permissions must be set in order to allow connections from a web server. Many
 | 
				
			||||||
 | 
					; BSD-derived systems allow connections regardless of permissions.
 | 
				
			||||||
 | 
					; Default Values: user and group are set as the running user
 | 
				
			||||||
 | 
					;                 mode is set to 0660
 | 
				
			||||||
 | 
					listen.owner = www-data
 | 
				
			||||||
 | 
					listen.group = www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listen = /run/php/php-fpm-kopano-z-push.sock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Pool configuration intended for up to 500 users.
 | 
				
			||||||
 | 
					pm = dynamic
 | 
				
			||||||
 | 
					pm.max_children = 200
 | 
				
			||||||
 | 
					pm.start_servers = 10
 | 
				
			||||||
 | 
					pm.min_spare_servers = 10
 | 
				
			||||||
 | 
					pm.max_spare_servers = 200
 | 
				
			||||||
 | 
					pm.process_idle_timeout = 3540s
 | 
				
			||||||
 | 
					pm.max_requests = 200
 | 
				
			||||||
 | 
					pm.status_path = /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ping.path = /ping
 | 
				
			||||||
 | 
					ping.response = pong
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					security.limit_extensions = .php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_flag[display_errors] = off
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_value[max_execution_time] = 3540
 | 
				
			||||||
 | 
					php_admin_value[post_max_size] = 20M
 | 
				
			||||||
 | 
					php_admin_value[upload_max_filesize] = 20M
 | 
				
			||||||
 | 
					php_admin_value[memory_limit] = 25M
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					php_admin_flag[log_errors] = on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Redirect worker stdout and stderr into main error log. If not set, stdout and
 | 
				
			||||||
 | 
					; stderr will be redirected to /dev/null according to FastCGI specs.
 | 
				
			||||||
 | 
					; Note: on highloaded environement, this can cause some delay in the page
 | 
				
			||||||
 | 
					; process time (several ms).
 | 
				
			||||||
 | 
					; Default Value: no
 | 
				
			||||||
 | 
					catch_workers_output = no
 | 
				
			||||||
@ -5,23 +5,40 @@
 | 
				
			|||||||
	# healthcheck
 | 
						# healthcheck
 | 
				
			||||||
	status 200 /status
 | 
						status 200 /status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rewrite /Microsoft-Server-ActiveSync /Microsoft-Server-ActiveSync/index.php
 | 
						rewrite /Microsoft-Server-ActiveSync {
 | 
				
			||||||
 | 
							regexp ^$
 | 
				
			||||||
 | 
							to /z-push/index.php
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fastcgi2 /Microsoft-Server-ActiveSync /run/php/php7.3-fpm.sock php {
 | 
						fastcgi2 /z-push/ /run/php/php-fpm-kopano-z-push.sock php {
 | 
				
			||||||
		without /Microsoft-Server-ActiveSync/
 | 
							without /z-push/
 | 
				
			||||||
		root /usr/share/z-push/
 | 
							root /usr/share/z-push
 | 
				
			||||||
		read_timeout 3605s
 | 
							read_timeout 3605s
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Case insensitive path rewrite.
 | 
						status 403 {
 | 
				
			||||||
	rewrite / {
 | 
							/z-push/autodiscover
 | 
				
			||||||
		regexp (?i)^/Autodiscover/Autodiscover.xml
 | 
							/z-push/backend
 | 
				
			||||||
		to /Autodiscover/autodiscover.php
 | 
							/z-push/config.php
 | 
				
			||||||
 | 
							/z-push/include
 | 
				
			||||||
 | 
							/z-push/lib
 | 
				
			||||||
 | 
							/z-push/vendor
 | 
				
			||||||
 | 
							/z-push/version.php
 | 
				
			||||||
 | 
							/z-push/z-push-admin.php
 | 
				
			||||||
 | 
							/z-push/z-push-top.php
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fastcgi2 /Autodiscover/ /run/php/php7.3-fpm.sock php {
 | 
						rewrite / {
 | 
				
			||||||
		without /Autodiscover/
 | 
							regexp (?i)^/Autodiscover/Autodiscover.xml
 | 
				
			||||||
 | 
							to /z-push-autodiscover/autodiscover.php
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fastcgi2 /z-push-autodiscover/ /run/php/php-fpm-kopano-z-push.sock php {
 | 
				
			||||||
 | 
							without /z-push-autodiscover/
 | 
				
			||||||
		root /usr/share/z-push/autodiscover
 | 
							root /usr/share/z-push/autodiscover
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						status 403 {
 | 
				
			||||||
 | 
							/z-push-autodiscover/config.php
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user