EGroupware

Voir un tableau comparatif des différents logiciels de collaboration sur wikipedia.

Le travail de groupe requiert un soutien que permet EGroupware, une application web fort bien cotée et présentant une gamme de services.

 

 
Un calendrier partageable au besoin avec possiblité de déléguer la gestion de son calendrier à quelqu'un d'autre.
 
Le courriel électronique avec panneau de visualisation des dossiers.
Fonctionne bien en mode IMAP.
 
Un carnet d'adresses partageable servant de base ou de pierre angulaire à tout le système.
 
Un suivi de dossiers relié au carnet d'adresses permettant de faire des liens avec les autres modules. L'InfoLog est un outil d'une grande efficacité pour documenter des événements et des dossiers.
 
Un suivi de projets avec feuilles de temps permettant de planifier des projets et des tâches (sous-projets). Quand même assez lourd à démarrer.
 
Partage de documents et dossiers assez classique.
 
Base de connaissances pour collectionner les documents et permettre des recherches par mot clé. Équivalente à une FAQ sophistiquée.
 
Feuilles de temps reliées à la gestion des projets.
Quand même assez lourd à démarrer.
 
Suivi des tâches (tracking system) avec délégation des tâches vers les ressources disponibles.
 
Wiki. Excellent pour préparer les réunions et faire les PV!
 
Un système de réservation de ressources (réservation de salles et de matériel) utile aussi pour gérer l'utilisation des salles de réunion, locaux, rétro-projecteur, etc..

eGroupWare est un outil permettant de proposer, via le réseau interne d'une entreprise, un ensemble de fonctionnalités regroupées en un seul point, accessible par un simple navigateur Internet. 

Ce type d'outil devient de plus en plus fréquent dans les entreprises en raison de l'évolution des besoins des utilisateurs, qui veulent pouvoir être mobiles tout en gardant à disposition leurs données et leurs applications.

De nombreuses solutions de ce type existent, et parmis elles, eGroupWare présente certaines caractéristiques intéressantes.

Installation (périmée)

Installation

Une méthode d'installation fort simple consiste à utiliser le SVN.

Par Sophie Romano (SopRom) 2008-04

L'installation typique du EGroupware sur le SME-Server se fait dans le répertoire /opt/egroupware/html. Cette méthode ne permet pas de faire la mise à jour en svn parce que le svn écrit dans le répertoire ./egroupware.

Alors en installant dans le répertoire /opt/egroupware/egroupware on peut exécuter la mise à jour par svn, puis modifier les permissions sur les fichiers si le svn a apporté des changements.

Howto Egroupware requiert le paquetage Subversion.

La procédure:

Créer les répertoires:

  • Méthode # 1
mkdir /opt/egroupware

mkdir /opt/egroupware/tmp

mkdir /opt/egroupware/files

mkdir /opt/egroupware/backup
  • Méthode # 2

    mkdir -p /opt/egroupware/

    		{tmp,files,backup}

Copier les fichiers:
 

cd /opt/egroupware
wget http://www.logiciel-libre.org/downloads/svnupdate.perms.sh
wget http://www.logiciel-libre.org/downloads/svn.update.sh



chmod u+x /opt/egroupware/svnupdate.perms.sh

chmod u+x /opt/egroupware/svn.update.sh


Le lancement du svn va automatique créer le répertoire /opt/egroupware/egroupware.


# lancer le téléchargement (attention d'inclure le point "." à la fin)
# (normalement, tout doit tenir sur une seule ligne de commande)


svn checkout http://svn.egroupware.org/egroupware/branches/1.4/aliases/default .

svn checkout http://svn.egroupware.org/egroupware/branches/1.6/aliases/default .


# Pour la version en développement (ex. 1.6...), utiliser cette commande:
# svn checkout http://svn.egroupware.org/egroupware/trunk/aliases/default .

chmod -R 770 /opt/egroupware/files

chmod -R 770 /opt/egroupware/backup

chmod -R 770 /opt/egroupware/tmp

Il reste à créer la base de données et les accès. Inscrire un mot de passe fort à l'endroit marqué par [passe]. Choisir un mot de passe costaud et le noter pour usage ultérieur.

