Le repo main contient les 4 projets suivants :
- Le backend : api (Flask)
- L'espace partenaire : pro (React)
- La documentation de l'API publique pour les partenaires techniques du pass Culture : doc
- La page de maintenance (HTML): maintenance-site
-
safe-chain # TODO: tester l'installation avec safe-chain
npm i -g @aikidosec/safe-chainsafe-chain setup- Redémarrer le terminal
-
Commitizen (CLI pour écrire des commits au bon format)
brew install commitizen
-
brew install gitleaks
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-maincd pass-culture-mainsudo ./pc symlinkpc install
Les README de chaque sous-projet détailleront leurs installations spécifiques.
Il est recommandé de lire les READMEs dans le paragraphe au dessus pour l'installation et le lancement
des serveurs. Cependant, si vous êtes à 5 minutes près, voici de brèves instructions pour lancer l'API et les différents frontends via le script pc, qui fait appel à docker compose.
Le script pc n'est pas essentiel au projet, il est toujours possible de lancer les serveurs directement en
utilisant les commandes python ou yarn.
Via docker et le script pc :
-
docker (testé avec 19.03.12)
-
docker compose (inclus avec Docker Desktop) (testé avec 1.26.2)
-
pc start-backendoupc start-backend --fastoupc start-proxy-backendoupc start-proxy-backend --fast -
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.
Un grand désavantage de passer par docker est la latence et la durée de création de l'image. On trouvera dans le README d'api d'autres manières de lancer le backend.
- 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 - Si vous avez besoin d'une adresse email spécifique pour l'admin local, par exemple pour le lien avec des services
externes, spécifiez l'email dans une variable
BACKOFFICE_LOCAL_USER_EMAILdans le fichier.env.local.secret.
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-backendpc sandbox -n industrial
La branche master est déployée sur testing toutes les heures.
Il est nécessaire d'avoir la CLI de github installée.
Pour déployer dans un environnement de preview, utilisez la commande pc deploy-preview (documentation complète dans le script pc)
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> psqlou
pc -e <testing|staging|production|integration> pgclipc psqlou
pc pgcliConnexion en ligne de commande python à un environnement (testing | staging | production | integration)
pc -e <testing|staging|production|integration> pythonIl 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 pythonpc -e <testing|staging|production|integration> -f myfile.extension bashEn local :
pc access-db-logsSur les autres environnements :
pc -e <testing|staging|production> access-db-logs