Hébergement et maintenance de endi.opteos.fr

From Documentation Optéos

Informations techniques sur l’instance de l’application web Open Source enDI endi.opteos.fr, utilisée pour l’accompagnement des entrepreneur⋅e⋅s chez Optéos et hébergée sur le serveur d’Optéos. L’application s’appelait Autonomie en 2018-2019.

Responsables de l’application :

Informations sur l’instance enDI endi.opteos.fr[edit | edit source]


Les informations ci-dessous ne concerne plus l’instance enDI endi.opteos.fr depuis le 22 octobre 2021, date de la migration de cette instance sur le service d’hébergement de Gaston Tjebbes.


Configuration du serveur web nginx[edit | edit source]

Fichier /home/endi/endi.opteos.fr/config/endi.opteos.fr.nginx.conf (fichier complet) :

  • Taille maximale des données (client_max_body_size) : 20 Mo


Les fichiers des journaux (logs) des requêtes HTTP sont disponibles dans le répertoire /home/endi/endi.opteos.fr/log/http/.

Le certificat SSL est géré avec le service Let’s Encrypt et l’outil certbot pour le domaine principal endi.opteos.fr (et la redirection du domaine autonomie.opteos.fr). Il est renouvelé automatiquement tous les deux mois.

Mise à jour d’enDI[edit | edit source]


# su - endi
$ cd ~/endi.opteos.fr/endi/
$ systemctl --user stop opteos_endi@1.service
$ systemctl --user stop opteos_endi_celery_worker@1.service
$ systemctl --user stop opteos_endi_celery_beat@1.service
$ workon endi
$ wipeenv # si besoin, supprimer les anciennes dépendances
$ git status
$ git diff
$ git stash # si besoin, remiser les anciennes modifications de code
$ git pull
$ git checkout 6.1.19
$ pip install -r requirements.txt
$ python setup.py install
$ endi-migrate production.ini upgrade
$ endi-admin production.ini syncdb
$ npm --prefix js_sources install
$ make prodjs
$ systemctl --user start opteos_endi@1.service
$ systemctl --user start opteos_endi_celery_worker@1.service
$ systemctl --user start opteos_endi_celery_beat@1.service

Accéder à l’application : https://endi.opteos.fr/.

Sauvegarde des données[edit | edit source]

Toutes les données (fichiers et base de données) de enDI sont sauvegardées quotidiennement, la nuit, en même temps que toutes les données du serveur s.opteos.fr, par le serveur distant serious.ficusnode.com (Gandi). Une interface est disponible pour consulter et restaurer les données https://backup.ficusnode.com/ accessible par Benjamin D., Simon et Sébastien.

Bogues et demandes à faire remonter à l’équipe de développement d’enDI[edit | edit source]

Bogues[edit | edit source]

  • v6.1.19 Le formulaire de sélection des années pour filtrer les données ne tient compte que des années où il y a eu des factures (get_invoice_years), mais nous n’utilisons pas la gestion commerciale sur enDI. Ainsi, seuls les années 2019 (facture de test en brouillon) et 2021 s’affichent. Ticket sur le Framagit (carte Trello)
  • v* Les fichiers temporaires tmp* dans le répertoire /tmp, les fichiers temporaires de téléversement de fichiers du répertoire endi/tmp/tempdir et les fichiers de sessions .cache ne sont pas nettoyés au fur et à mesure. Le répertoire endi/data/sessions/ contient 142345 fichiers ! Ticket sur le Framagit
  • v6.1.19 Problème de tri des documents sociaux. Ticket sur le Framagit

Demandes[edit | edit source]

  • Le pôle Accompagnement a besoin de pouvoir attribuer de nouveaux droits spécifiques « Peut créer des rendez-vous » et « Peut créer des ateliers » à un entrepreneur, sans qu’il soit accompagnateur. Sujet sur le forum
  • Le statut d’un entrepreneur n’est pas mis à jour en fonction d’une étape si elle est indiqué avec une date future. Sujet dans le forum et Ticket sur le framagit
  • Un utilisateur ne peut pas avoir plusieurs rôles (« entrepreneur de la coopérative » et « est membre de l’équipe d’appui »). En fait si : Sujet sur le forum
  • Le pôle Administratif (Charles) a besoin générer facilement les fichiers ODT pour Pôle Emploi (à préciser).
  • Le pôle Administratif (Fatima) a besoin de visualiser rapidement les documents (PDF ?), sans les télécharger (à préciser).

Post-mortems[edit | edit source]

Date Problème Résolution
10/05/2021

17/05/2021 …30/06/2021

Indisponibilité de plusieurs fonctionnalités (impossible de créer un RDV d’accompagnement)

2021-05-10 14:21:20,805 ERROR Exception when serving /activities/4051 ([waitress.service:341]) Traceback (most recent call last): [...] MySQLdb._exceptions.OperationalError: (2006, 'MySQL server has gone away')
2021-05-10 16:08:53,607 ERROR Exception when serving /activities ([waitress.service:341]) Traceback (most recent call last): [...] sqlalchemy.exc.InvalidRequestError: Can't reconnect until invalid transaction is rolled back

Redémarrer les instances de enDI. Tentative de modification de la configuration de SQLAlchemy sans effet : sqlalchemy.pool_recycle=3600
sqlalchemy.pool_size=5
sqlalchemy.pool_pre_ping=True

Augmentation du niveau de journalisation des évènements de l’application (WARN > INFO)
Mise en place d’un redémarrage quotidien de l’application : 57 2 * * * /home/endi/restart_endi.sh