EGroupware is a Web based groupware server written in PHP. EGroupware is an open-source software created for companies, research institutes and clubs and any other suiting use case. In this guide, we will look at how you can install EGroupware Community edition on CentOS 7 / CentOS 8 Linux system.

Ubuntu installation: Install EGroupware CE on Ubuntu 18.04 Linux

EGroupware is based on PHP, JS and HTML and the software is distributed under the terms of GNU General Public License (GPL) Version 2. The software is used either via its native web-interface, allowing platform-independent access, or by using different supported clients using CalDAV/CardDAV or ActiveSync protocol.

Features of EGroupware

  • File Manager – Provides a detailed rights administration, archiving options and reading access to files for external partners make it easy.
  • Calendar – Schedule meetings, vacations and group appointments online.
  • Web Admin – Lots of needful tools and preferences to maintain the whole platform
  • Email Client – The integrated E-Mail Client is perfectly connected with the other modules like Calendar or InfoLog.
  • Tasks and Projects – Manage information and responsibilities for your whole team efficiently.

If you’re not sure of the version to go with, check the EGroupware pricing page for more details on feature comparisons.

Install EGroupware on CentOS 8 / CentOS 7 Linux

You can grab binary packages directly and install EGroupware on CentOS 7 / RHEL 7 from binary packages. The other option is adding the EGroupware repository manually and installing EGroupware on CentOS 7 / RHEL 7 from the repository. I prefer the latter because it eases updates.

Step 1: Add EGroupware repository

Add the repository by running the commands below in your terminal.

--- CentOS 7 ---
sudo yum -y install wget
sudo wget https://download.opensuse.org/repositories/server:eGroupWare/CentOS_7/server:eGroupWare.repo -O  /etc/yum.repos.d/eGroupWare.repo

--- CentOS 8 ---
sudo yum -y install wget
sudo wget https://download.opensuse.org/repositories/server:eGroupWare/CentOS_8/server:eGroupWare.repo -O  /etc/yum.repos.d/eGroupWare.repo

You can check the repository file contents with cat command.

$ cat /etc/yum.repos.d/eGroupWare.repo
[server_eGroupWare]
name=EGroupware (CentOS_7)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_7/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_7/repodata/repomd.xml.key
enabled=1

Step 2: Install MariaDB Database Server

Add MariaDB repository:

CentOS 7:

cat <<EOF | sudo tee /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

CentOS 8:

sudo tee /etc/yum.repos.d/MariaDB.repo<<EOF 
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

Install and start MariaDB service:

CentOS 7:

sudo yum -y install MariaDB-server MariaDB-client
sudo systemctl enable --now mariadb

CentOS 8:

sudo dnf install boost-program-options
sudo dnf install MariaDB-server MariaDB-client --disablerepo=AppStream 
sudo systemctl enable --now mariadb

Step 3: Install EGroupware on CentOS 8 / CentOS 7

For CentOS 8, install Docker Manually from Docker CE repository:

Only CentOS 8:

sudo curl  https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
sudo dnf -y  install docker-ce --nobest
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

RHEL/CentOS 8 uses nftables instead of iptables, which does not work with current docker-ce. You need to configure firewalld to use iptables by editing:

$ sudo vi  /etc/firewalld/firewalld.conf
#FirewallBackend=nftables
FirewallBackend=iptables

$ sudo systemctl restart firewalld

After addition of the repository, proceed to install EGroupware on CentOS 7 / RHEL 7 Linux machine.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
sudo yum install egroupware-docker egroupware-collabora-key egroupware-rocketchat

Start installation by accepting the prompt given with y key.

Dependencies Resolved

=======================================================================================================================================================
 Package                                           Arch              Version                                        Repository                    Size
=======================================================================================================================================================
Installing:
 egroupware-docker                                 noarch            19.1.20200409-1.1                              server_eGroupWare            296 k
