diff --git a/.ci/setup-tools.sh b/.ci/setup-tools.sh index 669fae1..e8b2493 100755 --- a/.ci/setup-tools.sh +++ b/.ci/setup-tools.sh @@ -9,6 +9,15 @@ TRIVY_VERSION=0.1.1 GOSS_VERSION=0.3.7 COMMANDER_VERSION=1.2.1 +progname=$(basename "$0") +tempdir=$(mktemp -d "/tmp/$progname.XXXXXX") +function cleanup() { + rm -rf "$tempdir" +} +trap cleanup INT EXIT + +cd "$tempdir" + if ! command -v hadolint > /dev/null; then sudo curl -L "https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VERSION/hadolint-$(uname -s)-$(uname -m)" -o /usr/local/bin/hadolint sudo chmod +rx /usr/local/bin/hadolint @@ -39,19 +48,29 @@ if ! command -v commander > /dev/null; then sudo chmod +rx /usr/local/bin/commander fi -if ! command -v commander > /dev/null; then +if ! command -v dccommander > /dev/null; then sudo curl -L https://raw.githubusercontent.com/fbartels/dccommander/master/dccommander -o /usr/local/bin/dccommander - sudo chmod +rx /usr/local/bin/commander + sudo chmod +rx /usr/local/bin/dccommander fi if ! command -v expect > /dev/null; then sudo apt update && sudo apt install -y expect fi +if ! command -v pip > /dev/null; then + sudo apt install -y python-pip +fi + if ! command -v yamllint > /dev/null; then sudo pip install --upgrade pip && sudo pip install yamllint fi +if ! command -v npm > /dev/null; then + curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - + sudo apt install -y nodejs + npm config set prefix ~ +fi + if ! command -v eclint > /dev/null; then npm install -g eclint fi diff --git a/.travis.yml b/.travis.yml index 30ad573..1af7ee3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,6 +24,8 @@ install: - travis_retry make build-all script: - make test-ci + - docker-compose down -v + - make test-startup-meet-demo deploy: - provider: script script: make publish diff --git a/architecture.md b/ARCHITECTURE.md similarity index 90% rename from architecture.md rename to ARCHITECTURE.md index c9f5f52..61f206a 100644 --- a/architecture.md +++ b/ARCHITECTURE.md @@ -5,10 +5,10 @@ Aka "How do the containers connect/relate/interact with each other?" ## web - external entry point for users accessing Kopano - - reverse proxy for containers exposing a web interface + - reverse proxy for containers exposing a web interface - can retrieve ssl certificate from Let's Encrypt - redirects all requests to /webapp by default -- recommended to use as it makes web configuration easy and secure (manual configuration will be tendious and potentially less secure) +- recommended to use as it makes web configuration easy and secure (manual configuration will be tedious and potentially less secure) ## ldap @@ -87,7 +87,7 @@ Aka "How do the containers connect/relate/interact with each other?" ## kopano_konnect -- authentification component (OpenID Connect) +- authentication component (OpenID Connect) - required for apps interacting with the Kopano RestAPI (e.g. Kopano Meet) ## kopano_kwmserver @@ -100,4 +100,4 @@ Aka "How do the containers connect/relate/interact with each other?" ## kopano_scheduler -- helper container to execute scheduled tasks within Kopano \ No newline at end of file +- helper container to execute scheduled tasks within Kopano diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40cd804..cbdf79c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,13 +2,17 @@ When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. +## General architecture of containers + +To get an impression how the containers interact/relate with each other have a look at the [architecture](ARCHITECTURE.md) description. + ## Testing This project includes a few automated tests that can be run to ensure that containers start up and are operational. Required tools for testing can be installed by executing `bash .ci/setup-tools.sh`. -The startup test can be executed by calling `make test-startup`. It spins up all containers and checks if they listen on their expected interfaces afterwards as well as execute some commands that should succeed on a succesful deployment. +The startup test can be executed by calling `make test-startup`. It spins up all containers and checks if they listen on their expected interfaces afterwards as well as execute some commands that should succeed on a successful deployment. -A more detailed test can be executed by calling `make test-goss`. This uses [Goss](https://github.com/aelsabbahy/goss) and its helper [dcgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dcgoss) to validate the container configuration at runtime. These tests have not been implemented for all containers yet, but as an upside the same validation is used as part of the container healtcheck. Contributions are welcome! +A more detailed test can be executed by calling `make test-goss`. This uses [Goss](https://github.com/aelsabbahy/goss) and its helper [dcgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dcgoss) to validate the container configuration at runtime. These tests have not been implemented for all containers yet, but as an upside the same validation is used as part of the container health check. Contributions are welcome! Testing the startup scripts of the containers is still a work in progress. When running `make test-commander` [Commander](https://github.com/SimonBaeumer/commander) will be used to test output of the `version.sh` script and some of the container startup scripts. diff --git a/Makefile b/Makefile index 76066c8..eab4bb9 100644 --- a/Makefile +++ b/Makefile @@ -375,6 +375,20 @@ test-startup: ## Test if all containers start up docker-compose -f $(DOCKERCOMPOSE_FILE) -f tests/test-container.yml stop 2>/dev/null docker ps --filter name=kopano_test* -aq | xargs docker rm -f +.PHONY: test-startup-meet-demo +test-startup-meet-demo: ## Test if the Meet demo setup starts up + docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml build + docker-compose -f examples/meet/docker-compose.yml up -d + docker-compose -f examples/meet/docker-compose.yml ps + docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml run test || \ + (docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml ps; \ + docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml logs -t --tail=20; \ + docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml stop; \ + docker ps --filter name=kopano_test* -aq | xargs docker rm -f; \ + exit 1) + docker-compose -f examples/meet/docker-compose.yml -f examples/meet/tests/test-container.yml stop 2>/dev/null + docker ps --filter name=kopano_test* -aq | xargs docker rm -f + # TODO this needs goss added to travis and dcgoss pulled from my own git repo .PHONY: test-goss test-goss: ## Test configuration of containers with goss diff --git a/README.md b/README.md index d13f4cc..ae48aae 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ This repository contains an easy to replicate recipe to spin up a [Kopano](https - If you are just interested in the demo environment you can accept the default values by pressing `Enter` on each question - now run `docker-compose up` and you will see how the remaining Docker images are pulled and then everything is started - after startup has succeeded you can access the Kopano WebApp by going to `https://kopano.demo/webapp` -- there are already some users created in the demo ldap. These users all have a password that is identical to the username, e.g. the password for `user1` user `user1`. +- there are already some users created in the demo LDAP. These users all have a password that is identical to the username, e.g. the password for `user1` user `user1`. -If you want to get an impression how the containers interact/relate with each other have a look at the [architecture](architecture.md) description. +If you want to get an impression how the containers interact/relate with each other have a look at the [architecture](ARCHITECTURE.md) description. -**Note:** There have been reports about the ldap demo not starting up on MacOS. It is recommended to use a Linux OS if you want to use the bundled LDAP image. +**Note:** There have been reports about the LDAP demo not starting up on MacOS. It is recommended to use a Linux OS if you want to use the bundled LDAP image. The `docker-compose.yml` file by default pulls Docker containers from https://hub.docker.com/r/zokradonh/kopano_core/ and https://hub.docker.com/r/zokradonh/kopano_webapp/. These images are based on the [Kopano nightly builds](https://download.kopano.io/community/) and will contain the latest version available from the time the image was built. @@ -40,13 +40,13 @@ The used `docker-compose.yml` is part of the git versioning. Which mean all chan ## Is this project also interesting for me when I already have a (non-Docker) Kopano environment? -Yes, indeed. You could for example use this to easily try out newer Kopano WebApp or Z-Push releases, without touching your production environment. Through the `zokradonh/kopano_core` image you could even try out newer version of e.g. `kopano-gateway` without jumping into a dependecy mess in your production environment. +Yes, indeed. You could for example use this to easily try out newer Kopano WebApp or Z-Push releases, without touching your production environment. Through the `zokradonh/kopano_core` image you could even try out newer version of e.g. `kopano-gateway` without jumping into a dependency mess in your production environment. -And last but not least this project also offers a `zokradonh/kopano_utils` image to easily run tools such as `kopano-backup`, `kopano-migration-pst`, `kopano-migration-imap` and all the other utilities that are bundles with Kopano. See [below](#some-more-commands-for-those-unfamilar-with-docker-compose) to see how to run `zokradonh/kopano_utils`. +And last but not least this project also offers a `zokradonh/kopano_utils` image to easily run tools such as `kopano-backup`, `kopano-migration-pst`, `kopano-migration-imap` and all the other utilities that are bundles with Kopano. See [below](#some-more-commands-for-those-unfamiliar-with-docker-compose) to see how to run `zokradonh/kopano_utils`. ### Additional configuration / Need to adjust any values after the initial run of `setup.sh`? -If you want to modify some of the values from the `setup.sh` run you can simply edit `.env` in your favourite editor. Repeated runs of `setup.sh` will neither modify `docker-compose.yml` nor `.env`. In the ´.env´ file you will also find some given defaults like ldap query filters and the local ports for the reverse proxy. +If you want to modify some of the values from the `setup.sh` run you can simply edit `.env` in your favorite editor. Repeated runs of `setup.sh` will neither modify `docker-compose.yml` nor `.env`. In the ´.env´ file you will also find some given defaults like LDAP query filters and the local ports for the reverse proxy. Additionally a dedicated env file is created for each container (at least where that would make sense). The env file has the container name as part of the file name. For example for the `kopano_server` container the filename is named `kopano_server.env`. These additional env files are auto created when running `setup.sh`. @@ -76,7 +76,7 @@ To be able to easily go back to a previous version you can also "tag" you Docker ### Recurring tasks and maintenance tasks within Kopano -There are certain tasks within Kopano that either need to be executed once (like creating the public store when starting a new environment for the first time) or on a regular base (like syncing the internal user list with and external ldap tree). For convinience this project includes a "scheduler" container that will take care of this and that can be dynamically configured through env variables. +There are certain tasks within Kopano that either need to be executed once (like creating the public store when starting a new environment for the first time) or on a regular base (like syncing the internal user list with and external LDAP tree). For convenience this project includes a "scheduler" container that will take care of this and that can be dynamically configured through env variables. Please check the `README.md` of the scheduler image for further instructions. @@ -126,19 +126,19 @@ The exposed ports of each container are defined in `docker-compose.ports.yml`. I ### I want to use these Docker images outside of an evaluation environment. What do I need to adjust to make this possible? -To get a quick impression of Kopano this git repository bundles a locally build ldap image with some example users. When using the docker-compose.yml in a production environment make sure to: +To get a quick impression of Kopano this git repository bundles a locally build LDAP image with some example users. When using the docker-compose.yml in a production environment make sure to: -- either remove `ldap-demo/bootstrap/ldif/demo-users.ldif` from the locally built ldap image or completely remove the local ldap from the compose file -- adapt ldap queries in .env to match you actual ldap server and users +- either remove `ldap-demo/bootstrap/ldif/demo-users.ldif` from the locally built LDAP image or completely remove the local LDAP from the compose file +- adapt LDAP queries in .env to match you actual LDAP server and users - all additional configuration of the Kopano components should be specified in the compose file and **not within the running container** #### Can I combine these Docker images with my existing environment? -Yes, that is certainly a possibillity. Within the `examples/` directory you can find some ready to run examples that can be run in the following way: +Yes, that is certainly a possibility. Within the `examples/` directory you can find some ready to run examples that can be run in the following way: - `docker-compose -f examples/webapp.yml up -d` -### Some more commands for those unfamilar with docker-compose +### Some more commands for those unfamiliar with docker-compose - Start ``docker-compose-yml`` file in the background: `docker-compose up -d` - Get a status overview of the running containers: `docker-compose ps` diff --git a/base/README.md b/base/README.md index 06658f8..7a1fe0d 100644 --- a/base/README.md +++ b/base/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_base.svg)](https://microbadger.com/images/zokradonh/kopano_base "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_base.svg)](https://microbadger.com/images/zokradonh/kopano_base "Microbadger version") -Common base for Kopano images. Predefines arguments and prepares fetching of Kopano packages and building of a local repository (when using nightly downloads). \ No newline at end of file +Common base for Kopano images. Predefines arguments and prepares fetching of Kopano packages and building of a local repository (when using nightly downloads). diff --git a/build/README.md b/build/README.md index 34d3d65..69716dc 100644 --- a/build/README.md +++ b/build/README.md @@ -4,18 +4,17 @@ Helper container for systems where build requirements (bash, curl, docker-compos Run the following command to enter the "build environment" (command may need to be run with `sudo` to work with the `docker` command): -``` +```bash $ ./run.sh This script may need to be run as root to be able to use docker/docker-compose through it. bash-4.4$ - ``` (the first time it will take a moment before the bash prompt is displayed, since the container is built locally first) Afterwards you can execute the `setup.sh` script, modify `.env` to your liking and run any make commands: -``` +```bash bash-4.4# ./setup.sh Creating an .env file for you Which tag do you want to use for Kopano Core components? [latest]: @@ -29,7 +28,7 @@ LDAP server to be used (defaults to the bundled OpenLDAP) [ldap://ldap:389]: Timezone to be used [Europe/Berlin.]: E-Mail Address displayed for the 'postmaster' [postmaster@kopano.demo]: Name/Address of Database server (defaults to the bundled one) [db]: -Avaliable options: +Available options: 1 ) de-at 2 ) de-ch 3 ) de-de @@ -41,7 +40,7 @@ Avaliable options: 9 ) nl 10 ) pl-pl Check language spell support (again to uncheck, ENTER when done): -Avaliable options: +Available options: 1 ) contactfax 2 ) desktopnotifications 3 ) filepreviewer diff --git a/core/README.md b/core/README.md index 8107319..adc4f0b 100644 --- a/core/README.md +++ b/core/README.md @@ -10,7 +10,7 @@ Attachment location can be configured by setting the environment variable `KCCON All configuration can be adjusted dynamically through environment variables. -``` +```bash KCCONF_SERVER_MYSQL_HOST=127.0.0.1 ^ ^ ^ ^ | | | | @@ -24,19 +24,20 @@ General prefix | ``` Examples: + - specify `KCCONF_SERVER_MYSQL_HOST` for `mysql_host` setting in `server.cfg` - specify `KCCONF_LDAP_LDAP_SEARCH_BASE` to set `ldap_search_base` in `ldap.cfg` Additionally it is possible to comment specific options in/out with `KCCOMMENT_filenameWithoutExtension_anystring=searchline` e.g. `KCCOMMENT_LDAP_1=!include /usr/share/kopano/ldap.openldap.cfg` -For coredumps on crashes kopano-server requires the fs.suid_dumpable sysctl to contain the value 2, not 0. +For core dumps on crashes kopano-server requires the `fs.suid_dumpable sysctl` to contain the value 2, not 0. It is recommended to sync the user list before the first login of a user. With the bundled ´docker-compose.yml´ the ´kopano_scheduler´ container will take care of this. Alternatively `kopano-cli --list-users` could be run once after initial install in the kopano_server container. Example: -`docker-compose exec kserver kopano-cli --list-users` +`docker-compose exec kopano_server kopano-cli --list-users` Depending on the overall performance of the system and the amount of user the first execution of this command will take a moment before it produces any output. This is since this command kicks off the mailbox creation for the users. @@ -46,4 +47,4 @@ See https://documentation.kopano.io/kopanocore_administrator_manual/configure_kc - kopano-server is configured to listen on the ports 236 (plain) and 237 (https) - kopano-ical is configured to listen on the port 8080, but the web container is also configured to proxy access to http(s)://FQDN/caldav to kopano-ical -- kopano-gateway is configured to listen on IMAP traffic on port 143. Pop3 is deactivated by default but whould be listening on port 110. Pop3s and IMAPs are currently not configured. (see https://github.com/zokradonh/kopano-docker/issues/16 for more details). \ No newline at end of file +- kopano-gateway is configured to listen on IMAP traffic on port 143. Pop3 is deactivated by default but would be listening on port 110. Pop3s and IMAPs are currently not configured. (see https://github.com/zokradonh/kopano-docker/issues/16 for more details). diff --git a/core/defaultconfigs/ical.py b/core/defaultconfigs/ical.py index 92c6223..40cdd86 100644 --- a/core/defaultconfigs/ical.py +++ b/core/defaultconfigs/ical.py @@ -5,8 +5,9 @@ import kcconf kcconf.configkopano({ r"/etc/kopano/ical.cfg": { + 'ical_listen': "0.0.0.0:8080", 'log_file': "-", - 'log_level': "4" + 'log_level': "3" } }) diff --git a/core/goss/server/goss.yaml b/core/goss/server/goss.yaml index da2d962..9b651ca 100644 --- a/core/goss/server/goss.yaml +++ b/core/goss/server/goss.yaml @@ -1,7 +1,7 @@ file: - /kopano/data/attachments/0: + /kopano/data/attachments/: exists: true - mode: "0750" + mode: "0755" owner: kopano group: kopano filetype: directory diff --git a/core/start-service.sh b/core/start-service.sh index 598aea1..73113f9 100755 --- a/core/start-service.sh +++ b/core/start-service.sh @@ -77,6 +77,11 @@ server) -wait file://"$KCCONF_SERVER_SERVER_SSL_KEY_FILE" \ -wait "$DB_CONN" \ -timeout 360s + # pre populate database + coreversion=$(dpkg-query --showformat='${Version}' --show kopano-server) + if dpkg --compare-versions "$coreversion" "gt" "8.7.84"; then + kopano-dbadm populate + fi # cleaning up env variables unset "${!KCCONF_@}" exec /usr/sbin/kopano-server -F diff --git a/database/README.md b/database/README.md index cca1906..6489ccb 100644 --- a/database/README.md +++ b/database/README.md @@ -1,5 +1,5 @@ # Database helpers -# create-multiple-databases.sh +## create-multiple-databases.sh -Script to create additional databases during the initial container startup. Based on https://github.com/mrts/docker-postgresql-multiple-databases. \ No newline at end of file +Script to create additional databases during the initial container startup. Based on https://github.com/mrts/docker-postgresql-multiple-databases. diff --git a/examples/meet/tests/startup-test/Dockerfile b/examples/meet/tests/startup-test/Dockerfile new file mode 100644 index 0000000..ef3185e --- /dev/null +++ b/examples/meet/tests/startup-test/Dockerfile @@ -0,0 +1,6 @@ +ARG docker_repo=zokradonh +FROM ${docker_repo}/kopano_scheduler + +COPY test.sh /start.sh + +CMD ["/start.sh"] diff --git a/examples/meet/tests/startup-test/test.sh b/examples/meet/tests/startup-test/test.sh new file mode 100755 index 0000000..f22a99b --- /dev/null +++ b/examples/meet/tests/startup-test/test.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -ex + +# waits for key events in various containers +# e.g. kopano_server:236 signals succesful start of kopano-server process +dockerize \ + -wait file://var/run/kopano/grapi/notify.sock \ + -wait http://kopano_konnect:8777/.well-known/openid-configuration \ + -wait tcp://kopano_kwmserver:8778 \ + -wait tcp://kopano_meet:9080 \ + -wait tcp://web:2015 \ + -timeout 30s diff --git a/examples/meet/tests/test-container.yml b/examples/meet/tests/test-container.yml new file mode 100644 index 0000000..a1db920 --- /dev/null +++ b/examples/meet/tests/test-container.yml @@ -0,0 +1,19 @@ +version: "3.5" + +services: + test: + build: + context: tests/startup-test + args: + docker_repo: ${docker_repo:-zokradonh} + networks: + - kopano-net + - ldap-net + - web-net + volumes: + - kopanodata/:/kopano/data + - kopanossl/:/kopano/ssl + - kopanosocket/:/run/kopano + - /var/run/docker.sock:/var/run/docker.sock:ro + environment: + - KCCONF_SERVER_MYSQL_HOST=${MYSQL_HOST} diff --git a/grapi-explorer/README.md b/grapi-explorer/README.md index bfd1758..147d29d 100644 --- a/grapi-explorer/README.md +++ b/grapi-explorer/README.md @@ -4,11 +4,11 @@ The Grapi Explorer is a fork of the Microsoft Graph Explorer, which has been mod ## How to use the Grapi Explorer? - 1. Add the `grapi-explorer.yml` to the `COMPOSE_FILE` variable in your `.env` file. +1. Add the `grapi-explorer.yml` to the `COMPOSE_FILE` variable in your `.env` file. - Example: +Example: ``` COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml:grapi-explorer/grapi-explorer.yml ``` - 2. Run `docker-compose up -d` and you will find the grapi-explorer at `https://your-fqdn/grapi-explorer/`. \ No newline at end of file +2. Run `docker-compose up -d` and you will find the grapi-explorer at `https://your-fqdn/grapi-explorer/`. diff --git a/kdav/README.md b/kdav/README.md index ec42a5e..2587536 100644 --- a/kdav/README.md +++ b/kdav/README.md @@ -4,4 +4,4 @@ Image to run [Kopano kDAV](https://github.com/kopano-dev/kdav). -kDAV can be accessed on port 80 with the url ``/kdav``. \ No newline at end of file +kDAV can be accessed on port 80 with the url ``/kdav``. diff --git a/konnect/README.md b/konnect/README.md index b753be4..56b69db 100644 --- a/konnect/README.md +++ b/konnect/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_konnect.svg)](https://microbadger.com/images/zokradonh/kopano_konnect "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_konnect.svg)](https://microbadger.com/images/zokradonh/kopano_konnect "Microbadger version") -Image to run [Kopano Konnect](https://github.com/kopano-dev/konnect). Takes the [official image](https://cloud.docker.com/u/kopano/repository/docker/kopano/konnectd) and extends it for automatic configuration. \ No newline at end of file +Image to run [Kopano Konnect](https://github.com/kopano-dev/konnect). Takes the [official image](https://cloud.docker.com/u/kopano/repository/docker/kopano/konnectd) and extends it for automatic configuration. diff --git a/kwmserver/README.md b/kwmserver/README.md index 58603a3..01e4094 100644 --- a/kwmserver/README.md +++ b/kwmserver/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_kwmserver.svg)](https://microbadger.com/images/zokradonh/kopano_kwmserver "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_kwmserver.svg)](https://microbadger.com/images/zokradonh/kopano_kwmserver "Microbadger version") -Image to run [Kopano Kwmserver](https://github.com/kopano-dev/kwmserver). Takes the [official image](https://cloud.docker.com/u/kopano/repository/docker/kopano/kwmserverdd) and extends it for automatic configuration. \ No newline at end of file +Image to run [Kopano Kwmserver](https://github.com/kopano-dev/kwmserver). Takes the [official image](https://cloud.docker.com/u/kopano/repository/docker/kopano/kwmserverdd) and extends it for automatic configuration. diff --git a/ldap-extras/README.md b/ldap-extras/README.md index a731ca2..088cf0c 100644 --- a/ldap-extras/README.md +++ b/ldap-extras/README.md @@ -4,16 +4,17 @@ This directory contains a compose file including optional containers. ## How to use this compose file? - 1. Add the `ldap-extras.yml` to the `COMPOSE_FILE` variable in your `.env` file. +1. Add the `ldap-extras.yml` to the `COMPOSE_FILE` variable in your `.env` file. - Example: -``` +Example: + +```bash COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml:ldap-extras/ldap-extras.yml ``` - 2. Run `docker-compose up -d`. +2. Run `docker-compose up -d`. - ## ldap-admin +## ldap-admin After startup you can access phpLDAPadmin by going to `https://kopano.demo/ldap-admin` diff --git a/ldap/README.md b/ldap/README.md index ac908c4..ee6cdd1 100644 --- a/ldap/README.md +++ b/ldap/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_ldap.svg)](https://microbadger.com/images/zokradonh/kopano_ldap "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_ldap.svg)](https://microbadger.com/images/zokradonh/kopano_ldap "Microbadger version") -Image to for an OpenLDAP server that already includes the Kopano LDAP schema. Based on https://github.com/osixia/docker-openldap. \ No newline at end of file +Image to for an OpenLDAP server that already includes the Kopano LDAP schema. Based on https://github.com/osixia/docker-openldap. diff --git a/meet/README.md b/meet/README.md index 1614085..d2ba097 100644 --- a/meet/README.md +++ b/meet/README.md @@ -10,7 +10,7 @@ Any additional configuration should be done through environment variables and no Examples of env variables: -``` +```bash KCCONF_KWEBD_TLS=no ^ ^ ^ ^ | | | | diff --git a/owncloud/README.md b/owncloud/README.md index 435a8c5..9d0f925 100644 --- a/owncloud/README.md +++ b/owncloud/README.md @@ -5,7 +5,8 @@ To have a demo environment that runs both Kopano and Owncloud perform the follow 1. Add the `owncloud.yml` to the `COMPOSE_FILE` variable in your `.env` file. Example: -``` + +```bash COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml:owncloud/owncloud.yml ``` @@ -15,9 +16,9 @@ COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml:owncloud/owncloud.yml ## Further tweaks -Add the following to `kopano_webapp.env` to have the intranet plugin display both Kopano Meet as well as Owncloud (replace `kopano.demo with your own `fqdn): +Add the following to `kopano_webapp.env` to have the intranet plugin display both Kopano Meet as well as Owncloud (replace `kopano.demo with your own` FQDN): -``` +```bash KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_USER_DEFAULT_ENABLE=true KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_BUTTON_TITLE=Kopano Meet KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_URL=https://kopano.demo/meet/ @@ -27,11 +28,10 @@ KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_ICON=resources/icons/icon_default.p KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_AUTOSTART_1=true KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_URL_1=https://kopano.demo/owncloud/ KCCONF_WEBAPPPLUGIN_INTRANET_PLUGIN_INTRANET_BUTTON_TITLE_1=Owncloud - ``` Add/extend the following line in your `.env`: -``` +```bash ADDITIONAL_KOPANO_WEBAPP_PLUGINS="kopano-webapp-plugin-intranet kopano-webapp-plugin-files kopano-webapp-plugin-filesbackend-owncloud" ``` diff --git a/php/README.md b/php/README.md index 8195d2e..61c0d5f 100644 --- a/php/README.md +++ b/php/README.md @@ -10,7 +10,7 @@ Any additional configuration should be done through environment variables and no Examples of env variables: -``` +```bash KCCONF_WEBAPP_CLIENT_TIMEOUT=3600 ^ ^ ^ ^ | | | | diff --git a/playground/README.md b/playground/README.md index 3de2874..6a28c7c 100644 --- a/playground/README.md +++ b/playground/README.md @@ -6,13 +6,14 @@ This project includes a Docker container to easily inspect the data returned by ## How to use the Kopano Playground? - 1. Add the `playground.yml` to the `COMPOSE_FILE` variable in your `.env` file. +1. Add the `playground.yml` to the `COMPOSE_FILE` variable in your `.env` file. - Example: -``` +Example: + +```bash COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml:playground/playground.yml ``` - 2. Run `docker-compose up -d`. +2. Run `docker-compose up -d`. - To explore these applications you need to pass the URL of the "Issuer" when opening these. For the Kapi Playground this would for example be `https://kopano.demo/kapi-playground/?iss=https://kopano.demo`. For the OIDC Playground it would be `https://kopano.demo/oidc-playground/?discovery_uri=https://kopano.demo/.well-known/openid-configuration&discovery=auto`. +To explore these applications you need to pass the URL of the "Issuer" when opening these. For the Kapi Playground this would for example be `https://kopano.demo/kapi-playground/?iss=https://kopano.demo`. For the OIDC Playground it would be `https://kopano.demo/oidc-playground/?discovery_uri=https://kopano.demo/.well-known/openid-configuration&discovery=auto`. diff --git a/python/README.md b/python/README.md index ad83372..e983a33 100644 --- a/python/README.md +++ b/python/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_python.svg)](https://microbadger.com/images/zokradonh/kopano_python "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_python.svg)](https://microbadger.com/images/zokradonh/kopano_python "Microbadger version") -Small image for components based on python-kopano. \ No newline at end of file +Small image for components based on python-kopano. diff --git a/scheduler/README.md b/scheduler/README.md index 6bf4d70..04807b9 100644 --- a/scheduler/README.md +++ b/scheduler/README.md @@ -6,7 +6,7 @@ Service to carry out repeating tasks within the Kopano environment. Takes care o ## Recurring tasks and maintenance tasks within Kopano -There are certain tasks within Kopano that either need to be executed once (like creating the public store when starting a new environment for the first time) or on a regular base (like syncing the internal user list with and external ldap tree). For convinience this project includes a "scheduler" container that will take care of this and that can be dynamically configured through env variables. +There are certain tasks within Kopano that either need to be executed once (like creating the public store when starting a new environment for the first time) or on a regular base (like syncing the internal user list with and external ldap tree). For convenience this project includes a "scheduler" container that will take care of this and that can be dynamically configured through env variables. The container knows two kinds of cron jobs (the crontab syntax is used for actual jobs): @@ -15,4 +15,4 @@ The container knows two kinds of cron jobs (the crontab syntax is used for actua - `CRONDELAYED_KBACKUP=30 1 * * * docker run --rm -it zokradonh/kopano_utils kopano-backup -h` - Jobs prefixed with `CRONDELAYED_` are only executed at the scheduled time. -Instead of using the internal scheduler one can also just use an existing scheduler (cron on the docker host for example) to execute these tasks. \ No newline at end of file +Instead of using the internal scheduler one can also just use an existing scheduler (cron on the docker host for example) to execute these tasks. diff --git a/ssl/README.md b/ssl/README.md index 5f36f2c..0e7c414 100644 --- a/ssl/README.md +++ b/ssl/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_ssl.svg)](https://microbadger.com/images/zokradonh/kopano_ssl "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_ssl.svg)](https://microbadger.com/images/zokradonh/kopano_ssl "Microbadger version") -Image to create certificates for all containers. These certificates are selfsigned and are used for internal Kopano component communication. \ No newline at end of file +Image to create certificates for all containers. These certificates are self signed and are used for internal Kopano component communication. diff --git a/tests/README.md b/tests/README.md index 6ec38a7..c5a045e 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1 +1 @@ -Place to store tests for CI \ No newline at end of file +# Place to store tests for CI diff --git a/tests/startup-test/test.sh b/tests/startup-test/test.sh index 5cd10bb..4896b26 100755 --- a/tests/startup-test/test.sh +++ b/tests/startup-test/test.sh @@ -13,7 +13,7 @@ dockerize \ -wait tcp://kopano_gateway:143 \ -wait tcp://kopano_ical:8080 \ -wait tcp://kopano_kwmserver:8778 \ - -wait tcp://kopano_meet:9080 \ + -wait http://kopano_meet:9080/meet \ -wait tcp://kopano_server:236 \ -wait tcp://kopano_server:237 \ -wait tcp://web:2015 \ diff --git a/utils/README.md b/utils/README.md index 928fae6..fe1e77f 100644 --- a/utils/README.md +++ b/utils/README.md @@ -2,4 +2,4 @@ [![](https://images.microbadger.com/badges/image/zokradonh/kopano_utils.svg)](https://microbadger.com/images/zokradonh/kopano_utils "Microbadger size/labels") [![](https://images.microbadger.com/badges/version/zokradonh/kopano_utils.svg)](https://microbadger.com/images/zokradonh/kopano_utils "Microbadger version") -Dedicated image with utilities for Kopano environments (admin, backup, ..). \ No newline at end of file +Dedicated image with utilities for Kopano environments (admin, backup, ..). diff --git a/web/README.md b/web/README.md index e6bd727..67b4288 100644 --- a/web/README.md +++ b/web/README.md @@ -7,7 +7,8 @@ Reverse Proxy to securely and with as less configuration effort as possible expo In its default configuration this container will redirect requests to the root of the domain (so for example when opening https://kopano.demo/ in a browser) to https://kopano.demo/webapp. To redirect to a different path the environment variable `DEFAULTREDIRECT` needs to be configured. Example: -``` + +```bash # the following value needs to be added to .env DEFAULTREDIRECT=/meet ```