Installation
Ce guide est réservé aux développeurs-euses
Même si l'installation est simple, il est recommandé d'avoir quelques notions de programmation.
Il existe plusieurs façons de créer votre propre instance. Que ce soit en local sur votre machine ou sur un serveur distant, ce guide présente une installation à réaliser sur Linux. Une installation sur Mac OS X est similaire mais nécessite quelques adaptations. Une installation sur un système Windows n'a pas été testée.
Installation locale : Pour une installation locale, installez l'application uniquement via environnement virtuel.
Installation sur un serveur distant : En production, installez l'application uniquement en mode production. Vous devez louer ou créer votre serveur Linux. Pour plus de simplicité, nous recommandons d'utiliser une instance Cloud. Par exemple chez Scaleway. Accédez ensuite à votre serveur via SSH.
Récupérer le dépôt
Si vous n'avez pas Git
sudo apt install git
Puis
git clone https://github.com/AtelierSoude/OpenRepairPlatform.git
Entrez dans le dossier
cd OpenRepairPlatform
Variables d'environnement
Avant toute opération, renseignez les variables Django, Postgres et Nginx dans openrepairplatform/.env
POSTGRES_USER=CHANGE_ME
POSTGRES_PASSWORD=CHANGE_ME
POSTGRES_DB_NAME=CHANGE_ME
DJANGO_SETTINGS_MODULE=openrepairplatform.settings.dev
SECRET_KEY=CHANGE_ME
EMAIL_PASSWORD=CHANGE_ME
EMAIL_HOST_USER=CHANGE_ME
EMAIL_HOST=CHANGE_ME
DOMAIN_NAME=CHANGE_ME
Attention
En mode développement sous environnement virtuel, les variables POSTGRES_USER, POSTGRES_PASSWORD & DOMAIN_NAME ne sont pas utilisées. Rendez-vous à la section Mode développement : Environnement Virtuel pour savoir pourquoi
Que signifient ces variables ?
Variables POSTGRES
POSTGRES_USER: Nom d'utilisateur de la base de donnée POSTGRES.
POSTGRES_PASSWORD: Mot de passe de l'utilisateur de la base de donnée POSTGRES.
POSTGRES_DB_NAME: Nom de la base de donnée POSTGRES.
Variables DJANGO
DJANGO_SETTINGS_MODULE: openr.....settings.dev ou .prod
SECRET_KEY=CHANGE_ME: Renseignez une chaîne de caractère aléatoire
Variables d'e-mailing
Des emails automatiques sont envoyés. Utilisez une adresse e-mail du type "no-reply@example.com"
EMAIL_PASSWORD: Le mot de passe de l'adresse email
EMAIL_HOST_USER: L'adresse mail
EMAIL_HOST=CHANGE_ME: l'adresse IMAP utilisée
Variable NGINX
DOMAIN_NAME: Le nom de votre domaine
Après avoir renseigné ces variables, vous pourrez lancer votre instance en mode production ou développement.
Mode production : Docker-compose
Installez Docker-compose
sudo apt install docker-compose
Se placer dans le dossier deployment
cd deployment
Lancer le l'application avec docker-compose :
docker-compose up -d
Si vous lancer l'application pour la première fois, il vous faudra générer un certificat https let'sencrypt, afin de protéger les utilisateurs se connectant à votre site, au moyen du script situé ci-dessous (situé également dans le dossier deployment). Il génèra un certificat https en résolvant un challenge décrit par le protocole acme. Il faut pour cela que vous ayez configurer au préalable votre DNS pour que le nom de domaine que vous ayez choisi (ex mon_super_atelier.fr) pointe sur l'adresse ip de votre machine, veillez à configurer une entrée DNS ipv4 et ipv6. Pour résoudre ce challenge, le port 80 de votre machine doit être exposé. Il peut être bloquer par le firewall de votre machine et/ou d'un équipement réseau local (ex routeur), bien penser à autoriser le trafique ipv4 et ipv6. Il faudra veiller également à ouvrir le port 443 pour permttre aux utilisateurs de se connecter à votre plateforme.
./init-letsencrypt.sh
Danger
Attention, ce script n'est actuellement pas encore disponible. Vous pouvez cependant fournir un certificat let'sencrypt existant qui sera renouveler automatiquement
Toutes les données de l'application sont situées dans ./deployment/openrepairplatform_data
. Vous pouvez changer cela en éditant le fichier ./deployment/docker-compose.yml
Vous pouvez désormais naviguez sur le site via votre nom de domaine et passer au guide de premier lancement.
Mode développement : Environnement Virtuel
Pré-requis
Mettez à jour
sudo apt update
Installez ces paquets
sudo apt install python3-dev psycog2 python3-pip postgresql postgresql-contrib setuptools libxml2-dev
POSTGRES
Lancez postgres
postgres -d /usr/local/pgsql/data
Par défaut, en développement, l'application tente de se connecter à POSTGRES en utilisant le compte de l'utilisateur courant et sans mot de passe. C'est pourquoi les variables d'environnements POSTGRES_USER & POSTGRES_PASSWORD ne sont pas utilisées.
Créez la base de données (le même nom que celui entré dans le fichier .env)
createdb POSTGRES_DB_NAME
Environnement virtuel et dépendances Installez virtualenv
pip install --user virtualenv
Créez un environnement virtual (dans le dossier racine)
virtualenv venv
source bin/activate
Installez les dépendances PIP du projet
pip install -r requirements_dev.txt
Lancement de l'application
Premier lancement
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver
Info
Pour lancer l'application vous devez systématiquement activer votre environnement virtuel au préalable.
Ensuite, pour démarrer le service les prochaines fois (avec le serveur POSTGRES lancé)
./manage.py runserver
Vous pouvez désormais naviguer sur le site à l'adresse 127.0.0.1:8000 et passer au guide de premier lancement.