mysql

CREATE DATABASE egroupware;

GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY '[passe]';

\q;

Ou autrement dit:

mysql -e "CREATE DATABASE egroupware"
mysql -e "GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY '--LE-MOT-DE-PASSE-';FLUSH PRIVILEGES"
 

Installer ensuite...

pear install XML_Feed_Parser

echo "mbstring.func_overload = 7" >> /etc/php.ini
echo "magic_quotes_gpc = Off" >> /etc/php.ini


Dernière étape

Inclure egroupware sous le contrôle du serveur apache.

mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
cd /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
wget http://www.logiciel-libre.org/downloads/98egroupware/98egroupware
expand-template /etc/httpd/conf/httpd.conf
service httpd-e-smith restart


Mise à jour avec /opt/egroupware/svn.update.sh


Voir d'autres Howtos.


Autre méthode cool pour SME8:

## INSTALL
wget http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_5/no...
wget http://download.opensuse.org/repositories/server:/eGroupWare/CentOS_5/no...
yum localinstall eGroupware-1.6.002-9.1.noarch.rpm eGroupware-egw-pear-1.6.002-9.1.noarch.rpm -y

## CREATE MySQL DB & USER
mysqladmin -u root create egroupware
mysql -e " grant all privileges on egroupware.* to 'egroupware'@'localhost' "
mysql -u root -e " SET PASSWORD FOR egroupware@localhost = PASSWORD( 'egroupware_db_password' ) "
mysqladmin flush-privileges

## FIXING SECURITY
chmod 666 /var/lib/egroupware/header.inc.php
chmod 777 /var/lib/egroupware/default/backup/
chmod 777 /var/lib/egroupware/default/files/

## APACHE CONFIG
rm /etc/httpd/conf.d/egroupware.conf
cat > /etc/e-smith/templates/etc/httpd/conf/httpd.conf/98eGroupWare << EOF

####################################
#  eGroupWare
####################################
Alias /egroupware /usr/share/egroupware
<Directory /usr/share/egroupware/>
  AddType application/x-httpd-php .php .php3 .phtml
  AddType text/xml .xml
  Options FollowSymLinks ExecCGI
  # this will disable .htaccess
  AllowOverride None
  Order allow,deny
  Allow from all
  DirectoryIndex index.html index.php
  AddHandler cgi-script .cgi
  AddDefaultCharset Off
  php_flag file_uploads on
  php_flag log_errors on
  php_flag magic_quotes_gpc off
  php_flag magic_quotes_runtime off
  php_flag register_globals off
  php_flag short_open_tag on
  php_flag track_vars on
  php_flag display_errors off
  php_value error_reporting 'E_ALL & ~E_NOTICE'
  php_value max_execution_time 90
  php_admin_value mbstring.func_overload 7
  php_value memory_limit 48M
  php_value session.gc_maxlifetime 14400
  php_value include_path .:/usr/share/pear
  php_value open_basedir /usr/share/egroupware:/var/lib/egroupware:/tmp:/usr/share/pear
  php_value upload_max_filesize 8M
</Directory>

<Directory /usr/share/egroupware/phpsysinfo/>
  php_value open_basedir /
</Directory>

<Location /egroupware/icalsrv/icalsrv.php>
    Script PUT /usr/share/egroupware/icalsrv/icalsrv.php
    AddHandler ical/ics .ics
    Action ical/ics /usr/share/egroupware/icalsrv/icalsrv.php
    Order allow,deny
    Allow from all
</
Location>

<Location /egroupware/rpc.php>
    php_admin_value mbstring.func_overload 0
    Order allow,deny
    Allow from all
</
Location>

EOF

## APPLY CHANGES
expand-template /etc/httpd/conf/httpd.conf
/etc/rc7.d/S86httpd-e-smith sigusr1

## SETUP EGROUPWARE
http://yourdomain.com/egroupware/setup

## ONCE INSTALLED, PUT SECURITY BACK
chmod 644 /var/lib/egroupware/header.inc.php

 

 