Installing for dependencies:
 PyYAML                                            x86_64            3.10-11.el7                                    base                         153 k
 apr                                               x86_64            1.4.8-5.el7                                    base                         103 k
 apr-util                                          x86_64            1.5.2-6.el7                                    base                          92 k
 atomic-registries                                 x86_64            1:1.22.1-29.gitb507039.el7                     extras                        35 k
 audit-libs-python                                 x86_64            2.8.5-4.el7                                    base                          76 k
 centos-logos                                      noarch            70.0.6-3.el7.centos                            base                          21 M
 checkpolicy                                       x86_64            2.5-8.el7                                      base                         295 k
 container-selinux                                 noarch            2:2.107-3.el7                                  extras                        39 k
 container-storage-setup                           noarch            0.11.0-2.git5eaf76c.el7                        extras                        35 k
 containers-common                                 x86_64            1:0.1.37-3.el7.centos                          extras                        21 k
 device-mapper-event                               x86_64            7:1.02.158-2.el7_7.2                           updates                      190 k
 device-mapper-event-libs                          x86_64            7:1.02.158-2.el7_7.2                           updates                      189 k
 device-mapper-persistent-data                     x86_64            0.8.5-1.el7                                    base                         423 k
 docker                                            x86_64            2:1.13.1-109.gitcccb291.el7.centos             extras                        18 M
 docker-client                                     x86_64            2:1.13.1-109.gitcccb291.el7.centos             extras                       3.9 M
 docker-common                                     x86_64            2:1.13.1-109.gitcccb291.el7.centos             extras                        98 k
 docker-compose                                    x86_64            1.24.1-6.1                                     server_eGroupWare            4.0 k
 httpd                                             x86_64            2.4.6-90.el7.centos                            base                         2.7 M
 httpd-tools                                       x86_64            2.4.6-90.el7.centos                            base                          91 k
 libaio                                            x86_64            0.3.109-13.el7                                 base                          24 k
 libcgroup                                         x86_64            0.41-21.el7                                    base                          66 k
 libsemanage-python                                x86_64            2.5-14.el7                                     base                         113 k
 libyaml                                           x86_64            0.1.4-11.el7_0                                 base                          55 k
 lvm2                                              x86_64            7:2.02.185-2.el7_7.2                           updates                      1.3 M
 lvm2-libs                                         x86_64            7:2.02.185-2.el7_7.2                           updates                      1.1 M
 mailcap                                           noarch            2.1.41-2.el7                                   base                          31 k
 mod_ssl                                           x86_64            1:2.4.6-90.el7.centos                          base                         112 k
 oci-register-machine                              x86_64            1:0-6.git2b44233.el7                           extras                       1.1 M
 oci-systemd-hook                                  x86_64            1:0.2.0-1.git05e6923.el7_6                     extras                        34 k
 oci-umount                                        x86_64            2:2.5-3.el7                                    extras                        33 k
 policycoreutils-python                            x86_64            2.5-33.el7                                     base                         457 k
 python-IPy                                        noarch            0.75-6.el7                                     base                          32 k
 python-backports                                  x86_64            1.0-8.el7                                      base                         5.8 k
 python-backports-ssl_match_hostname               noarch            3.5.0.1-1.el7                                  base                          13 k
 python-ipaddress                                  noarch            1.0.16-2.el7                                   base                          34 k
 python-pytoml                                     noarch            0.1.14-1.git7dea353.el7                        extras                        18 k
 python-setuptools                                 noarch            0.9.8-7.el7                                    base                         397 k
 setools-libs                                      x86_64            3.3.8-4.el7                                    base                         620 k
 subscription-manager-rhsm-certificates            x86_64            1.24.13-4.el7.centos                           updates                      228 k
 yajl                                              x86_64            2.0.4-4.el7                                    base                          39 k
Updating for dependencies:
 audit                                             x86_64            2.8.5-4.el7                                    base                         256 k
 audit-libs                                        x86_64            2.8.5-4.el7                                    base                         102 k
 device-mapper                                     x86_64            7:1.02.158-2.el7_7.2                           updates                      294 k
 device-mapper-libs                                x86_64            7:1.02.158-2.el7_7.2                           updates                      322 k
 policycoreutils                                   x86_64            2.5-33.el7                                     base                         916 k

Transaction Summary
=======================================================================================================================================================
Install  1 Package  ( 40 Dependent packages)
Upgrade             (  5 Dependent packages)

Total download size: 55 M
Is this ok [y/d/N]: y

Start Docker Containers:

$ cd /etc/egroupware-docker/
$ sudo docker-compose up
Unable to find image 'docker/compose:1.24.1' locally
Trying to pull repository docker.io/docker/compose ... 
1.24.1: Pulling from docker.io/docker/compose
c87736221ed0: Pull complete 
ba1ee912e9a7: Pull complete 
2df7dacacdeb: Pull complete 
6037f24be055: Pull complete 
Digest: sha256:8616a861a5c769b7fe633625a4d5a4f76ae5a54d1d04874dcef827644c136684
Status: Downloaded newer image for docker.io/docker/compose:1.24.1
Creating network "egroupware-docker_default" with the default driver
Creating volume "egroupware-docker_sources" with default driver
Creating volume "egroupware-docker_data" with default driver
Creating volume "egroupware-docker_extra" with default driver
Pulling egroupware (egroupware/egroupware:latest)...
Trying to pull repository docker.io/egroupware/egroupware ... 
latest: Pulling from docker.io/egroupware/egroupware
5bed26d33875: Pull complete
f11b29a9c730: Pull complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
c021c3d5de0f: Pull complete
f75d48bee0e3: Pull complete
Digest: sha256:18751b4a3eb9954af9a734bc04dc3520dd97239b945a1544ba599253fa9b4e3c
Status: Downloaded newer image for docker.io/egroupware/egroupware:latest
Pulling nginx (nginx:stable-alpine)...
Trying to pull repository docker.io/library/nginx ... 
stable-alpine: Pulling from docker.io/library/nginx
cbdbe7a5bc2a: Pull complete
6ade829cd166: Pull complete
Digest: sha256:2668e65e1a36a749aa8b3a5297eee45504a4efea423ec2affcbbf85e31a9a571
Status: Downloaded newer image for docker.io/nginx:stable-alpine
Pulling watchtower (containrrr/watchtower:)...
Trying to pull repository docker.io/containrrr/watchtower ... 
latest: Pulling from docker.io/containrrr/watchtower
c4b177d7cf7a: Pull complete
676d5222541c: Pull complete
00dbe20f4a5b: Pull complete
Digest: sha256:76fb863ea0c513d870f8634a13e061f81c387a62ecc27ad64f9b06179181c394
Status: Downloaded newer image for docker.io/containrrr/watchtower:latest
Creating egroupware            ... done
Creating egroupware-watchtower ... done
Creating egroupware-nginx      ... done
Attaching to egroupware-watchtower, egroupware, egroupware-nginx
egroupware-watchtower | time="2020-04-26T10:04:24Z" level=info msg="Starting Watchtower and scheduling first run: 2020-04-27 04:00:00  0000 UTC"
egroupware    | Fix APC(u) configuration, set apc.shm_size=128M in /etc/php/7.3/cli/conf.d/20-apcu.ini
egroupware    | Timezones updated to version 2.2019c (546 records updated).
egroupware    | Timezones aliases updated to version 2020-04-09 09:54:19 (87 records updated).
egroupware    | You might need to clear the cache for changes to be visiable: Admin >> Clear cache!
egroupware    | 
egroupware    | EGroupware successful installed
egroupware    | ===============================
egroupware    | 
egroupware    | Please note the following user names and passwords:
egroupware    | 
egroupware    | Setup username:      admin
egroupware    |       password:      QvHHs-HFcpYtVpSP
egroupware    | 
egroupware    | EGroupware username: sysop
egroupware    |            password: xYY2NyR5?I|AdlNJ
egroupware    | 
egroupware    | You can log into EGroupware by pointing your browser to http://localhost/egroupware/
egroupware    | Please replace localhost with the appropriate hostname, if you connect remote.
egroupware    | 
egroupware    | *** Database has no root password set, please fix that immediatly: mysqladmin -u root password NEWPASSWORD
egroupware    | 
egroupware    |  * Starting periodic command scheduler cron
egroupware    |    ...done.
egroupware    | [26-Apr-2020 10:04:41] NOTICE: fpm is running, pid 1
egroupware    | [26-Apr-2020 10:04:41] NOTICE: ready to handle connections
egroupware    | [26-Apr-2020 10:04:41] NOTICE: systemd monitor interval set to 10000ms

Step 4: Accessing EGroupware CE Dashboard

Now that the containers are started, visit the Go http://example.org/egroupware page to login to the dashboard with credentials:

Install EGroupware CE on CentOS 7 / CentOS 8 Collaboration egroupware How To Linux Tutorials mail

Use the credentials shown in the Docker compose run output to login.

Install EGroupware CE on CentOS 7 / CentOS 8 Collaboration egroupware How To Linux Tutorials mail

You can start administering EGroupware and configuring third party integrations.

Install EGroupware CE on CentOS 7 / CentOS 8 Collaboration egroupware How To Linux Tutorials mail

Step 5: Running Docker Services in the background

Save the access credentials printed out and stop docker services then start al the containers in the background.

# CTRL C
# docker-compose up -d
Starting egroupware            ... done
Starting egroupware-watchtower ... done
Starting egroupware-nginx      ... done

You can verify all containers are running:

# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
f74e1037685e        nginx:stable-alpine            "nginx -g 'daemon ..."   9 minutes ago       Up 16 seconds       127.0.0.1:8080->80/tcp   egroupware-nginx
4f7c68a51d72        containrrr/watchtower          "https://computingforgeeks.com/watchtower --sch..."   9 minutes ago       Up 17 seconds                                egroupware-watchtower
67cb10eae106        egroupware/egroupware:latest   "https://computingforgeeks.com/entrypoint.sh ph..."   9 minutes ago       Up 17 seconds       9000/tcp                 egroupware

Conclusion

The primary functions of EGroupware allow users to manage:

  • Contacts
  • Appointments
  • Projects
  • TO-DO Lists
  • Documents and Emails
  • and many more