Le repo main
contient les 5 projets suivants :
- l'api (Flask)
- le portail pro (React), pour les acteurs culturels
- adage-front (React, TS), application frontend pour les rédacteurs de projets scolaires
- doc : documentation de l'API pour les partenaires du pass Culture
- maintenance-api : page de maintenance (HTML)
Installation
Installer les bibliothèques
-
Docker
- docker (testé avec 19.03.12)
- docker-compose (testé avec 1.26.2)
-
NVM (Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
-
- Lancer
nvm install
dans/pro
et/adage-front
- Lancer
-
npm install --global yarn
(NPM)- autres méthodes dans la doc de Yarn
-
GPG (outil de (dé)chiffrement)
- GPG Suite (MacOS)
sudo apt install gpg
(Linux)
-
Commitizen (CLI pour écrire des commits au bon format)
pip install -U commitizen
oubrew install commitizen
-
Pour MacOS spécifiquement
- CoreUtils:
brew install coreutils libxmlsec1
- CoreUtils:
-
Pour Linux spécifiquement
- L'API a besoin des paquets suivants, à installer avec
sudo apt install python3-dev libpq-dev xmlsec1 libpango-1.0-0 libpangoft2-1.0-0
pour les distributions Ubuntu
- L'API a besoin des paquets suivants, à installer avec
Installer les CLI
Installer l'ensemble des projets
Il vous faudra une clé SSH sur votre profil GitHub pour pouvoir cloner le repository.
git clone git@github.com:pass-culture/pass-culture-main.git pass-culture-main
cd pass-culture-main
./pc symlink
pc install
Les README de chaque sous-projet détailleront leurs installations spécifiques.
Lancer les applications
Voici de brèves instructions pour lancer l'API et les différents frontends via le script pc
, qui fait appel à
docker-compose. On trouvera dans le README d'api
d'autres
manières de lancer le backend.
api
pc start-backend
pc sandbox -n industrial
(pour peupler la DB)
pro
pc start-pro
http://localhost:3001/
devrait être lancé et fonctionnel- Connectez-vous avec
pctest.admin93.0@example.com
(admin) oupctest.pro93.0@example.com
(non-admin)
adage-front
pc start-adage-front
http://localhost:3002/
devrait être lancé et fonctionnel- Connectez-vous avec un token valide en le passant en query param (pour générer un token valide, générez-le via le helper de test dans l'API)
Flask Admin
- lancer
api
oupro
- se connecter avec les identifiants d'un compte admin, par exemple
pctest.admin93.0@example.com
- visiter
http://localhost/pc/back-office/
Le mot de passe des utilisateurs de la sandbox dans un environnement de développement est : user@AZERTY123
L'environnement de test déployé dans le cloud (testing) utilise un mot de passe secret par souci de protection des données manipulées lors des tests ; en interne, le mot de passe « PRO - testing » est disponible dans le coffre-fort de l'équipe.
Ces utilisateurs existent également pour le 97, en remplaçant 93
par 97
.
Backoffice v3
pc start-backoffice
http://localhost:5001/backofficev3/
devrait être lancé et fonctionnel- Cliquez sur Se connecter via Google
- Vous arriverez alors sur la page d'accueil du BO v3, en tant qu'utilisateur admin
admin@passculture.local
Commandes utiles
- Rebuild :
pc rebuild-backend
(reconstruire l'image docker sans cache) - Restart :
pc restart-backend
(effacer la base de données, et relancer tous les containers) - Reset :
pc reset-sandbox-db
: si vos serveurs de dev tournent, et que vous souhaitez juste réinitialiser la dbpc reset-reco-db
: (si vous voulez juste enlever les recommandations et bookings créés en dev par votre navigation)
- Restore :
pc restore-db file.pgdump
(restaurer un fichier de dump postgresql (file.pgdump) en local)
Troubleshooting:
Si la commande sandbox renvoie des erreurs que je n'arrive pas à résoudre, on peut essayer de supprimer et reconstruire
sa BDD locale via pc restart-backend
. Sinon:
- stopper les images lancées
docker rm -f pc-postgres
<= suppression containerdocker volume rm pass-culture-main_postgres_data
<= suppression donnéespc start-backend
pc sandbox -n industrial
Déploiement
Déployer dans l'environnement Testing
Le déploiement se lance automatiquement lors d'un merge sur la branche master
Pré-requis : installer jq
Déployer dans les environnements Staging, Production et Integration
Le déploiement se fait à partir d'actions github (notamment release--build
, release--deploy.yml
, release--build.yml
, release--build-hotfix.yml
) et est documenté sur Notion (article Tag-MES-et-MEP).
Pour connaître le numéro de version de l'api déployé :
https://backend.staging.passculture.team/health/api
https://backend.passculture.app/health/api
Administration
Connexion à la base postgreSQL d'un environnement
pc -e <testing|staging|production|integration> psql
ou
pc -e <testing|staging|production|integration> pgcli
Connexion à la base postgreSQL en local
pc psql
ou
pc pgcli
Configuration de Metabase
pc start-metabase
Lance Metabase et une base de données contenant les données sandbox du produit. Pour supprimer les volumes avant de lancer Metabase, utiliser la commande :
pc restart-metabase
L'url pour aller sur Metabase en local est : http://localhost:3002/
Pour configurer Metabase, il suffit de créer un compte admin, puis de se connecter à la base produit. Pour cela, il faut renseigner les informations suivantes :
- Host : pc-postgres-product-metabase
- Port : 5432
- Database name : pass_culture
- Database username : pass_culture
- Database password : passq
Connexion en ligne de commande python à un environnement (testing | staging | production | integration)
pc -e <testing|staging|production|integration> python
Téléverser un fichier
Il est également possible d'uploader un fichier dans l'environnement temporaire à
l'emplacement /tmp/uploads/myfile.extension
pc -e <testing|staging|production|integration> -f myfile.extension python
pc -e <testing|staging|production|integration> -f myfile.extension bash
Accéder aux logs des bases de données
En local :
pc access-db-logs
Sur les autres environnements :
pc -e <testing|staging|production> access-db-logs