Groupware ou Outlook

 Groupware ou Outlook

Intégration PBX

Intégration PBX

La configuration du carnet d'adresses permet d'inscrire l'URL d'un programme sur le PBX pour lancer un appel en cliquant sur le numéro de téléphone.

Intégration téléphonique
URL to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone):

On inscrit :
http://<ip du pbx>/call.php?number=%1&accountname=%u&account=%t

 

Publipostage

Publipostage

Sur EGrouwpare, cette fonctionnalité existe mais son usage n'est pas évident!

Les modèles

Tout d'abord, les modèles de documents sont gérés par le Gestionnaire de fichiers.
Le seul format reconnu est le RTF.
On crée un dossier come /home/default/templates et on y place les modèles.

Les modèles peuvent contenir des variables pour recevoir les paramètres du carnet d'adresses.

Montréal, le $$date$$
$$org_name$$
$$n_given$$ $$n_family$$
Bonjour $$IF n_prefix~M.~Monsieur,~$$IF n_prefix~Mme~Madame,~Madame, Monsieur$$,$$
$$adr_one_street$$
$$adr_one_locality$$ ($$adr_one_region$$) $$adr_one_postalcode$$
...
...
$$pagerepeat$$

Association des modèles et du carnet d'adresses

Carnet d'adresses - Préférences

  • Default document to insert contacts:
    /home/Default/Templates/adressage-sophie.rtf
     
  • Directory with documents to insert contacts:
    /home/Default/Templates

Le publipostage

Pour produire un document pour un contact, il suffira de cocher ce contacts et de choisir le document à utiliser pour la fusion:

Ajouts

2008-04

  • Ajout de conditions dans les modèles.
    Exemple:
    "$$IF n_prefix~M.~Bonjour M.~
    Bonjour Mme.$$"
    si le champ "n_prefix" contient "M."
    alors affiche "Bonjour M."
    sinon affiche "Bonjour Mme".
  • Les modèles de publipostages peuvent maintenant provenir de sous-dossiers.
     
  • Saut de page dans les modèles pour changer d'enregistrement.
    L'étiquette $$pagerepeat$$ permet de sélectionner plusieurs contacts et de les afficher sur des pages individuelles
    dans le document produit. On obtient ainsi un contact par page.

Thunderbird

Intégration de Thunderbird et de EGroupware

Voir aussi ce lien pour une intégration plus simple.

Préparation de Thunderbird

Note importante: évaluer au préalable la version du plugin Funambol et sa compatibilité avec une version de Lightning. Exemple: en janvier 2009, le plugin funambol-pim-plugin-win32-v0.5.xpi est compatible avec lightning-0.8-tb-win.xpi.

Installer Lightning :
http://ftp.mozilla.org/pub/mozilla.org/addons/2313/lightning-0.8-tb-win.xpi

Installer le plugin de funambol (mais vérifier la dernière version publiée):
http://superb-east.dl.sourceforge.net/sourceforge/sync4jmozilla/funambol...

Préparation de EGroupware

Activer "iCalSrv" dans le groupe d'utilisateurs

Lister les dossiers disponibles avec ces URL:

https://<votre_serveur>/egroupware/icalsrv/icalsrv.php/list.html

  • /events.ics
  • /tasks.ics
  • /default.ics

Par utilisateur, la listes s'allonge:

  • username/events.ics
        events for username from 1 month back till 1 year from now
     
  • username/tasks.ics
        open tasks for username
  • username/default.ics
        events and tasks for username from 1 month back till 1 year from now
     
  • username/freebusy.ifb
        freebusy times for username , based on events calendar from 1 month back till 1 year from now
     
  • username/week/events.ics
        events in this week for username
     
  • username/week/default.ics
        events in this week and open tasks for username
     
  • username/month/events.ics
        events in this month for username
     
  • username/month/default.ics
        events and tasks in this month for username
     
  • username/month/freebusy.ifb
        freebusy times for username in this month (based on events calendar)
     
  • username/nextmonth/events.ics
        events in next month for username
     
  • username/nextmonth/freebusy.ifb
        freebusy times for username in next month (based on events calendar)

 Le listage pour un groupe:

  • /egroupware/icalsrv/icalsrv.php/mygroup/events.ics
  • /egroupware/icalsrv/icalsrv.php/mygroup/tasks.ics

