diff --git a/20.1--Installation-using-egroupware-docker-RPM-DEB-package.md b/20.1--Installation-using-egroupware-docker-RPM-DEB-package.md index c43a331..92e2e24 100644 --- a/20.1--Installation-using-egroupware-docker-RPM-DEB-package.md +++ b/20.1--Installation-using-egroupware-docker-RPM-DEB-package.md @@ -1,4 +1,14 @@ -> 20.1 is still in a release candidate state, so make proper backup, before updating any essential installations +![](http://www.egroupware.org/wp-content/themes/egroupware/images/logo.svg) +> Please also note the [release notes and distribution specific instructions](https://github.com/EGroupware/egroupware/wiki/20.1-Release-notes-and-distribution-specific-instructions) + +The 20.1 installation is based on **Docker**, even for the DEB or RPM packages. +The only requirement for the host system is Docker. + +20.1 contains an additional push-server container and runs - for new installations - MariaDB 10.4 in a container too. + +**Docker and the database are installed with/by EGroupware in the correct versions. There is no previous installation necessary and also not reasonable.** + +> There is no difference in most parts of the installation between **community edition** (CE) and EGroupware GmbH **EPL** version. Same is true for an in-place upgrade from 17.1 and a new installation. ## Major differences from a 19.1 installation @@ -10,19 +20,17 @@ * EGroupware now uses TypeScript instead of plain JavaScript to ease client-side development * mail servers can be [configured to notify EGroupware about new mails](https://github.com/EGroupware/egroupware/wiki/IMAP-Push-Notifications) -### 20.1 packages are currently available only in a special repository -The following example is for Ubuntu 20.04 (replace ```20.04``` with ```18.04``` or ```16.04```, or ```xUbuntu_20.04``` with ```Debian_10```): -> For CentOS, RHEL, openSUSE or SLES [follow the 19.1 instructions](https://github.com/EGroupware/egroupware/wiki/19.1-Release-notes-and-distribution-specific-instructions/_edit#opensuse-151--150-or-sles-15--12) replacing ```server:/eGroupWare``` with ```server:/eGroupWare:/trunk``` in the repository +## 20.1 installation or update +You first need to create a repository file for your Linux distribution and version and import the key for it. +I'll show it here in details for Ubuntu 20.04, for other distributions use [the above link](https://github.com/EGroupware/egroupware/wiki/20.1-Release-notes-and-distribution-specific-instructions). This is NOT necessary if you update, unless you use EPL before 19.1, which used a different repo. ``` -sudo sh -c "echo 'deb http://download.opensuse.org/repositories/server:/eGroupWare:/trunk/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/server:eGroupWare:trunk.list" - -sudo apt-get install gnupg # required for Debian 10 to use apt-key add - +echo 'deb http://download.opensuse.org/repositories/server:/eGroupWare/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/server:eGroupWare.list +sudo apt install gnupg # required, but not installed by apt-key add in Debian 10 wget -nv https://download.opensuse.org/repositories/server:eGroupWare/xUbuntu_20.04/Release.key -O - | sudo apt-key add - - -apt update +sudo apt update ``` +(replace ```20.04``` with ```18.04``` or ```16.04```, or ```xUbuntu_20.04``` with ```Debian_10```) > We have now also a 20.1 Univention App available in their TestAppCenter, which [need to be enabled](https://docs.software-univention.de/app-provider.html#testing:test-app-center) before you get the 20.1 versions offered for updating as usual. @@ -38,7 +46,20 @@ apt install egroupware-docker ``` > If you prefer to use Apache2 on the host as proxy, add ```apache2``` to the above install command. -It will create (or update) the following files in /etc/egroupware-docker: +> Package installation under Debian/Ubuntu/SUSE recommends Collabora Online Office, which mean it will be installed by default, unless you opt out by using ```--no-install-recommends``` on the command line. Doing so you have to take care of explicitly installing MariaDB! Of cause you can always deinstall them after testing, if you prefer to use something else. + +> If this is a **new installation** and you missed the **credentials** of your first EGroupware admin user "sysop" or the EGroupware setup user "admin", you can always find them under /var/lib/egroupware/egroupware-docker-install.log. + +## How to install EGroupware GmbH's EPL version +The update described above will remove the EPL packages, of cause leaving your data intact. +To install the EPL source / run the EPL container you need your download.egroupware.org credentials and run the following command: +``` +/etc/egroupware-docker/use-epl.sh +``` +It will ask your EPL repo credentials, add them and the EPL image to your docker-compose.override.yml file and start the EPL container. + +## Some more technical information what the installation is actually doing ## +* the package will install docker, docker-compose, if not already installed and create (or update) the following files in /etc/egroupware-docker: * **nginx.conf** config for using Nginx as proxy on the host, symlinked to /etc/nginx/conf.d/egroupware.conf * **apache.conf** config for using Apache2 on the host, symlinked to /etc/apache2/sites-{enabled,avalable}/egroupware.conf * **docker-compose.override.yml** for local modifications with many commented out examples (contains your 19.1 docker-compose.yml in case of an update!) @@ -46,7 +67,36 @@ It will create (or update) the following files in /etc/egroupware-docker: * **mariadb.cnf** file to overfide MariaDB configuration in the container * **docker-compose.yml**, **latest-*.yml** or **create-override.sh** **do NOT modify!** * **use-epl.sh** script to update to EPL (EGroupware GmbH subscription version) +* **mysql.sh** run mysql command on MariaDB running in egroupware-db container (can be copied to mysqldump.sh too!) * **egroupware-logs.sh** tail EGroupware's error-log +* EGroupware files will be store (as usual) in /var/lib/egroupware on the host +* it will start the following container: +1. **egroupware** Ubuntu 20.04 based container with PHP 7.3 FPM and the EGroupware sources +1. **egroupware-push** PHP Swoole 7.3 endpoint of all websocket connections +1. **egroupware-nginx** Alpine based container with internal Nginx server +1. **egroupware-watchtower** automatic updating all containers to new version, if available, at 4am daily -> This currently brief information will receive more updates in the next weeks. In the meantime most of the 19.1 documentation is valid for 20.1 too. +## Access to services (LDAP, IMAP, SMTP, ...) running on the host / localhost +As EGroupware is running in a container, it's localhost is not the same as the host. So if eg. your LDAP is configured in EGroupware setup to run under **localhost** or **127.0.0.1**, you need to change that to the IP address of the host, or the hosts address on the docker0 bridge, usually 172.17.0.1. +> To do so go to http(s)://your.host-or-ip/egroupware/setup/ and use the upper login box with the credentials from /var/lib/egroupware/egroupware-docker-install.log. +> Then click on [Edit current configuration] and change the LDAP host to 172.17.0.1 +## How to install third party or deprecated apps or update from before 14.3 +The following apps, which are deprecated since 14.3, are no longer part of 19.1: +1. egroupware-epl-wiki +1. egroupware-epl-sitemgr +1. egroupware-epl-phpbrain +1. egroupware-epl-compat (required for update from before EGroupware 14.3!) +1. egroupware-epl-groups ([Group administration for long term CE users](https://github.com/EGroupware/egroupware/wiki/Group-administration-for-long-time-CE-users)) + +They can however be installed from 17.1 repo or are kept in case of an update. + +They will work with the 20.1 container, as docker-compose.yml passes /usr/share/egroupware from the host into the container as /usr/share/egroupware-extra. The container [entrypoint script](https://github.com/EGroupware/docker/blob/master/fpm/entrypoint.sh#L8) copies them into the volume shared between egroupware container and Nginx. + +This mechanism can also be used to add arbitrary third-party apps to an EGroupware running in a container: +``` +mkdir -p /usr/share/egroupware +cd /usr/share/egroupware +git clone +docker restart egroupware +```