Comment installer OpenConcerto en multi-postes sur un NAS Synology ?

Nous avons récemment installé OpenConcerto (https://www.openconcerto.org) dans notre entreprise et c’est votre serviteur qui s’y est collé.

OpenConcerto c’est quoi et pourquoi ce choix ?

OpenConcerto est un ERP sous environnement JAVA. Entendez par là, un logiciel qui vous permet de gérer votre entreprise. Il gère à la fois votre CRM (Customer Relation Manager = Gestionnaire de relations Clients), la comptabilité, la gestion commerciale, et pleins d’autres fonctions. Dans notre société, nous avions déjà mis en place notre propre ERP sous environnement WEB (LNMP = Linux + NGinx + MariaDb + PHP) permettant les fonctions de CRM et de suivis des stocks mais il nous manquait l’implémentation de la gestion commerciale et de la comptabilité. Auparavant, notre gestion commerciale ne nécessitait pas d’énorme ressource, nous faisions une gestion par documents avec un suivi simple par listing des fichiers. Cela prenait plus de temps pour la création des documents mais le volume de documents générés (Devis, Bon de commande, Factures, …) était encore compatible avec notre activité. Pour la comptabilité, nous la sous-traitions…

Oui mais voilà ! Les affaires commençaient à augmenter et notre gestion commerciale « à la papa » devenait assez fastidieuse à maintenir. De plus, notre expert-comptable nous avait laissé entendre que nous devions prochainement nous équiper d’un logiciel qui permette la certification des factures (selon une loi de finances 2016 Française qui a été simplifiée depuis). Comme il faut mieux anticiper un changement plutôt que de le subir, nous entreprîmes de nous moderniser via un logiciel. Ma volonté était d’avoir un logiciel open source mais très orienté « entreprises ».

Ayant dans une vie passée déjà utilisé des logiciels de gestions commerciales comme SAGE Gestion commerciale et CIEL et comment dire… avoir était pris pour une pompe à fric, nous avons donc fais le tour des logiciels pour TPE/PME en gardant à l’esprit de rester dans des coûts « raisonnables ». Ainsi, le choix économique était notre premier critère de sélection. Nous étions prêt à investir jusqu’à 1000 € une fois pour toute ! (pas de location déguisée avec des contrats SAV fantômes). Notre deuxième critère était la possibilité de travailler de n’importe où avec une connexion internet assez rapide (minimum ADSL) et en multi-utilisateurs. Et le tout avec une très grande fiabilité !

Comme nous avons uniquement un NAS Synology qui nous sert de serveur de fichier, je désirais, au préalable, installer cette solution logiciel sur un environnement Linux. Je n’ai rien contre Micro$oft mais généralement les solutions logicielles proposées pour ce système d’exploitation oblige à payer, encore et encore… Je savais donc qu’il allait falloir se retrousser les manches pour l’installation et l’utilisation. De plus, il nous fallait une communauté d’utilisateurs assez importante et active en cas de pépins ou de questions.

C’est ainsi que nous sommes tombés un peu par hasard sur la solution logicielle apportée par OpenConcerto. Un argument de poids : ce logiciel est complètement gratuit. De plus, comme il peut fonctionner sous Linux : tout est gratuit ! Cerise sur le gateau, le logiciel a été créé et est maintenu par des Français (société ILM Informatique, basée dans la Somme (80) à Abbeville). J’ai déjà eu besoins de leurs compétences et cela aide d’avoir un éditeur de logiciel qui possède la même langue maternelle que la sienne.
J’en resterai là pour la présentation du logiciel. Ce n’est pas le thème de cet article et je vous invite de l’installer en suivant le reste de ce tuto pour l’essayer.

Téléchargements d’OpenConcerto et des fichiers nécessaires

Rendez-vous sur la page de téléchargement d’OpenConcerto : https://www.openconcerto.org/fr/telechargement.html. La version présente, au moment de la rédaction de ce tuto est la version 1.5. Une version 1.5.1 doit sortir dans les jours qui viennent pour être compatible avec la fameuse loi de finances 2016. Ainsi, remplissez le formulaire d’ILM puis téléchargez les différents fichiers (ou cliquez sur les liens ci-dessous) :

Pour la suite, vous pouvez aussi télécharger les modèles de documents ainsi que le logiciel de gestion des bases de données postgreSQL, pgAdmin.

Installation sur NAS Synology et configurations du moteur.

Installation du moteur de la base de donnée

openConcerto utilise principalement le moteur postgreSQL. Même si vous pouvez aussi utiliser le moteur MySql (ou MariaDb) ou D2, le moteur postgreSQL est très rapide et est natif au NAS synology (il est déjà fonctionnel) : pas besoin de l’installer !

Accès au NAS Synology en ligne de code.

Pour accéder au NAS Synology, il vous faut l’interroger via un logiciel en mode SSH. Si vous savez déjà comment faire, vous pouvez suivre le reste de l’article. Sinon, j’ai publié récemment un article pour savoir comment faire : https://www.aureuswebfactory.fr/comment-acceder-a-un-nas-synology-en-ligne-de-code-en-ssh-via-putty/

Configuration du moteur postgreSQL

Après vous êtes connecté à votre NAS Synology, il vous faut basculer vers l’utilisateur root. Ainsi, tapez :

admin@NomDeVotreNas:~$ sudo -i
Note : Le mot de passe est celui de l’utilisateur Admin.

Rendez-vous dans le dossier /etc/postgresql/ en tapant :

root@NomDeVotreNas:~# cd /etc/postgresql/

Modification du fichier postgresql.conf

On fait une copie de sauvegarde du fichier que nous allons modifier via :

root@NomDeVotreNas:/etc/postgresql/# cp postgresql.conf postgresql_original_20171225.conf

J’ai mis une date quelconque. Le but est de copier-coller le fichier avec un nom différent afin de corriger un problème éventuel. Peu importe le nom que vous choisissez.

On édite le fichier postgresql.conf :

root@NomDeVotreNas:/etc/postgresql/# vi postgresql.conf
Putty - Fichier postgresql.conf

Putty – Fichier postgresql.conf

On peut voir que le moteur postgresql est configuré par défaut pour n’écouter que le NAS Synology par l’adresse IP 127.0.0.1 Il n’attendra donc que des connexions que depuis le NAS.
Il faudra donc changer l’écoute en modifiant listen_adresses = ‘127.0.0.1’ en listen_adresses=’*’, l’étoile voulant dire « toutes les adresses IP ». Pour cela, appuyer sur la touche i qui vous permet d’entre en mode insertion puis modifier le fichier ainsi :

Putty - postgresql.conf modifié

Putty – Fichier postgresql.conf modifié

Remarque : j’ai commenté la ligne originale en utilisant le caractère dièse # pour revenir sur la modification originale au cas où.

Tapez sur la touche « Echap » pour sortir du mode insertion puis tapez :w et :q pour enregistrer puis quitter vi.

Note : le logiciel vi possède de nombreuses options. Je vous invite à les consulter sur le wiki de cette fonction.

Modification du fichier pg_hba.conf.

La seconde étape est la modification du fichier pg_hba.conf. Il est localisé dans le même dossier que le fichier précédent. On commence comme décrit auparavant à faire une copie de sauvegarde du fichier.

root@NomDeVotreNas:/etc/postgresql/# cp pg_hba.conf pg_hba_original_20171225.conf

Puis on l’édite avec vi :

root@NomDeVotreNas:/etc/postgresql/# vi pg_hba.conf
Putty - pg_hba.conf

Putty – pg_hba.conf original

Le fichier s’apparente à une liste des bases de données, des adresses IP, des utilisateurs qui seront autorisés à utiliser l’environnement postgreSQL.
La documentation d’openConcerto demande à autoriser tous les utilisateurs sur toutes les bases de données via la méthode de hashage md5 ie. host all all 192.168.1.0/24 md5.

Remarque : Je pars du principe où vos adressages IP commencent par 192.168.1.XXX. Cependant, si vous adresses IP sont de types 192.168.28.XXX, il faudra remplacer l’instruction précédente par host all all 192.168.28.0/24 md5.

Ainsi après avoir appuyer sur i pour entrer dans le mode insertion de vi, vous obtiendrez (pensez à séparer les blocs d’instructions par une tabulation) :

Putty - Fichier pg_hba.conf modifié

Putty – Fichier pg_hba.conf modifié

Note : Vous pouvez aussi ici mettre les adresses IP configurées pour des connexions VPN. Ainsi si vos adresses IP en mode VPN sont de types 10.0.0.XXX. Vous pouvez ajouter l’instruction host all all 10.0.0.0/24 md5. Cela vous permettra, après vous être connecté en VPN, d’utiliser OpenConcerto de pratiquement n’importe où si le débit de vos connexions internet (montantes et descendantes) sont raisonnablement suffisantes.
Putty - Fichier pg_hba.conf modifié avec VPN

Putty – Fichier pg_hba.conf modifié avec VPN

Tapez sur la touche « Echap » pour sortir du mode insertion puis tapez :w et :q pour enregistrer puis quitter vi.

Création de la base de données OpenConcerto

Pour créer la base de données openConcerto, il vous faut :

  1. Mettre le « dump » de la base de données OpenConcerto-1.5.sql que vous avez téléchargé sur votre NAS Synology. L’idéal est de le mettre dans le dossier /etc/postgresql. Il faudra aussi mettre l’utilisateur postgres propriétaire de ce fichier
  2. Basculer en utilisateur postgres.
  3. Lancer les instructions de création de base de données avec l’utilisateur postgres.
  4. Redémarrer le moteur postgresql.

Copie du fichier OpenConcerto-1.5.sql dans le dossier /etc/postgresql.

Pour ma part, j’ai utilisé DSM FileStation du NAS Synology pour décompresser le fichier OpenConcerto-1.5.sql.zip que j’ai téléchargé dans le dossier /homes/home/user et copié-collé le fichier via putty dans le dossier /etc/postgresql.
Vous pouvez aussi le télécharger et le décompresser directement dans le dossier /etc/postgresql depuis putty via les commandes (téléchargement puis décompression)  :

root@NomDeVotreNas:/etc/postgresql/# wget https://www.openconcerto.org/fr/telechargement/1.5/OpenConcerto-1.5.sql.zip
root@NomDeVotreNas:/etc/postgresql/# 7z x OpenConcerto-1.5.sql.zip

Par sécurité, on modifie les permissions des 2 fichiers précédemment générés pour qu’ils ne soient utilisables que par l’utilisateur propriétaire.

root@NomDeVotreNas:/etc/postgresql/# chmod 600 OpenConcerto-1.5.sql
root@NomDeVotreNas:/etc/postgresql/# chmod 600 OpenConcerto-1.5.sql.zip

Ensuite on modifie le propriétaire et le groupe du fichier OpenConcerto-1.5.sql.

root@NomDeVotreNas:/etc/postgresql/# chown postgres:postgres OpenConcerto-1.5.sql

Basculement vers l’utilisateur postgres et début de création.

On bascule vers l’utilisateur postgres :

root@NomDeVotreNas:/etc/postgresql/# sudo -i -u postgres

Les instructions suivantes se font selon la fonction psql, il vous suffit de taper  :

postgres@NomDeVotreNas:/etc/postgresql/~$ psql

L’affichage change et vous obtenez maintenant :

psql (9.3.14)
Type "help" for help

postgres=# 

Création de l’utilisateur openconcerto.

Il faut maintenant créer un utilisateur appelé openconcerto qui possède le mot de passe openconcerto. Je sais, ce n’est pas très original, mais c’est la documentation d’OpenConcerto.org qui le demande…

postgres=# CREATE USER "openconcerto" UNENCRYPTED PASSWORD 'openconcerto';
Note : N’oubliez pas le point-virgule « ; » à la fin de l’instruction. En effet, vous êtes dans psql qui est un environnement de script dont les instructions doivent se terminer par le point-virgule.

Création de la base de données.

Dès que l’utilisateur openconcerto est créé, on créé la base de données « OpenConcerto » et on lui accorde les privilèges d’utilisations.

postgres=# CREATE DATABASE "OpenConcerto" OWNER "openconcerto";
postgres=# GRANT ALL PRIVILEGES ON DATABASE "OpenConcerto" to "openconcerto";

Remplissage de la base de données.

On sort d’abord de psql :

postgres=# \q

On se sert maintenant du fichier OpenConcerto-1.5.sql téléchargé et décompressé plus haut afin de remplir la base de données par une base de données vierge.

postgres@NomDeVotreNas:~$ psql OpenConcerto < /etc/postgresql/OpenConcerto-1.5.sql
Avertissement : Pas de point virgule pour cette instruction car vous êtes sortis de la fonction psql !

Redémarrage  du moteur postgreSQL

Il faut redémarrer le moteur postgresql :

postgres@NomDeVotreNas:~$ synoservicecfg --restart pgsql
Avertissement : Précédemment, il fallait utiliser la commande suivante : pg_ctl -m fast restart, afin de redémarrer le moteur postgreSQL.
Néanmoins, lors d’une dernière mise à jour de Synology, cette commande a été remplacée et elle indiquait que le moteur ne pouvait pas être arrêté.De plus, à chaque mise à jour majeure de Synology, les fichiers postgresql.conf et pg_hba.conf seront écrasés et le dossier /etc/postgresql complètement remplacé. Ne stockez pas vos sauvegardes dans ce dossier, elles seront tout bonnement effacées !

Enfin, récemment, malgré la modification des deux fichiers précédent et le redémarrage du moteur postgreSQL, il m’était impossible d’utiliser les bases de données postgreSQL.
Les différents logiciels les utilisant, dont OpenConcerto, m’indiquait que l’adresse ou le port 5432 devaient indisponibles.
En regardant dans les fichiers LOG, localisé dans /var/log/synoservicecfg.log, je me suis aperçu que le processus gérant postgreSQL, appellé pgsql n’était pas chargé. Je l’ai donc lancé via la commande suivante : synoservicecfg –start pgsql.

 

Il vous faut maintenant sortir de putty :

postgres@NomDeVotreNas:~$ exit
root@NomDeVotreNas:/etc/postgresql/# exit
admin@NomDeVotreNas:~$ exit

Configuration du logiciel OpenConcerto

Dès lors que l’environnement postgreSQL est créé, il vous faut créer la liaison entre le logiciel OpenConcerto et votre serveur NAS Synology. Ainsi, entrez les valeurs suivantes dans la configuration d’OpenConcerto :

  • Fichier de Configuration : Dépend de votre environnement (ici Ubuntu 17.10) mais laissez l’instruction par défaut
  • Type : PostgreSQL
  • Adresse du serveur : 192.168.1.1 (adresse de votre serveur NAS Synology)
  • Port : 5432 (port par défaut du moteur postgreSQL)
  • Base de données : OpenConcerto
Openconcerto - configuration postgreSQL

Openconcerto – configuration postgreSQL

Vous n’avez plus qu’à appuyer sur « Tester la connexion » et normalement cela devrait être terminé.