Configuration de Thunderbird

Les options du plugin:

Egroupware on SME8 with Subversion

As I want to apply updates on EGW when needed, the rpm install is not my preferred one.

I also want to...

  • access EGW by calling a subdomain like "egroupware.mydomain.com",
  • use either WGW 1.6 or 1.7, 1.8
  • store files on a webdav drive

Update for egw 1.8

 

	# mysql database pw must be very strong
mypasswd=z5if....ofjfjf
mkdir -p /opt/egw/1.8/userdata/{tmp,files,backup}
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts
mkdir -p /etc/e-smith/templates-custom/etc/php.ini

mysql -e "CREATE DATABASE egroupware;"
mysql -e "GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY '$mypasswd';"
mysql -e "FLUSH PRIVILEGES"

mkdir /root/egroupware
cd /root/egroupware

wget http://logicielslibres.sophieromano.com/system/files/20IbayContent.txt
wget http://logicielslibres.sophieromano.com/system/files/98egroupware.txt
wget http://logicielslibres.sophieromano.com/system/files/egwupdate.txt
wget http://logicielslibres.sophieromano.com/system/files/svnupdateperms.txt
wget http://logicielslibres.sophieromano.com/system/files/81timez.txt

# edit your timezone
nano 20IbayContent.txt

# edit path
nano 98egroupware.txt
# edit path and trunk
nano egwupdate.txt
# edit path
nano svnupdateperms.txt

cp 20IbayContent.txt /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/20IbayContent cp 98egroupware.txt /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98egroupware cp 81timez.txt /etc/e-smith/templates-custom/etc/php.ini/81timez cp egwupdate.txt /opt/egw/1.8/egwupdate cp svnupdateperms.txt /opt/egw/1.8/svnupdateperms chmod u+x /opt/egw/1.8/egwupdate chmod u+x /opt/egw/1.8/svnupdateperms chown -R www:www /opt/egw/1.8/userdata chmod -R 770 /opt/egw/1.8/userdata/files chmod -R 770 /opt/egw/1.8/userdata/backup chmod -R 770 /opt/egw/1.8/userdata/tmp # Edit URL first MYDOMAIN=egroupware.yourdomain.org # Edit path to egw MYFOLDER=egw/1.8/egroupware # Make Domain point to path db domains set $MYDOMAIN domain db domains setprop $MYDOMAIN Nameservers internet db domains setprop $MYDOMAIN Content $MYFOLDER db domains setprop $MYDOMAIN WebApp yes signal-event domain-create $MYDOMAIN # add repo smecontribs db yum_repositories \ setprop smecontribs \ MirrorList http://distro.ibiblio.org/pub/linux/distributions/smeserver/mirrorlist/s... signal-event yum-modify yum -y install subversion yum -y install smeserver-mod_dav --enablerepo=smecontribs pear install XML_Feed_Parser cd /opt/egw/1.8 touch /opt/egw/1.8/svnupdate_u.txt /opt/egw/1.8/egwupdate /opt/egw/1.8/svnupdateperms expand-template /etc/httpd/conf/httpd.conf sv t httpd-e-smith # after egw setup: mv /opt/egw/1.8/egroupware/header.inc.php /opt/egw/1.8 ln -s /opt/egw/1.8/header.inc.php /../header.inc.php chmod 644 /opt/egw/1.8/header.inc.php

 

So here is how I do it...

1. Create folders:

Folders used for EGW, httpd.conf and php

mkdir -p /opt/egw/1.6/userdata{tmp,files,backup}
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts
mkdir -p /etc/e-smith/templates-custom/etc/php.ini

2. Create database

Watch out for your password here...

mypasswd='!very-$-strong-$-password!not-.-like-.-123456!'
mysql -e "CREATE DATABASE egroupware;"
mysql -e "GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY $mypasswd;"
mysql -e "FLUSH PRIVILEGES"

