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:
Use the credentials shown in the Docker compose run output to login.
You can start administering EGroupware and configuring third party integrations.
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