Correction

This commit is contained in:
Daniel Allaire 2026-03-13 12:12:54 -04:00
parent 8ba326bc18
commit d055b51132

View file

@ -27,11 +27,11 @@ sudo systemctl enable postgresql
sudo systemctl start postgresql
```
Créer l'utilisateur et la base :
Créer l'utilisateur et la base. **Choisissez votre mot de passe maintenant** — il sera réutilisé à l'étape 6 :
```bash
sudo -u postgres psql << 'SQL'
CREATE USER grpmed WITH PASSWORD 'CHANGEZ_CE_MOT_DE_PASSE';
CREATE USER grpmed WITH PASSWORD 'votre_mot_de_passe_ici';
CREATE DATABASE groupe_meditation OWNER grpmed;
GRANT ALL PRIVILEGES ON DATABASE groupe_meditation TO grpmed;
\c groupe_meditation
@ -39,10 +39,10 @@ GRANT ALL ON SCHEMA public TO grpmed;
SQL
```
Vérifier :
Vérifier que la connexion fonctionne avec le mot de passe choisi :
```bash
sudo -u postgres psql -c "SELECT version();"
PGPASSWORD='votre_mot_de_passe_ici' psql -U grpmed -h localhost -d groupe_meditation -c "SELECT 1;"
```
---
@ -108,38 +108,45 @@ sudo /opt/groupe-meditation/backend/venv/bin/pip install -r requirements.txt
## 6. Configurer le backend
```bash
cd /opt/groupe-meditation/backend
sudo cp .env.example .env
sudo nano .env
```
Modifier `.env` :
```
DATABASE_URL=postgresql+asyncpg://grpmed:VOTRE_MOT_DE_PASSE@localhost:5432/groupe_meditation
JWT_SECRET=COLLEZ_ICI_LA_SORTIE_DE_LA_COMMANDE_SUIVANTE
CORS_ORIGINS=["https://groupe-meditation.chezlepro.ca"]
INVITATION_EXPIRE_HOURS=48
```
Générer le secret JWT :
```bash
openssl rand -base64 48
```
Créer le `.env` :
```bash
cd /opt/groupe-meditation/backend
sudo cp .env.example .env
sudo nano .env
```
Modifier `.env` avec le **même mot de passe** que l'étape 1 :
```
DATABASE_URL=postgresql+asyncpg://grpmed:votre_mot_de_passe_ici@localhost:5432/groupe_meditation
JWT_SECRET=valeur_generee_ci-dessus
CORS_ORIGINS=["https://groupe-meditation.chezlepro.ca"]
INVITATION_EXPIRE_HOURS=48
```
**Important :** le mot de passe dans `DATABASE_URL` doit être identique à celui de l'étape 1. Si les deux ne correspondent pas, le seed et l'API échoueront avec `InvalidPasswordError`.
---
## 7. Initialiser la base de données (23 tables)
**Le seed doit être lancé depuis le dossier `backend/`** pour que le fichier `.env` soit trouvé :
```bash
cd /opt/groupe-meditation
sudo /opt/groupe-meditation/backend/venv/bin/python deploy/seed.py
cd /opt/groupe-meditation/backend
/opt/groupe-meditation/backend/venv/bin/python ../deploy/seed.py
```
Le script crée **interactivement** :
Si le `.env` n'est pas trouvé, le script utilisera les valeurs par défaut de `config.py` (qui ont un autre mot de passe) et la connexion échouera.
Le script crée **interactivement** :
- Les 23 tables
- Les 10 postes prédéfinis
- La répartition par défaut des contributions (30/30/30/10)
@ -246,13 +253,14 @@ curl -s https://groupe-meditation.chezlepro.ca/api/health | python3 -m json.tool
## Dépannage
| Problème | Commande |
|------------------------|-------------------------------------------------------------------------------|
| API ne démarre pas | `sudo journalctl -u groupe-meditation -f` |
| Problème | Commande |
|----------|----------|
| seed.py InvalidPasswordError | Vérifier que le seed est lancé **depuis `backend/`** et que le `.env` contient le bon mot de passe |
| API ne démarre pas | `sudo journalctl -u groupe-meditation -f` |
| Erreur base de données | `sudo -u postgres psql -d groupe_meditation -c "SELECT count(*) FROM groupes;"` |
| NGINX 502 | `sudo systemctl status groupe-meditation` |
| WeasyPrint échoue | `sudo apt install libpango-1.0-0 libpangocairo-1.0-0` |
| [seed.py](http://seed.py) ImportError | Vérifier les noms de classes dans `backend/app/models/` |
| NGINX 502 | `sudo systemctl status groupe-meditation` |
| WeasyPrint échoue | `sudo apt install libpango-1.0-0 libpangocairo-1.0-0` |
| seed.py ImportError | Vérifier les noms de classes dans `backend/app/models/` |
## Mise à jour de l'application
@ -270,4 +278,4 @@ sudo cp -r dist/* /var/www/groupe-meditation/
---
**Hébergé au Québec · 100% logiciel libre · Zéro traçage**
**Hébergé au Québec · 100% logiciel libre · Zéro traçage**