Correction
This commit is contained in:
parent
8ba326bc18
commit
d055b51132
1 changed files with 37 additions and 29 deletions
|
|
@ -27,11 +27,11 @@ sudo systemctl enable postgresql
|
||||||
sudo systemctl start 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
|
```bash
|
||||||
sudo -u postgres psql << 'SQL'
|
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;
|
CREATE DATABASE groupe_meditation OWNER grpmed;
|
||||||
GRANT ALL PRIVILEGES ON DATABASE groupe_meditation TO grpmed;
|
GRANT ALL PRIVILEGES ON DATABASE groupe_meditation TO grpmed;
|
||||||
\c groupe_meditation
|
\c groupe_meditation
|
||||||
|
|
@ -39,10 +39,10 @@ GRANT ALL ON SCHEMA public TO grpmed;
|
||||||
SQL
|
SQL
|
||||||
```
|
```
|
||||||
|
|
||||||
Vérifier :
|
Vérifier que la connexion fonctionne avec le mot de passe choisi :
|
||||||
|
|
||||||
```bash
|
```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
|
## 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 :
|
Générer le secret JWT :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
openssl rand -base64 48
|
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)
|
## 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
|
```bash
|
||||||
cd /opt/groupe-meditation
|
cd /opt/groupe-meditation/backend
|
||||||
sudo /opt/groupe-meditation/backend/venv/bin/python deploy/seed.py
|
/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 23 tables
|
||||||
- Les 10 postes prédéfinis
|
- Les 10 postes prédéfinis
|
||||||
- La répartition par défaut des contributions (30/30/30/10)
|
- 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
|
## Dépannage
|
||||||
|
|
||||||
| Problème | Commande |
|
| Problème | Commande |
|
||||||
|------------------------|-------------------------------------------------------------------------------|
|
|----------|----------|
|
||||||
| API ne démarre pas | `sudo journalctl -u groupe-meditation -f` |
|
| 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;"` |
|
| Erreur base de données | `sudo -u postgres psql -d groupe_meditation -c "SELECT count(*) FROM groupes;"` |
|
||||||
| NGINX 502 | `sudo systemctl status groupe-meditation` |
|
| NGINX 502 | `sudo systemctl status groupe-meditation` |
|
||||||
| WeasyPrint échoue | `sudo apt install libpango-1.0-0 libpangocairo-1.0-0` |
|
| 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/` |
|
| seed.py ImportError | Vérifier les noms de classes dans `backend/app/models/` |
|
||||||
|
|
||||||
## Mise à jour de l'application
|
## 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**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue