Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ac03e359f | ||
|
|
340aa2a3c0 |
79
README.md
79
README.md
@@ -1,50 +1,63 @@
|
|||||||
# Projet Ferme
|
# Projet Ferme t
|
||||||
|
|
||||||
## Installation du projet
|
## Installation du projet
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
Pour windows, il faut installer le WSL2, Ubuntu, docker et nvm.
|
Pour windows, il faut installer le WSL2, Ubuntu, docker et nvm.
|
||||||
Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/windows)
|
Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/windows)
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
Pour linux, il faut installer docker et nvm.
|
Pour linux, il faut installer docker et nvm.
|
||||||
Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/linux)
|
Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/linux)
|
||||||
|
|
||||||
### Installation du projet
|
### Installation du projet
|
||||||
|
|
||||||
Une fois les prérequis installés, il suffit de cloner le projet et de lancer les commandes suivantes
|
Une fois les prérequis installés, il suffit de cloner le projet et de lancer les commandes suivantes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make start
|
make start
|
||||||
make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
Dans le cas ou le `make start` plante à cause du port de la bdd, il faut modifier **POSTGRES_PORT** dans le fichier .env.docker.local, remplacer le par un port disponible.
|
Dans le cas ou le `make start` plante à cause du port de la bdd, il faut modifier **POSTGRES_PORT** dans le fichier .env.docker.local, remplacer le par un port disponible.
|
||||||
|
|
||||||
### Configuration global
|
### Configuration global
|
||||||
|
|
||||||
Pour les variables d'environnement, il faut demander un .env.local pour le backend et un .env pour le frontend à votre collègue.
|
Pour les variables d'environnement, il faut demander un .env.local pour le backend et un .env pour le frontend à votre collègue.
|
||||||
|
|
||||||
Vérifier que dans le .env.local, vous avez :
|
Vérifier que dans le .env.local, vous avez :
|
||||||
* APP_SECRET (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));" et doit être différent de celui de votre collègue, puisque utilisé pour signer des tokens)
|
|
||||||
* DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}?serverVersion=16&charset=utf8"
|
- APP_SECRET (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));" et doit être différent de celui de votre collègue, puisque utilisé pour signer des tokens)
|
||||||
* PONT_BASCULE_BYPASS (doit être à true en dev)
|
- DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}?serverVersion=16&charset=utf8"
|
||||||
* PONT_BASCULE_URL
|
- PONT_BASCULE_BYPASS (doit être à true en dev)
|
||||||
* JWT_SECRET_KEY (à générer avec la commande php bin/console lexik:jwt:generate-keypair)
|
- PONT_BASCULE_URL
|
||||||
* JWT_PUBLIC_KEY
|
- JWT_SECRET_KEY (à générer avec la commande php bin/console lexik:jwt:generate-keypair)
|
||||||
* JWT_PASSPHRASE (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));")
|
- JWT_PUBLIC_KEY
|
||||||
* COOKIE_SECURE=0 (en dev 0 et en prod 1. Si c'est du http, laisser en 0)
|
- JWT_PASSPHRASE (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));")
|
||||||
|
- COOKIE_SECURE=0 (en dev 0 et en prod 1. Si c'est du http, laisser en 0)
|
||||||
|
|
||||||
Vérifier que dans le .env du dossier frontend, vous avez :
|
Vérifier que dans le .env du dossier frontend, vous avez :
|
||||||
* NUXT_PUBLIC_API_BASE="http://localhost:8080/api"
|
|
||||||
|
- NUXT_PUBLIC_API_BASE="http://localhost:8080/api"
|
||||||
|
|
||||||
### Configuration xdebug
|
### Configuration xdebug
|
||||||
|
|
||||||
Pour configurer xdebug, il faut ajouter un serveur sur phpstorm. <br>
|
Pour configurer xdebug, il faut ajouter un serveur sur phpstorm. <br>
|
||||||
Pour cela, il faut aller dans **Settings > PHP > Servers** <br>
|
Pour cela, il faut aller dans **Settings > PHP > Servers** <br>
|
||||||
* Name : ferme-docker
|
|
||||||
* Host : localhost
|
- Name : ferme-docker
|
||||||
* Port : 8080
|
- Host : localhost
|
||||||
* Path : File/Directory -> l'endroit où est stocké votre projet et le path -> /var/www/html
|
- Port : 8080
|
||||||
|
- Path : File/Directory -> l'endroit où est stocké votre projet et le path -> /var/www/html
|
||||||
|
|
||||||
Pour que xdebug fonctionne sur windows, il faut modifier la variable **XDEBUG_CLIENT_HOST** par votre ip local
|
Pour que xdebug fonctionne sur windows, il faut modifier la variable **XDEBUG_CLIENT_HOST** par votre ip local
|
||||||
|
|
||||||
## Utilisation du projet
|
## Utilisation du projet
|
||||||
|
|
||||||
### Backend
|
### Backend
|
||||||
|
|
||||||
L'api est disponible sur http://localhost:8080/api
|
L'api est disponible sur http://localhost:8080/api
|
||||||
Pour la bdd toutes les infos sont dans le fichier **docker/.env.docker.local**
|
Pour la bdd toutes les infos sont dans le fichier **docker/.env.docker.local**
|
||||||
Vous pouvez modifier le port si nécessaire.
|
Vous pouvez modifier le port si nécessaire.
|
||||||
@@ -53,17 +66,22 @@ La bdd est déja pré-configuré dans PhpStorm, il suffit de rentrer les infos d
|
|||||||
C'est un bdd local dans le docker.
|
C'est un bdd local dans le docker.
|
||||||
|
|
||||||
### Frontend
|
### Frontend
|
||||||
|
|
||||||
Pour le frontend, il suffit de taper la commande suivante qui va lancer le serveur de dev
|
Pour le frontend, il suffit de taper la commande suivante qui va lancer le serveur de dev
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make dev-nuxt
|
make dev-nuxt
|
||||||
```
|
```
|
||||||
|
|
||||||
Le front sera accessible sur http://localhost:3000
|
Le front sera accessible sur http://localhost:3000
|
||||||
|
|
||||||
### Authentification
|
### Authentification
|
||||||
|
|
||||||
Ce projet utilise l'authentification JWT avec un cookie httpOnly (LexikJWTAuthenticationBundle).
|
Ce projet utilise l'authentification JWT avec un cookie httpOnly (LexikJWTAuthenticationBundle).
|
||||||
Le frontend ne lit jamais directement le token, le navigateur envoie automatiquement le cookie.
|
Le frontend ne lit jamais directement le token, le navigateur envoie automatiquement le cookie.
|
||||||
|
|
||||||
### Login flow
|
### Login flow
|
||||||
|
|
||||||
- Frontend envoie les identifiants à:
|
- Frontend envoie les identifiants à:
|
||||||
- `POST /api/login_check`
|
- `POST /api/login_check`
|
||||||
- Backend returns:
|
- Backend returns:
|
||||||
@@ -73,20 +91,26 @@ Le frontend ne lit jamais directement le token, le navigateur envoie automatique
|
|||||||
- La déconnexion utilise `POST /api/logout` et redirige vers `/login`.
|
- La déconnexion utilise `POST /api/logout` et redirige vers `/login`.
|
||||||
|
|
||||||
### Fixtures
|
### Fixtures
|
||||||
|
|
||||||
Pour lancer les fixtures (Attention sa purge la bdd complètement)
|
Pour lancer les fixtures (Attention sa purge la bdd complètement)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
php bin/console doctrine:fixtures:load
|
php bin/console doctrine:fixtures:load
|
||||||
```
|
```
|
||||||
|
|
||||||
Attention cette commande est dangereuse, à utiliser que pour les débuts de la prod ou en recette.
|
Attention cette commande est dangereuse, à utiliser que pour les débuts de la prod ou en recette.
|
||||||
Dans un premier temps pour remplir les listes, vous pouvez lancer la commande symfony
|
Dans un premier temps pour remplir les listes, vous pouvez lancer la commande symfony
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
php bin/console app:seed
|
php bin/console app:seed
|
||||||
```
|
```
|
||||||
|
|
||||||
La commande va faire une update ou une création en fonction des data existante.
|
La commande va faire une update ou une création en fonction des data existante.
|
||||||
|
|
||||||
## Livraison en recette
|
## Livraison en recette
|
||||||
|
|
||||||
### Préparatifs
|
### Préparatifs
|
||||||
|
|
||||||
Avant de déployer, il faut penser à ajouter les variables d'env s'il y a des changements/modifications.
|
Avant de déployer, il faut penser à ajouter les variables d'env s'il y a des changements/modifications.
|
||||||
Le .env se trouve /var/www/ferme/.env
|
Le .env se trouve /var/www/ferme/.env
|
||||||
|
|
||||||
@@ -95,43 +119,62 @@ Sur la machine, il est disponible dans /usr/local/bin/deploy-ferme <br>
|
|||||||
Pour le modifier, il faut copier le contenu du deploy-release.sh dans le deploy-ferme
|
Pour le modifier, il faut copier le contenu du deploy-release.sh dans le deploy-ferme
|
||||||
|
|
||||||
### Livraison
|
### Livraison
|
||||||
|
|
||||||
Sur le serveur de recette, il suffit d'utiliser cette commande pour livrer
|
Sur le serveur de recette, il suffit d'utiliser cette commande pour livrer
|
||||||
```bash
|
|
||||||
|
```bash
|
||||||
/usr/local/bin/deploy-ferme vX.Y.Z
|
/usr/local/bin/deploy-ferme vX.Y.Z
|
||||||
```
|
```
|
||||||
|
|
||||||
## Commandes utiles
|
## Commandes utiles
|
||||||
|
|
||||||
Pour restart le container
|
Pour restart le container
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make restart
|
make restart
|
||||||
```
|
```
|
||||||
|
|
||||||
Pour lancer les TU
|
Pour lancer les TU
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make test
|
make test
|
||||||
```
|
```
|
||||||
|
|
||||||
Pour accéder au container et lance des commandes
|
Pour accéder au container et lance des commandes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make shell
|
make shell
|
||||||
```
|
```
|
||||||
|
|
||||||
Pour clear le cache Symfony
|
Pour clear le cache Symfony
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make cache-clear
|
make cache-clear
|
||||||
```
|
```
|
||||||
|
|
||||||
Faire une migration
|
Faire une migration
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make migration-migrate
|
make migration-migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
Pour générer un password pour un user
|
Pour générer un password pour un user
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make shell
|
make shell
|
||||||
php bin/console security:hash-password
|
php bin/console security:hash-password
|
||||||
```
|
```
|
||||||
|
|
||||||
Sélectionner entity User, taper sont mdp, le copier et l'ajouter dans l'insert de bdd suivant :
|
Sélectionner entity User, taper sont mdp, le copier et l'ajouter dans l'insert de bdd suivant :
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
INSERT INTO "user" (username, roles, password)
|
INSERT INTO "user" (username, roles, password)
|
||||||
VALUES ('Mon user', '["ROLE_USER"]', 'Mon mdp hashé');
|
VALUES ('Mon user', '["ROLE_USER"]', 'Mon mdp hashé');
|
||||||
```
|
```
|
||||||
|
|
||||||
## Gestion des logs
|
## Gestion des logs
|
||||||
|
|
||||||
Pour suivre les logs en temps réel :
|
Pour suivre les logs en temps réel :
|
||||||
* tail -f var/log/dev.log
|
|
||||||
* tail -f var/log/prod.log
|
- tail -f var/log/dev.log
|
||||||
|
- tail -f var/log/prod.log
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
parameters:
|
parameters:
|
||||||
app.version: '0.0.81'
|
app.version: '0.0.83'
|
||||||
|
|||||||
Reference in New Issue
Block a user