Skip to content

Déploiement sur pythonanywhere

Jean-Baptiste G edited this page Oct 15, 2020 · 7 revisions

Afin de déployer Libreosteo sur pythonanywhere, vous pouvez suivre cette petite procédure.

VirtualEnv

Commencez par créer un environnement virtuel dans lequel Libreosteo sera exécuté. Pythonanywhere donne de précieux conseils à ce sujet Ensuite télécharger le zip de la version que vous souhaitez sur le serveur. Vous pouvez utiliser wget pour ce faire.

wget -c https://github.com/libreosteo/Libreosteo/archive/v0.6.0.tar.gz

Décompresser le tout dans un dossier nommé Libreosteo. A la racine seront placés les éléments d'indexation et la base sqlite3 si vous souhaitez utiliser une base sqlite. Sinon connectez le tout à votre serveur PostgreSQL.

Installation des dépendances

placez vous dans le répertoire Libreosteo et activez l'environnement virtualenvs avec workon.

Lancez la commande :

pip install -r requirements/requirements.txt

Puis installer les librairies javascript nécessaires :

yarn

Mettre à jour la base de données python manage.py migrate

WSGI

Il faut à présent configurer le serveur Http afin d'utiliser notre application en connectant le middleware WSGI du serveur hébergé sur pythonanywhere à notre application. Pour cela il faut éditer le WSGI de votre webapp définie dans Pythonanywhere avec :

import os
import sys
path = '/home/myuser/Libreosteo'
if path not in sys.path:
    sys.path.append(path)

from Libreosteo.wsgi import application

En utilisant le wsgi fourni, les settings django sont directement configuré pour la version démonstration web en utilisant le fichier Libreosteo/settings/demonstration.py

Ainsi la base sqlite et l'indexation whoosh seront à la racine (dans le répertoire parent de Libreosteo) vous pouvez ainsi mettre à jour la version sans écraser votre base.

python manage.py migrate --settings Libreosteo.settings.demonstration

Déployer les ressources statiques

Pour déployer les ressources statiques sur le serveur, deux opérations sont nécessaires :

  • rassembler toutes les ressources de l'application

  • publier les ressources dans le serveur HTTP comme ressources statiques

    python manage.py collectstatic

puis ajouter l'url /static/' en pointant sur le dossier /home//Libreosteo/static/` dans l'interface d'administration de votre webapp.

Installer sur une base postgresql

Pour l'utilisation avec une base postgresql de Libreosteo, il suffit d'ajouter un fichier nommé local.py au chemin : Libreosteo/settings/ à côté de base.py contenant la configuration postgresql correspondante (changer nom de la base, utilisateur, hôte et port):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'libreosteo-db',
        'USER': 'user-db',
        'HOST': 'localhost',
        'PORT': 5432,
    }
}

Ajouter également le package psycopg2 :

pip install psycopg2

et enfin refaire la migration :

python ./manage.py migrate

Décharge de responsabilité

Vous êtes responsables du traitement de l'information des patients. Si vous hébergez Libreosteo en dehors de votre cabinet (chez un hébergeur tel que pythonanywhere, gandi.net, ovh, etc.), n'oubliez pas de mettre en place un certificat SSL valide afin de chiffrer les communications entre votre navigateur au cabinet et le serveur. Deplus changez le SECRET_KEY en positionnant dans demonstration.py ou dans vos settings une passphrase utilisée pour la sécurisation des échanges.

Vous pouvez vous aider de ce gist pour générer une passphrase : https://gist.github.com/mattseymour/9205591