Ceci est une ancienne révision du document !
OpenERP
OpenERP est un progiciel de gestion intégrée libre, anciennement appelé TinyERP, qui permet de gérer la plupart des aspects fonctionnels d'une entreprise : de la comptabilité à la gestion de production en passant par la gestion des ressources humaines et des projets.
Les modules fonctionnels sont :
- CRM & SRM ; gestion de la relation client
- Comptabilité analytique et financière
- Gestion des stocks
- Gestion de production (GPAO)
- Gestion de projets et des activités de service
- Norme qualité : ISO 9001 version 2000
- Gestion des ventes
- Gestion des achats
- Marketing
- Logistique
- Ressources Humaines
Certains modules sont propres à des besoins spécifiques :
- Network : Gestion d'un parc informatique
- Auction : Spécificités pour salles de ventes publiques
Les fonctionnalités techniques :
- serveur/client, serveur distribué ;
- workflows éditables ;
- une base de données orientée objet ;
- une interface éditable ;
- rapports personnalisables ;
- interface XML-RPC.
Installation
OpenERP est divisé en trois partie : un serveur, un client lourd (GTK) et un serveur Web permettant d'accéder à OpenERP à partir d'un navigateur Web.
L'installation d'OpenERP peut être effectuée de deux manières différentes :
- par les paquets ;
- à la main.
Installation par les paquets
Pour installer le client, installez le paquet openerp-client.
Pour installer le serveur, installez le paquet openerp-server qui va installer les dépendances nécessaires et notamment PostgreSQL s'il ne l'était pas.
Depuis Ubuntu 11.04 on peut installer le serveur web depuis les dépots, installez le paquet openerp-web . Pour les versions antérieures regardez les explications plus bas.
Installation à la main
Pré-requis
Pour être sûr que l'installation fonctionne, il faut installer les dépendances requises par OpenERP. Tout d'abord, il faut rechargez la liste des paquets puis installez les paquets nécessaires.
Pour commencer, il faut récupérer les sources d'OpenERP (client + serveur + serveur Web)
Deux manières de récupérer les sources :
- les versions stables depuis le site d'OpenERP ;
La procédure d'installation est la même, que vous ayez la version stable ou la version en développement.
Installation du serveur
Si vous avez télécharger les sources stables depuis le site officiel, il faut extraire l'archive openerp-server-X-Y.tar.gz.
Maintenant, pour savoir si le serveur est fonctionnel, il suffit d'aller dans le répertoire bin du serveur puis de lancer cette commande :
python ./openerp-server.py
Si tout s'est bien passé, en tapant openerp-server dans le terminal, vous obtenez ceci :
[2009-05-16 19:31:16,607] INFO:server:version - 5.0.0 [2009-05-16 19:31:16,607] INFO:server:addons_path - /usr/lib/openerp-server/addons [2009-05-16 19:31:16,608] INFO:server:database hostname - localhost [2009-05-16 19:31:16,608] INFO:server:database port - 5432 [2009-05-16 19:31:16,609] INFO:server:database user – « votre login » [2009-05-16 19:31:16,609] INFO:objects:initialising distributed objects services [2009-05-16 19:31:18,139] INFO:web-services:starting XML-RPC services, port 8069 [2009-05-16 19:31:18,141] INFO:web-services:starting NET-RPC service, port 8070 [2009-05-16 19:31:18,142] INFO:web-services:the server is running, waiting for connections...
OpenERP Server fonctionne.
Installation du client lourd
Si vous avez télécharger les sources stables depuis le site officiel, il faut extraire l'archive openerp-client-X-Y.tar.gz.
Maintenant, pour savoir si le serveur est fonctionnel, il suffit d'aller dans le répertoire bin du client puis de lancer cette commande :
python ./openerp-client.py
Si tout s'est bien passé, une fenêtre GTK devrait s'ouvrir.
Installation du serveur Web
Si vous avez télécharger les sources stables depuis le site officiel, il faut extraire l'archive openerp-web-X-Y.tar.gz.
Maintenant, pour savoir si le serveur est fonctionnel, il suffit d'aller dans le répertoire du serveur Web puis de lancer cette commande :
python ./openerp-web.py
Si tout s'est bien passé, vous devriez avoir ces lignes dans votre terminal :
[11/Nov/2010:18:18:16] CONFIG /home/quentin/Developpement/OpenERP/launchpad_6.0/web/doc/openerp-web.cfg [11/Nov/2010:18:18:16] ENGINE Bus STARTING [11/Nov/2010:18:18:16] ENGINE Started monitor thread '_TimeoutMonitor'. [11/Nov/2010:18:18:16] ENGINE Started monitor thread 'Autoreloader'. [11/Nov/2010:18:18:17] ENGINE Serving on 0.0.0.0:8080 [11/Nov/2010:18:18:17] ENGINE Bus STARTED
Le serveur Web fonctionne. Vous pouvez y accéder en tapant http://localhost:8080 dans la barre d'adresse de votre navigateur.
Configuration
C'est bien beau, OpenERP est installé, cependant, vous ne pouvez pas créer de base de données, ce qui est embêtant.
Il faut donc installer PostgreSQL si ce n'est déjà fait.
Il faut ensuite créer un utilisateur qui sera l'utilisateur qui lancera OpenERP. En développement, il est conseillé de créer un utilisateur du même nom que votre utilisateur de la machine. En production, il est conseillé de créer un compte utilisateur et un compte PostgreSQL spécifique à OpenERP.
En développement
En production
Pour qu'OpenERP puisse être lancé avec l'utilisateur openerp, il faut le créer dans le système.
Ensuite, il faut créer un utilisateur PostgreSQL :
sudo -u postgres createuser -d -S -R --pwprompt openerp
- -u postgres → Lancement de la commande sous le nom d'utilisateur postgres
- createuser → Commande de création d'un utilisateur dans PostgreSQL
- -d → Donne le droit de créer des base de données à l'utilisateur
- -S → L'utilisateur créé ne sera pas super-utilisateur
- -R → L'utilisateur n'aura pas le droit de créer de rôles dans PostgreSQL
- –pwprompt → Affiche un message permettant d'entrer le mot de passe du nouvel utilisateur
Ce n'est évidemment pas sécurisé, mais semble indispensable au début . Vous pourrez changer le mot de passe de cet utilisateur une fois en exploitation.
Si vous lancez alors openerp-client ou http://localhost:8080 dans votre navigateur, vous devriez avoir le message :
Pas de base de données trouvée, vous devez en créer une
Cliquez alors sur Annuler, puis dans le menu sur Fichier → Bases de données → Nouvelle base de données sur le client GTK ou Base de données sur votre navigateur.
Dans le premier champ Mot de passe administrateur, mettez openerp (ou le mot de passe attribué au rôle openerp sur le serveur PostgreSQL) ; si ca ne fonctionne pas, essayez avec "admin".
Dans le second champ Mot de passe administrateur, vous pouvez mettre le nouveau mot de passe que vous voulez, ce sera le mot de passe de l'utilisateur Administrateur dans la base de données que vous venez de créer. Le compte qui vous permettra de configurer OpenERP aux petits oignons.
Il devrait alors être possible d'ouvrir la base de données crée et de finir sa configuration.
Tout cela demanderait à être confirmé, justifié et peut-être encore simplifié…
Démarrage automatique d'openerp-server et openerp-web
openerp-server
Créer /etc/init.d/openerp-server
Mettre le script b:
#! /bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/local/bin/openerp-server #mettre ici votre programme ( exempel camorama) test -x $DAEMON || exit 0 case "$1" in start) #ici on écrit le machin pour démarrer le programme genre sleep 15 sudo su sebserveur -c /usr/local/bin/openerp-server ;; stop) killall openerp-server #ou rien ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}" exit 1 ;; esac exit 0
le rendre exécutable:
sudo chmod 755 /etc/init.d/openerp-server
mettre en exécution au démarrage (attention défaults risquerait de perturber d'autre service comme apache2):
sudo update-rc.d openerp-server defaults 98 02
openerp-web
Nous devrions pouvoir appliquer la même procédure… mais hélas il doit y avoir un problème d'ordre d'exécution avec openerp-server…
Je vous propose donc une autre méthode … avec crontab
sudo vi /etc/crontab
ajouté la ligne:
@reboot sebserveur /usr/local/bin/openerp-web
et le tour est joué
Environnement de production
Dans un environnement de production, on aimerait qu'OpenERP se lance automatiquement au démarrage de la machine.
Pour cela, il faut donc créer différents scripts de lancement.
Pour commencer, si ce n'est pas déjà fait, nous allons déplacer les sources des différents serveurs (OpenERP et Web) dans le /home/openerp
sudo mv openerp-server-X-Y /home/openerp
sudo mv openerp-web-X-Y /home/openerp
Ensuite, pour faciliter les mises à jour, nous allons créer des liens symboliques. Cela permettra de remplacer les sources sans avoir à modifier les scripts de démarrage.
sudo ln -s /home/openerp/openerp-server-X-Y /home/openerp/server
sudo ln -s /home/openerp/openerp-web-X-Y /home/openerp/web
Nous allons ensuite créer un dossier qui contiendra les logs du serveur OpenERP :
sudo mkdir /var/log/openerp; sudo chown -R openerp /var/log/openerp
Mise en place des différents scripts
Voici les différents fichiers à mettre en place : http://forum.ubuntu-fr.org/viewtopic.php?pid=3936858#p3936858
Problèmes connus
Installation du serveur sous Ubuntu 9.04 (Jaunty Jackalope)
Alternativement, il existe un script pour Ubuntu 9.04 : http://opensourceconsulting.wordpress.com/2009/06/29/openerp-server-5-0-openerp-web-5-0-1-installation-script-on-ubuntu-9-0-4-sh/
Commencer par installer les paquets openerp-server et python2.5.
Ensuite, lancer openerp-server depuis un terminal :
'openerp-server'
Vous obtenez ça :
ERROR: Import xpath module ERROR: Try to install the old python-xml package
Openerp5 utilise « python-xml », qui se trouve dans python2.5 (par exemple) et Ubuntu 9.04 utilise Python2.6 qui n'a pas ce fichier « python-xml ».
Depuis un terminal, vous devez :
Indiquer à openerp-server d'utiliser « python2.5 » en éditant le fichier /usr/bin/openerp-server . Remplacez
exec /usr/bin/python ./openerp-server.py
par
exec /usr/bin/python2.5 ./openerp-server.py
Créer un lien symbolique :
cd /usr/lib/python2.5/site-packages/oldxml/_xmlplus/utils/ sudo ln -s /usr/lib/python2.6/dist-packages/oldxml/_xmlplus//utils/boolean.so boolean.so
Si le dossier _xmlplus/utils n'existe pas, essayez de copier boolean.so au bon endroit :
cp /usr/lib/python2.6/dist-packages/oldxml/_xmlplus/utils/boolean.so /usr/lib/python2.5/site-packages/oldxml/_xmlplus/utils
Si tout s'est bien passé, en tapant openerp-server dans le terminal, vous obtenez ça :
[2009-05-16 19:31:16,607] INFO:server:version - 5.0.0 [2009-05-16 19:31:16,607] INFO:server:addons_path - /usr/lib/openerp-server/addons [2009-05-16 19:31:16,608] INFO:server:database hostname - localhost [2009-05-16 19:31:16,608] INFO:server:database port - 5432 [2009-05-16 19:31:16,609] INFO:server:database user – « votre login » [2009-05-16 19:31:16,609] INFO:objects:initialising distributed objects services [2009-05-16 19:31:18,139] INFO:web-services:starting XML-RPC services, port 8069 [2009-05-16 19:31:18,141] INFO:web-services:starting NET-RPC service, port 8070 [2009-05-16 19:31:18,142] INFO:web-services:the server is running, waiting for connections...
Openerp-server fonctionne.
Bases de données PostgreSQL
Avec une Ubuntu 9.04 française, il y a quelques problèmes d'installation et il n'est pas possible de créer de base openerp.
Il y a ici un bonne procédure concernant les problèmes de compatibilité python : doc opensourceconsulting
Une petite analyse des logs indique un problème de locale du coté de postgressql.
tail -f /var/log/openerp.log /var/log/postgresql/postgresql-8.3-main.log
Pour résoudre ce problème il faut faire passer postgresql en UTF8: (attention ça efface la base de données existante)
/etc/init.d/postgresql-8.3 restart rm -rf /var/lib/postgresql/8.3/main/* su - postgres
Tapez "entrée". L'administration se fait, au départ, avec l'utilisateur postgres, il ne possède pas de mot de passe: postgresql
/usr/lib/postgresql/8.3/bin/initdb --locale=fr_FR.UTF-8 -D /var/lib/postgresql/8.3/main/ cd /var/lib/postgresql/8.3/main ln -s /etc/postgresql-common/root.crt root.crt ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem server.crt ln -s /etc/ssl/private/ssl-cert-snakeoil.key server.key /etc/init.d/postgresql-8.3 restart tail -f /var/log/postgresql/postgresql-8.3-main.log
Vérifiez aussi /etc/default/locale→ remplacer "LANG=fr_FR" par "LANG=fr_FR.UTF-8"
dpkg-reconfigure locales
Effectuez un reboot.
Pour que la connexion du client se fasse, il faut créer un super-utilisateur dans postegresql avec le même nom que votre identifiant sous ubuntu:
sudo su postgres
puis votre MDP
createuser votre_identifiant_ubuntu -P
et un mot de passe (openerp ou autre). A la question
make votre_identifiant_ubuntu as superuser
répondre Y (yes).
Information issue de http://www.openerp.com/forum/topic13328.html?sid=37d92478f947a3abc3493525b3e52a01
Et consultez la doc: Créer un utilisateur PostgreSQL.
: — apparement la partie ci dessous n'est pas nécessaire lors de l'installation —
Éditez ensuite le fichier /etc/default/tinyerp-server pour y mettre le mot de passe de la base de données que vous venez de définir :
# Specify the database password (Default: not set). DATABASE_PASSWORD="votre_mot_de_passe"
Les modules
Par défaut, OpenERP contient tous les modules requis pour une gestion d'entreprise standard. Vous pouvez télécharger d'autres modules sur Launchpad.
Retours d'expérience
Voir la discussion "OpenERP - Vos réactions / expériences " sur le forum ubuntu-fr.
Voir aussi
- script d'installation automatique (ubuntu 9.04) pour openerp-server et client + webclient. Utilise les paquets officiels + patchs dont quelques passages sont repris dans cette page. En gros, ce script reprend le contenu de HowToforge - openerp - jaunty (mêmes posteurs…).
Contributeurs principaux : Quentin THEURET, CARTMELEON.