mirror of
https://github.com/zokradonh/kopano-docker
synced 2025-07-23 01:45:37 +00:00
Enforce .editorconfig by running eclint (#213)
* tune .editorconfig for the existing files * fix reported linting issues * travis: switch language to node_js to be able to run npm * travis: build on ubuntu bionic
This commit is contained in:
parent
d901eb05b9
commit
fb37723cc3
@ -5,6 +5,25 @@ root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespaces = true
|
||||
indent_style = tab
|
||||
|
||||
[{*.{yml,yaml},.yamllint}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{md,txt}]
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[Dockerfile*]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.py]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.ldif]
|
||||
indent_style = space
|
||||
|
@ -1,5 +1,10 @@
|
||||
sudo: required
|
||||
language: bash
|
||||
dist: bionic
|
||||
language: node_js
|
||||
|
||||
node_js:
|
||||
- stable
|
||||
|
||||
env:
|
||||
global:
|
||||
- HADOLINT_VERSION=1.16.3
|
||||
@ -20,6 +25,7 @@ before_install:
|
||||
- sudo chmod +rx /usr/local/bin/docker-compose
|
||||
- sudo apt update && sudo apt install -y expect
|
||||
- sudo pip install --upgrade pip && sudo pip install yamllint
|
||||
- npm install -g eclint
|
||||
install:
|
||||
- make lint
|
||||
- "./test.exp"
|
||||
|
@ -18,17 +18,17 @@ docker_login=${docker_login:-""}
|
||||
docker_pwd=${docker_pwd:-""}
|
||||
|
||||
if [ -z "$docker_login" ]; then
|
||||
docker_login="$(<~/.docker-account-user)"
|
||||
docker_login="$(<~/.docker-account-user)"
|
||||
fi
|
||||
|
||||
if [ -z "$docker_pwd" ]; then
|
||||
docker_pwd="$(<~/.docker-account-pwd)"
|
||||
docker_pwd="$(<~/.docker-account-pwd)"
|
||||
fi
|
||||
|
||||
image=${1:-""}
|
||||
if [ -z "$image" ]; then
|
||||
echo "ERROR: You must specify an image to modify."
|
||||
exit 1
|
||||
echo "ERROR: You must specify an image to modify."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# below code is based on https://github.com/moikot/golang-dep/blob/aab3ea8462a19407544f1ce9daa11c3f0924394c/.travis/push.sh
|
||||
@ -43,41 +43,41 @@ fi
|
||||
# push_readme "foo/bar" "token"
|
||||
#
|
||||
push_readme() {
|
||||
declare -r image="${1}"
|
||||
declare -r token="${2}"
|
||||
declare -r readme="${3}"
|
||||
declare -r image="${1}"
|
||||
declare -r token="${2}"
|
||||
declare -r readme="${3}"
|
||||
|
||||
local code
|
||||
code=$(jq -n --arg msg "$(<"${readme}")" \
|
||||
'{"registry":"registry-1.docker.io","full_description": $msg }' | \
|
||||
curl -s -o /dev/null -L -w "%{http_code}" \
|
||||
https://cloud.docker.com/v2/repositories/"${image}"/ \
|
||||
-d @- -X PATCH \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: JWT ${token}")
|
||||
local code
|
||||
code=$(jq -n --arg msg "$(<"${readme}")" \
|
||||
'{"registry":"registry-1.docker.io","full_description": $msg }' | \
|
||||
curl -s -o /dev/null -L -w "%{http_code}" \
|
||||
https://cloud.docker.com/v2/repositories/"${image}"/ \
|
||||
-d @- -X PATCH \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: JWT ${token}")
|
||||
|
||||
if [[ "${code}" = "200" ]]; then
|
||||
printf "Successfully pushed README to Docker Hub"
|
||||
else
|
||||
printf "Unable to push README to Docker Hub, response code: %s\n" "${code}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${code}" = "200" ]]; then
|
||||
printf "Successfully pushed README to Docker Hub"
|
||||
else
|
||||
printf "Unable to push README to Docker Hub, response code: %s\n" "${code}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local code
|
||||
code=$(jq -n --arg msg "$(head -n 1 "${readme}" | cut -d' ' -f2-)" \
|
||||
'{"registry":"registry-1.docker.io","description": $msg }' | \
|
||||
curl -s -o /dev/null -L -w "%{http_code}" \
|
||||
https://cloud.docker.com/v2/repositories/"${image}"/ \
|
||||
-d @- -X PATCH \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: JWT ${token}")
|
||||
local code
|
||||
code=$(jq -n --arg msg "$(head -n 1 "${readme}" | cut -d' ' -f2-)" \
|
||||
'{"registry":"registry-1.docker.io","description": $msg }' | \
|
||||
curl -s -o /dev/null -L -w "%{http_code}" \
|
||||
https://cloud.docker.com/v2/repositories/"${image}"/ \
|
||||
-d @- -X PATCH \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: JWT ${token}")
|
||||
|
||||
if [[ "${code}" = "200" ]]; then
|
||||
printf "Successfully pushed description to Docker Hub"
|
||||
else
|
||||
printf "Unable to push description to Docker Hub, response code: %s\n" "${code}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${code}" = "200" ]]; then
|
||||
printf "Successfully pushed description to Docker Hub"
|
||||
else
|
||||
printf "Unable to push description to Docker Hub, response code: %s\n" "${code}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Login into Docker repository
|
||||
@ -91,5 +91,5 @@ https://hub.docker.com/v2/users/login/ | jq -r .token)
|
||||
push_readme "${docker_repo}"/kopano_"${image}" "${token}" "${image}"/README.md
|
||||
|
||||
if [ -e "$tmpfile" ]; then
|
||||
rm "$tmpfile"
|
||||
rm "$tmpfile"
|
||||
fi
|
||||
|
1
Makefile
1
Makefile
@ -325,6 +325,7 @@ publish-zpush: tag-zpush
|
||||
component=zpush make publish-container
|
||||
|
||||
lint:
|
||||
git ls-files | xargs --max-lines=1 eclint check
|
||||
grep -rIl '^#![[:blank:]]*/bin/\(bash\|sh\|zsh\)' \
|
||||
--exclude-dir=.git --exclude=*.sw? \
|
||||
| xargs shellcheck -x
|
||||
|
@ -6,49 +6,49 @@ set -eu
|
||||
function urldecode { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||
|
||||
function version_from_filename {
|
||||
echo "$1" | sed -r 's#[a-z]+-([0-9_.+]+)-.*#\1#'
|
||||
echo "$1" | sed -r 's#[a-z]+-([0-9_.+]+)-.*#\1#'
|
||||
}
|
||||
|
||||
function h5ai_query {
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_9.0}
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_9.0}
|
||||
|
||||
filename=$(curl -s -S -L -d "action=get&items%5Bhref%5D=%2Fcommunity%2F$component%3A%2F&items%5Bwhat%5D=1" -H \
|
||||
"Accept: application/json" https://download.kopano.io/community/ | jq -r '.items[].href' | \
|
||||
grep "$distribution-all\|$distribution-amd64" | sed "s#/community/$component:/##")
|
||||
filename=$(curl -s -S -L -d "action=get&items%5Bhref%5D=%2Fcommunity%2F$component%3A%2F&items%5Bwhat%5D=1" -H \
|
||||
"Accept: application/json" https://download.kopano.io/community/ | jq -r '.items[].href' | \
|
||||
grep "$distribution-all\|$distribution-amd64" | sed "s#/community/$component:/##")
|
||||
|
||||
if [ -z "${filename// }" ]; then
|
||||
echo "unknown component"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "${filename// }" ]; then
|
||||
echo "unknown component"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
filename=$(urldecode "$filename")
|
||||
echo "$filename"
|
||||
filename=$(urldecode "$filename")
|
||||
echo "$filename"
|
||||
}
|
||||
|
||||
function dl_and_package_community {
|
||||
# take component as first argument and fallback to core if none given
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_9.0}
|
||||
# take component as first argument and fallback to core if none given
|
||||
component=${1:-core}
|
||||
distribution=${2:-Debian_9.0}
|
||||
|
||||
# query community server by h5ai API
|
||||
filename=$(h5ai_query "$component" "$distribution")
|
||||
# query community server by h5ai API
|
||||
filename=$(h5ai_query "$component" "$distribution")
|
||||
|
||||
# download & extract packages
|
||||
curl -s -S -L -o "$filename" https://download.kopano.io/community/"$component":/"${filename}"
|
||||
tar xf "$filename"
|
||||
# download & extract packages
|
||||
curl -s -S -L -o "$filename" https://download.kopano.io/community/"$component":/"${filename}"
|
||||
tar xf "$filename"
|
||||
|
||||
# save buildversion
|
||||
currentVersion=$(version_from_filename "$filename")
|
||||
echo "$component-$currentVersion" >> /kopano/buildversion
|
||||
# save buildversion
|
||||
currentVersion=$(version_from_filename "$filename")
|
||||
echo "$component-$currentVersion" >> /kopano/buildversion
|
||||
|
||||
# save disk space
|
||||
rm "$filename"
|
||||
# save disk space
|
||||
rm "$filename"
|
||||
|
||||
mv "${filename%.tar.gz}" "$component"
|
||||
mv "${filename%.tar.gz}" "$component"
|
||||
|
||||
# prepare directory to be apt source
|
||||
cd "$component"
|
||||
apt-ftparchive packages . | gzip -9c > Packages.gz
|
||||
cd ".."
|
||||
# prepare directory to be apt source
|
||||
cd "$component"
|
||||
apt-ftparchive packages . | gzip -9c > Packages.gz
|
||||
cd ".."
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ RUN \
|
||||
set -x && \
|
||||
apt-get install --no-install-recommends -y \
|
||||
kopano-server-packages \
|
||||
kopano-grapi kopano-kapid \
|
||||
kopano-grapi kopano-kapid \
|
||||
${ADDITIONAL_KOPANO_PACKAGES} \
|
||||
&& \
|
||||
set +x && \
|
||||
@ -68,4 +68,4 @@ ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||
CMD [ "/kopano/start-service.sh" ]
|
||||
|
||||
HEALTHCHECK --interval=5m --timeout=60s \
|
||||
CMD /kopano/healthcheck.sh
|
||||
CMD /kopano/healthcheck.sh
|
||||
|
@ -16,7 +16,7 @@ KCCONF_SERVER_MYSQL_HOST=127.0.0.1
|
||||
| | | |
|
||||
General prefix |
|
||||
| | |
|
||||
Name of the relevant configuration file (server.cfg in this case)
|
||||
Name of the relevant configuration file (server.cfg in this case)
|
||||
| |
|
||||
Name of the configuration option in the configuration file
|
||||
|
|
||||
|
@ -12,7 +12,7 @@ kcconf.configkopano({
|
||||
'server_listen': "*:236",
|
||||
'server_listen_tls': "*:237",
|
||||
'sync_gab_realtime': "no",
|
||||
'softdelete_lifetime': "0",
|
||||
'softdelete_lifetime': "0",
|
||||
'kcoidc_initialize_timeout': "360"
|
||||
}
|
||||
})
|
||||
|
@ -1,29 +1,29 @@
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot /usr/share/kdav/
|
||||
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
|
||||
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]
|
||||
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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# set higher limits by default
|
||||
php_value memory_limit 256M
|
||||
php_value max_execution_time 259200
|
||||
|
||||
</VirtualHost>
|
||||
|
@ -23,7 +23,7 @@ if [ "$KCCONF_SERVERHOSTNAME" == "127.0.0.1" ]; then
|
||||
else
|
||||
echo "kDAV is using an ip connection"
|
||||
sed -e "s#define([\"']MAPI_SERVER[\"'],\s*[\"']default:[\"'])#define('MAPI_SERVER', 'https://${KCCONF_SERVERHOSTNAME}:${KCCONF_SERVERPORT}/kopano')#" \
|
||||
-i /usr/share/kdav/config.php
|
||||
-i /usr/share/kdav/config.php
|
||||
fi
|
||||
|
||||
# change root uri to /kdav
|
||||
|
@ -16,11 +16,11 @@ LABEL maintainer=az@zok.xyz \
|
||||
org.label-schema.schema-version="1.0"
|
||||
|
||||
RUN apk add --no-cache \
|
||||
jq \
|
||||
moreutils \
|
||||
openssl \
|
||||
py-pip \
|
||||
&& pip install yq==2.7.2
|
||||
jq \
|
||||
moreutils \
|
||||
openssl \
|
||||
py-pip \
|
||||
&& pip install yq==2.7.2
|
||||
|
||||
ENV DOCKERIZE_VERSION v0.6.1
|
||||
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||
|
@ -72,7 +72,7 @@ export registration_conf=/kopano/ssl/konnectd-identifier-registration.yaml
|
||||
# so the konnect container (since the startup is running as nobody) can write to it.
|
||||
exec dockerize \
|
||||
-wait http://kopano_konnect:8777/.well-known/openid-configuration \
|
||||
-timeout 360s \
|
||||
-timeout 360s \
|
||||
/usr/local/bin/docker-entrypoint.sh serve \
|
||||
--registration-conf /kopano/ssl/konnectd-identifier-registration.yaml \
|
||||
"$@"
|
||||
|
@ -320,7 +320,7 @@ objectclass ( 1.3.6.1.4.1.47732.1.5.0.0
|
||||
DESC 'KOPANO: a Kopano Addresslist'
|
||||
SUP top STRUCTURAL
|
||||
MUST ( cn )
|
||||
MAY (
|
||||
MAY (
|
||||
kopanoAccount $ kopanoHidden $ kopanoFilter $ kopanoBase
|
||||
)
|
||||
)
|
||||
@ -330,7 +330,7 @@ objectclass ( 1.3.6.1.4.1.47732.1.7.0.0
|
||||
DESC 'KOPANO: a Kopano dynamic group'
|
||||
SUP top STRUCTURAL
|
||||
MUST ( cn )
|
||||
MAY (
|
||||
MAY (
|
||||
kopanoAccount $ kopanoHidden $ mail $ kopanoAliases $ kopanoFilter $ kopanoBase
|
||||
)
|
||||
)
|
||||
|
@ -45,9 +45,9 @@ RUN \
|
||||
set -x && \
|
||||
# TODO mime-support could be remove once its an official dependency of kopano-kwebd
|
||||
apt-get install --no-install-recommends -y \
|
||||
mime-support \
|
||||
mime-support \
|
||||
kopano-kwebd \
|
||||
kopano-meet kopano-meet-webapp \
|
||||
kopano-meet kopano-meet-webapp \
|
||||
${ADDITIONAL_KOPANO_PACKAGES} \
|
||||
&& \
|
||||
cp /usr/share/doc/kopano-meet-webapp/config.json.in /usr/share/kopano-kweb/www/config/kopano/meet.json && \
|
||||
|
@ -21,5 +21,4 @@ General prefix |
|
||||
Name of the configuration option in the configuration file
|
||||
|
|
||||
Value of the configuration option
|
||||
|
||||
```
|
@ -30,8 +30,8 @@ General prefix | | |
|
||||
Special value to signal the change should go into config-$identifier.php (located in /etc/kopano/webapp)
|
||||
| | |
|
||||
Identifier for the configuration file (config-$identifier.php)
|
||||
| |
|
||||
Name of the configuration option in the configuration file
|
||||
| |
|
||||
Name of the configuration option in the configuration file
|
||||
|
|
||||
Value of the configuration option
|
||||
```
|
344
web/kweb.cfg
344
web/kweb.cfg
@ -1,200 +1,200 @@
|
||||
{%FQDN%}:80, :80 {
|
||||
redir / https://{host}{uri}
|
||||
redir / https://{host}{uri}
|
||||
}
|
||||
|
||||
# kweb >=0.7.0 needs the explicit hostname to be set
|
||||
{%FQDN%}, *:2015, *:443 {
|
||||
log stdout
|
||||
errors stdout
|
||||
log stdout
|
||||
errors stdout
|
||||
|
||||
gzip
|
||||
header / Server kweb
|
||||
gzip
|
||||
header / Server kweb
|
||||
|
||||
tls {%EMAIL%}
|
||||
tls {%EMAIL%}
|
||||
|
||||
limits {
|
||||
header 1MB
|
||||
body 50MB
|
||||
}
|
||||
limits {
|
||||
header 1MB
|
||||
body 50MB
|
||||
}
|
||||
|
||||
redir 302 {
|
||||
if {path} is /
|
||||
/ /webapp/
|
||||
}
|
||||
redir 302 {
|
||||
if {path} is /
|
||||
/ /webapp/
|
||||
}
|
||||
|
||||
# Config
|
||||
proxy /api/config/v1/kopano/meet/ http://kopano_meet:9080/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
# Config
|
||||
proxy /api/config/v1/kopano/meet/ http://kopano_meet:9080/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
|
||||
# Konnect
|
||||
proxy /upstreams/konnect/ {
|
||||
without /upstreams/konnect/
|
||||
upstream kopano_konnect:8777
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
header_downstream Feature-Policy "midi 'none'"
|
||||
header_downstream X-Frame-Options "sameorigin"
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/konnect/v1/
|
||||
/signin/v1/identifier/_/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /.well-known/openid-configuration {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
rewrite /konnect/v1/ {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
rewrite /signin/v1/ {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
redir /signin /signin/v1/identifier
|
||||
# Konnect
|
||||
proxy /upstreams/konnect/ {
|
||||
without /upstreams/konnect/
|
||||
upstream kopano_konnect:8777
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
header_downstream Feature-Policy "midi 'none'"
|
||||
header_downstream X-Frame-Options "sameorigin"
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/konnect/v1/
|
||||
/signin/v1/identifier/_/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /.well-known/openid-configuration {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
rewrite /konnect/v1/ {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
rewrite /signin/v1/ {
|
||||
to /upstreams/konnect/{path}
|
||||
}
|
||||
redir /signin /signin/v1/identifier
|
||||
|
||||
# Kapi
|
||||
proxy /upstreams/kapi/ {
|
||||
without /upstreams/kapi/
|
||||
upstream kopano_kapi:8039
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
websocket
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/kapi/api/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /api/gc/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
rewrite /api/pubs/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
rewrite /api/kvs/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
# Kapi
|
||||
proxy /upstreams/kapi/ {
|
||||
without /upstreams/kapi/
|
||||
upstream kopano_kapi:8039
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
websocket
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/kapi/api/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /api/gc/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
rewrite /api/pubs/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
rewrite /api/kvs/v1/ {
|
||||
to /upstreams/kapi/{path}
|
||||
}
|
||||
|
||||
# playground for oidc
|
||||
proxy /oidc-playground/ http://kopano_playground:8888/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /oidc-playground
|
||||
# playground for oidc
|
||||
proxy /oidc-playground/ http://kopano_playground:8888/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /oidc-playground
|
||||
|
||||
# playground for Kapi
|
||||
proxy /kapi-playground/ http://kopano_playground:8888/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /kapi-playground
|
||||
# playground for Kapi
|
||||
proxy /kapi-playground/ http://kopano_playground:8888/ {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /kapi-playground
|
||||
|
||||
|
||||
# Kwmserver
|
||||
proxy /upstreams/kwmserver/ {
|
||||
without /upstreams/kwmserver/
|
||||
upstream kopano_kwmserver:8778
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
websocket
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/kwmserver/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /api/kwm/v2/ {
|
||||
to /upstreams/kwmserver/{path}
|
||||
}
|
||||
# Kwmserver
|
||||
proxy /upstreams/kwmserver/ {
|
||||
without /upstreams/kwmserver/
|
||||
upstream kopano_kwmserver:8778
|
||||
policy least_conn
|
||||
health_check /health-check
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
keepalive 100
|
||||
transparent
|
||||
websocket
|
||||
}
|
||||
ratelimit * 100 200 minute {
|
||||
/upstreams/kwmserver/
|
||||
whitelist 127.0.0.1/8
|
||||
}
|
||||
rewrite /api/kwm/v2/ {
|
||||
to /upstreams/kwmserver/{path}
|
||||
}
|
||||
|
||||
proxy /meet/ kopano_meet:9080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /meet
|
||||
proxy /meet/ kopano_meet:9080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /meet
|
||||
|
||||
proxy /webapp/ kopano_webapp:9080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /webapp
|
||||
proxy /webapp/ kopano_webapp:9080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
keepalive 100
|
||||
}
|
||||
folderish /webapp
|
||||
|
||||
proxy /Microsoft-Server-ActiveSync kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
timeout 3540s
|
||||
}
|
||||
proxy /Microsoft-Server-ActiveSync kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
timeout 3540s
|
||||
}
|
||||
|
||||
proxy /AutoDiscover/AutoDiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
proxy /AutoDiscover/AutoDiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
|
||||
proxy /Autodiscover/Autodiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
proxy /Autodiscover/Autodiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
|
||||
proxy /autodiscover/autodiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
proxy /autodiscover/autodiscover.xml kopano_zpush:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
|
||||
proxy /caldav/ kopano_ical:8080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
}
|
||||
folderish /caldav
|
||||
proxy /caldav/ kopano_ical:8080 {
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
transparent
|
||||
}
|
||||
folderish /caldav
|
||||
|
||||
proxy /kdav/ kopano_kdav:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
proxy /kdav/ kopano_kdav:80 {
|
||||
transparent
|
||||
keepalive 0
|
||||
fail_timeout 10s
|
||||
try_duration 30s
|
||||
}
|
||||
|
||||
redir 301 {
|
||||
/.well-known/carddav /kdav/
|
||||
/.well-known/caldav /kdav/
|
||||
}
|
||||
redir 301 {
|
||||
/.well-known/carddav /kdav/
|
||||
/.well-known/caldav /kdav/
|
||||
}
|
||||
|
||||
proxy /ldap-admin/ ldap-admin:80 {
|
||||
without /ldap-admin
|
||||
transparent
|
||||
}
|
||||
redir /ldap-admin /ldap-admin/
|
||||
proxy /ldap-admin/ ldap-admin:80 {
|
||||
without /ldap-admin
|
||||
transparent
|
||||
}
|
||||
redir /ldap-admin /ldap-admin/
|
||||
|
||||
proxy /password-reset/ password-self-service:80 {
|
||||
without /password-reset
|
||||
transparent
|
||||
}
|
||||
redir /password-reset /password-reset/
|
||||
proxy /password-reset/ password-self-service:80 {
|
||||
without /password-reset
|
||||
transparent
|
||||
}
|
||||
redir /password-reset /password-reset/
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot /var/www/
|
||||
DocumentRoot /var/www/
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
</VirtualHost>
|
||||
|
Loading…
x
Reference in New Issue
Block a user