3. Copy files to folders and set permissions

Download attached files to your system and place them on the server.  Then set rigths for them.

Note that the file "20IbayContent" is modified to accomodate a different home directory for webapps: /opt

mkdir /root/egroupware
cd /root/egroupware
wget http://logicielslibres.sophieromano.com/system/files/20IbayContent.txt
wget http://logicielslibres.sophieromano.com/system/files/98egroupware.txt
wget http://logicielslibres.sophieromano.com/system/files/egwupdate.txt
wget http://logicielslibres.sophieromano.com/system/files/svnupdateperms.txt
wget http://logicielslibres.sophieromano.com/system/files/81timez.txt
Review those files and edit the timezone, 98egroupware as needed.  Beware! 20IbayContent is modified and does not handle basedir the same way as stated on the Wiki.  Then, move files to folders:
cp 20IbayContent.txt /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/20IbayContent
cp 98egroupware.txt /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/98egroupware
cp 81timez.txt /etc/e-smith/templates-custom/etc/php.ini/81timez
cp egwupdate.txt /opt/egw/1.6/egwupdate
cp svnupdateperms.txt /opt/egw/1.6/svnupdateperms

and edit permissions:

chmod u+x /opt/egw/1.6/egwupdate
chmod u+x /opt/egw/1.6/svnupdateperms
chown -R www:www /opt/egw/1.6/userdata
chmod -R 770 /opt/egw/1.6/userdata/files
chmod -R 770 /opt/egw/1.6/userdata/backup
chmod -R 770 /opt/egw/1.6/userdata/tmp

