Nous accueillons les contributions de tous les développeurs volontaires à notre base de code, sous la forme de pull requests.
- Dépendences
- Clôner les sources
- Installation
- Variables d'environnement
- Installer le dump de la BDD
- Démarrer le serveur
- Démarrer PG Admin
- Configuration sous OSX
L'application est codée avec le language Elixir et utilise le framework Phoenix et stocke ses données dans une base PostgreSQL. NodeJS est nécessaire pour générer le front.
En outre, elle utilise wkhtmltopdf pour générer des documents PDF ainsi que la librairie Goon.
Phoenix est un framework très inspiré de Ruby On Rails.
Aussi, FROM_RAILS.md rassemble quelques équivalents pour ceux qui viennent de ce monde.
Avril est aussi composée de 2 applications front qui utilisent le framework nuxt.js basée sur NodeJS et VueJS.
Avril est présentement composée de 3 applications indépendantes dont le code est enregistré dans 3 repos séparés :
Il est nécessaire de cloner ces repos dans le même dossier racine et de ne pas les renommer.
cd ~/Workspace # votre dossier de travail
git clone [email protected]:StartupsPoleEmploi/avril.git && \
git clone [email protected]:StartupsPoleEmploi/avril-profil.git && \
git clone [email protected]:StartupsPoleEmploi/avril-livret1.git
S'il est techniquement possible d'installer directement les dépendences sur sa machine, il est désormais indispensable d'utiliser Docker et Docker Compose pour une installation accélérée. En effet, l'ensemble des dépendances sus-citées sont installées grâce au Dockerfile.
Une fois docker-compose
installé, il ne reste plus qu'à faire docker-compose build
.
Dupliquer le fichier .env.example
en .env
. Récupérer les clés API des différents services utilisés (Mailjet).
Télécharger un dump de la BDD si accès à la prod :
docker-compose exec postgres bash -c 'pg_dump -h $POSTGRES_HOST -d $POSTGRES_DB -U $POSTGRES_USER -F c -f /pg-dump/latest.dump'
La commande est disponible dans le script suivant à exécuter depuis sa machine distante :
backup_remote.sh
.
Copier le dump dans [/db/dumps](../db/dumps)
pour qu'il soit accessible dans un docker.
Celui-ci sera automatiquement restore lors du premier lancement du container postgres
, à condition que le dossier db/data
soit effectivement vide.
Sinon la commande manuelle sera, une fois le container postgres
lancé :
docker-compose exec postgres bash -c 'pg_restore --verbose --clean --no-acl --no-owner -h $POSTGRES_HOST -d $POSTGRES_DB -U $POSTGRES_USER /pg-dump/latest.dump'
La commande est disponible dans le script suivant :
backup_restore.sh
.
Une fois que l'on a:
./avril/<Ce Repo>
./avril/.env
./avril/docker-compose.override.yml
./avril/db/dumps/latest.dump
./avril/db/data/<VIDE>
./avril-profil/<Le repo avril-profil>
./avril-livret1/<Le repo avril-livret1>
il est temps de démarrer le serveur avec :
docker-compose up
Les différents services démarrent, et l'application est disponible à l'adresse : http://localhost
PG Admin est un programme GUI qui permet d'inspecter simplement le contenu de sa base de donnée. La dernière version est un client web à 100%, aussi, il est dockerisé pour plus de facilité.
Il est conseillé de l'ajouter dans son environnement local via le fichier docker-compose.override.yml
(dupliquer docker-compose.override.example.yml
)
docker-compose up -d pgadmin
si le container n'est pas démarré puis accessible via http://localhost:8080.
Les logins utilisés sont ceux définis dans .env
:
[email protected]
PGADMIN_DEFAULT_PASSWORD=password
Une fois connecté, vous pouvez a minima accéder à la BDD locale via la config suivante :
Name : Avril Local
Host name : postgres
Port : 5432
Username : postgres
Password :