Le repo main
contient les 4 projets suivants :
- l'api (Flask)
- le portail pro (React), pour les acteurs culturels
- doc : documentation de l'API pour les partenaires du pass Culture
- maintenance-api : page de maintenance (HTML)
-
Docker
- docker (testé avec 19.03.12)
- docker compose (inclus avec Docker Desktop) (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
- 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
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.
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.
pc start-backend
pc sandbox -n industrial
(pour peupler la DB)
Le backend est accessible sur http://localhost:5001/, il est possible d'en tester le fonctionnement par la route http://localhost:5001/health/api.
- http://localhost:5002/ devrait être lancé et fonctionnel après
pc start-backend
, une fois qu'api répond - Cliquez sur Se connecter via Google
- Vous arriverez alors sur la page d'accueil du BO, en tant qu'utilisateur admin
admin@passculture.local
, avec toutes les permissions
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)
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
.
D'autres informations sont disponibles sur le README de Pro
- 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) - Restore :
pc restore-db file.pgdump
(restaurer un fichier de dump postgresql (file.pgdump) en local)
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
Le déploiement se lance automatiquement lors d'un merge sur la branche master
Pré-requis : installer jq
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
pc -e <testing|staging|production|integration> psql
ou
pc -e <testing|staging|production|integration> pgcli
pc psql
ou
pc pgcli
Connexion en ligne de commande python à un environnement (testing | staging | production | integration)
pc -e <testing|staging|production|integration> python
Il est également possible d'uploader un fichier dans l'environnement temporaire à
l'emplacement /usr/src/app/myfile.extension
pc -e <testing|staging|production|integration> -f myfile.extension python
pc -e <testing|staging|production|integration> -f myfile.extension bash
En local :
pc access-db-logs
Sur les autres environnements :
pc -e <testing|staging|production> access-db-logs