4. Create a domain and an iBay for a DAV file system for EGW from the server-manager

  • Create ibay egwdav (and a group) without script handling, with Read/Write only for group.
  • Create subdomain (like http://davegw.mydomain.com) using ibay egwdav.
  • Create domain like egroupware.yourdomain.com (and edit DNS if requiered) using internet dns.

Webapps can be managed using some tips found here.

From the command line:

# Edit URL first
MYDOMAIN=egroupware.sophieromano.com
MYFOLDER=egw/1.8/egroupware
# Vars

MYGROUP=egwdav
MYIBAY=egwdav

# Group

db accounts set g_$MYGROUP group
db accounts setprop g_$MYGROUP Description $MYGROUP
db accounts setprop g_$MYGROUP Group g_$MYGROUP
signal-event group-create g_$MYGROUP

# ibay

db accounts set $MYIBAY ibay
db accounts setprop $MYIBAY CgiBin disabled
db accounts setprop $MYIBAY Group g_$MYGROUP
db accounts setprop $MYIBAY ModDav enabled
db accounts setprop $MYIBAY ModDav-FileETag none
db accounts setprop $MYIBAY Name $MYIBAY
db accounts setprop $MYIBAY PasswordSet no
db accounts setprop $MYIBAY PublicAccess global
db accounts setprop $MYIBAY UserAccess wr-group-rd-group
signal-event ibay-create $MYIBAY

# Domain

db domains set $MYDOMAIN domain
db domains setprop $MYDOMAIN Nameservers internet
db domains setprop $MYDOMAIN Content $MYFOLDER
db domains setprop $MYDOMAIN WebApp yes
signal-event domain-create $MYDOMAIN

5. Add repositories

If not done already, add contribs to repositories

db yum_repositories \
setprop smecontribs \
MirrorList http://distro.ibiblio.org/pub/linux/distributions/smeserver/mirrorlist/s...
signal-event yum-modify

6. Install packages

Add packages and install EGW using subversion...

yum install subversion
yum install smeserver-mod_dav --enablerepo=smecontribs
pear install XML_Feed_Parser

/opt/egw/1.6/egwupdate
/opt/egw/1.6/svnupdateperms

7. Configuration

Previously egroupware was mapped to subdomain and your own domain might need to be adapted to your own DNS environment.

With ibay DAV enabled, this will be used as a filesystem when installing EGW. So instead of the standard VFS "/opt/egw/1.6/userdata/files", we would be able to use something like "http://davegw.mydomain.com/"

Now apply any changes affecting apache server:

expand-template /etc/httpd/conf/httpd.conf
sv t httpd-e-smith

8. Setup EGW

EGW can now be setup by opening this URL:
http://egroupware.mydomain.com/setup/

  • folders
    • standard files system: /opt/egw/1.6/userdata/files

    • alternate files system: (example) http://davegw.mydomain.com

    • backup: /opt/egw/1.6/userdata/backup

    • tmp: /opt/egw/1.6/userdata/tmp
  • authentification
    • ldap

 

When done with egroupware's setup, we need to protect config file header.inc.php.

9. Finish

After this setup (step 8), protect the header file:

mv /opt/egw/1.6/egroupware/header.inc.php /opt/egw/1.6
ln -s /opt/egw/1.6/header.inc.php /opt/egw/1.6/egroupware/header.inc.php
chmod 644 /opt/egw/1.6/header.inc.php

10. Configure EGW

Installation being done, there is a lot of configuration to do withing EGW. See http://www.egroupware.org if needed.

 

Notes and links

When doing an update, backup database.

Som people say that updating in the same folder is not safe since it can bring a broken or buggy version.  This is mainly true for version 1.7.

 


Subversion: how it is used here...

#!/bin/sh
# yum install subversion
# To set version: UPDATE egw_applications SET app_version='1.6.001' WHERE app_name='phpgwapi';

echo "Egroupware 1.6 SVN update"
myegw="/opt/egw/1.6"
echo "in folder $myegw"
cd $myegw
echo "...checking"

# 1.7 = svn checkout http://svn.egroupware.org/egroupware/trunk/aliases/default .
# 1.6 = svn checkout http://svn.egroupware.org/egroupware/branches/1.6/aliases/default .

svn checkout http://svn.egroupware.org/egroupware/branches/1.6/aliases/default . | tee $myegw/svnupdate.txt
cat $myegw/svnupdate.txt|grep "^U" > $myegw/svnupdate_u.txt

echo "Remove htaccess to let httpd.conf handle parameters"
#rm -f $myegw/egroupware/.htaccess

if [[ -s $myegw/svnupdate_u.txt ]]
then
    echo "...apply changes"
    cat $myegw/svnupdate_u.txt
    $myegw/svnupdateperms
else
    echo "...No updates."
fi
echo "Done"
rm -f $myegw/svnupdate.txt



 

Files to download must be edited to suite your context and to verify that they do what you think they do!

Fichier attachéTaille
20IbayContent.txt2.14 Ko
81timez.txt74 octets
egwupdate.txt864 octets
svnupdateperms.txt590 octets
98egroupware.txt1.43 Ko

Synchronisation

SyncML nécessite PHP5

Apache doit être adapté

<Location /egroupware/rpc.php>
   php_value mbstring.func_overload 0
   Order allow,deny
   Allow from all
</Location> 

Egrroupware doit aussi être configuré avec les sessions PHP et la synchro ne fonctionne pas avec des sessions "DB".

 

Paramétrage

Voir http://www.egroupware.org/sync

SyncServer URL:

http://example.org/egroupware/rpc.php

Login:

With multiple domains you need to use accountname@domainname as your login name.

Funambol (https://www.forge.funambol.org/download/)

 

Application Foldername  
Contact Name ./sifcontacts Addressbook
Calendar Name ./sifcalendar Calendar:
You can only synchronize your own calendar.
You can not access other users calendar
Note Name n/a InfoLog notes
Task Name ./siftasks InfoLog tasks

 

Autres restrictions ave SyncML

Contacts

Only the contacts which you are the egroupware-owner of get sync'ed. There doesn't seem to be a way to sync contacts under a category. So if you have shared calendars with other people using egroupware, there is currently to be no way to sync them.

This is also a problem for a secretary to add an contact into the boss' calender. The only workaround feasible would be to login as the boss him/herself  and enter the event - so it get's sync'ed.

The good news is that at least one developer already knows of this limatation and will hopefully fix it soon, though no word on how soon.

Notes

This will sync all egroupware infolog notes. These will appear as notes, but will not have the contact information with it, which means it out of contexts.