diff --git a/Docker-compose-installation.md b/Docker-compose-installation.md new file mode 100644 index 0000000..bc14ffc --- /dev/null +++ b/Docker-compose-installation.md @@ -0,0 +1,75 @@ +## Docker-compose installation: Linux, Windows, Mac, Synology, QNAP + +EGroupware can be installed directly using Docker-compose, without the use of Linux DEB/RPM packages +https://github.com/EGroupware/egroupware/tree/master/doc/docker#running-egroupware-in-docker + +You have to create an arbitrary directory where you place the docker-compose.yml and the nginx.conf file. +In this example we use /etc/egroupware-docker, like the DEB/RPM packages: +``` +mkdir /etc/egroupware-docker +cd /etc/egroupware-docker +curl https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/docker-compose.yml > docker-compose.yml +curl https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/nginx.conf > nginx.conf +# edit docker-compose.yml or nginx.conf, by default it will run on http://localhost:8080/ +mkdir data # this is where egroupware data is stored, it's by default a subdir of the directory of docker-compose.yml +docker-compose up -d +``` + +### Docker Desktop for Mac notes +* directories of volumes must be exported to Docker, by default only your home-directory is! +* permissions of data directory must be writable by your user, as Docker daemon runs as that user! +* db volume must NOT be a directory, as the networked access from Docker VM to the Mac is to slow! + +### Docker Desktop for Windows notes +* you can NOT use $PWD to reference the docker-compose directory, use the full path with forward slashes! +* directories of volumes must be exported to Docker! +* db volume must NOT be a directory, as the networked access from Docker VM to Windows is to slow! + +### Docker on Linux +* permissions of sources and data directory must be writable by www-data user (#33) + +### Synology installation +It's recommened you create a volume ```egroupware``` for EGroupware data on the diskstation: +Control panel >> Shared folder >> Create +``` +Name: egroupware +Description: EGroupware data and backups +Location: choose a volume eg. "volume1" +X Hide from network environment + Extended permisons + Activate Trash +``` +Install the package "Docker" and ssh into the diskstation as admin +``` +sudo su - + +mkdir /etc/egroupware-docker +cd /etc/egroupware-docker +curl https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/docker-compose.yml > docker-compose.yml +curl https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/nginx.conf > nginx.conf +ln -s /volume1/egroupware data # use the name of the volume you choose above +docker-compose up -d +docker-compose logs -f +``` +Now you can use follow the installation process. + +To make EGroupware public accessible you need to create a port-forward on your router for ports 80 and 443, create a DNS entry for your external domain eg. ```egw.example.org``` and on the diskstation: +Control panel >> Application portal >> Reverse proxy >> Create +``` +Description: EGroupware +Source +Protocol: HTTPS +Hostname: egw.example.org +Port: 443 + Activate HST (makes sense to activate, once everything is working!) +X Activate HTTP/2 + Access control (handled by EGroupware itself, do NOT activate) +Target +Protocol: HTTP +Hostname: localhost +Port: 8080 (unless a different port is specified in docker-compose.yml) +``` +Control panel >> Security >> Certificates +Create a Let's Encrypt certificate for the chosen domain ```egw.example.org``` (LE requires 80 AND 443!) + +EGroupware should then be accessible under https://egw.example.org