Docker compose installation - EGroupware/egroupware GitHub Wiki
Docker-compose installation: Linux, Windows, Mac, Synology, QNAP
This is NOT the recommended installation method for supported Linux systems like Debian, Ubuntu, SuSE or RHEL!
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
EGroupware EPL installation instructions
- you have to do the installation of the community version, as described on this page, first
- once EGroupware CE is up and running, change your docker-compose.yml from
services:
egroupware:
image: egroupware/egroupware:latest
# EPL image: download.egroupware.org/egroupware/epl:latest
to (indention per space characters matter!)
services:
egroupware:
# CE image: egroupware/egroupware:latest
image: download.egroupware.org/egroupware/epl:latest
Then run the following commands (inside the directory with your docker-compose.yml file) and give your EPL credentials:
docker login download.egroupware.org
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 permissions
Activate Trash
Install the package "Docker" via the UI and then ssh into the diskstation as admin
sudo su -
<give admin password>
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
The last command allows you to follow the installation process (exit with Ctrl-C, once it's successful).
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)
Custom header tab:
X-Forwarded-Proto https
[Create v] >> Websocket
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 with an Let's Encrypt certificate.