Bienvenue dans le repository contenant le backend du projet tutoré !
- node installer, versions supportés : 18
- npm ou yarn, yarn de péference car plus performant
- disposer d'un seveur de base de donnée postgrsql en local ou en ligne
git clone https://github.com/Neighbook/Backend.git
docker-compose up
yarn install
Si vous n'avez pas yarn installer le en global avec la commande npm install -g yarn
Si vous n'avez pas npm installer le en global avec la commande sudo apt install npm
Pour configurer les variables d'environnement, vous pouvez soit les definir dans un fichier .env
a la racine du projet, soit les definir dans votre environement d'os.
Pour plus d'information sur les variables d'environnement, voir la section Les variables d'environnement de l'api
Exemple de fichier .env
:
LOGGING_LEVEL="debug"
DATABASE_HOST="localhost"
DATABASE_USER="postgres"
POSTGRES_PASSWORD="postgres"
DATABASE_PASSWORD="postgres"
DATABASE_SERVICE_USER="users"
DATABASE_SERVICE_SOCIAL="social"
DATABASE_SERVICE_MESSAGE="messagerie"
DATABASE_SERVICE_MARKETPLACE="marketplace"
DATABASE_PORT="5432"
MINIO_ENDPOINT="localhost"
MINIO_PUBLIC_URL=http://localhost:9000
MINIO_PORT=9000
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=miniominio
DATABASE_SYNCHRONIZE="true"
DATABASE_USE_SSL="true"
API_HOST="localhost"
API_PORT="3000"
Cette commande n'est plus necessaire avant d'executer la commande de lancement du serveur en dev.
yarn swagger-gendoc
yarn dev
- dev
: lancer le serveur d'application en mode dev (avec nodemon) et recompiler le projet a chaque modification ainsi que la documentation swagger
Les variables d'environnement sont lu depuis votre environement d'os, pour les definir sur windows vous pouvez utiliser la commande set
et sur linux export
pour definir une variable d'environnement.
Exemple :
export API_NAME="Neighbook API"
Toutes les variables d'environnement sont optionnelles, si aucune variable n'est definie, les valeurs par defaut seront utilisées.
Nom de la variable | Description | Valeur par defaut |
---|---|---|
API_NAME | Nom de l'api | "api" |
API_VERSION | Version de l'api | "1.0.0" |
API_DESCRIPTION | Description de l'api | "api" |
API_PORT | Port d'ecoute de l'api | 3000 |
API_HOST | Host d'ecoute de l'api | "localhost" |
API_BASE_PATH | Chemin de base de l'api | "/" |
API_SCHEMES | Schema d'acces a l'api | "http" |
API_SWAGGER | Activer ou non swagger | true |
API_SWAGGER_PATH | Chemin d'acces a la documentation swagger | "/api-docs" |
API_SWAGGER_JSON_PATH | Chemin d'acces au fichier json de la documentation swagger | "/api-docs.json" |
API_SWAGGER_UI_PATH | Chemin d'acces a l'interface de la documentation swagger | "/api-docs-ui" |
JWT_SECRET_KEY_NAME | Nom de clé secrete pour la signature des token JWT | "jwtsecret" |
JWT_TOKEN_EXPIRATION_TIME | Durée de vie des token | "2 days" |
JWT_TOKEN_ISSUER | Nom de l'issuer des token JWT | "neighbook-api" |
JWT_TOKEN_AUDIENCE | Nom de l'audience des token JWT | "neighbook-api" |
ARGON2_SECRET_KEY_NAME | Nom de la clé secrete pour le hashage des mots de passe | "argon2secret" |
DATABASE_DIALECT | Type de base de données | "postgres" |
DATABASE_HOST | Host de la base de données | "localhost" |
DATABASE_PORT | Port de la base de données | 5432 |
DATABASE_SERVICE_USER | Non de la base de donnee du service user | "pguser" |
DATABASE_USER | Nom d'utilisateur de la base de données | "postgres" |
DATABASE_PASSWORD | Mot de passe de la base de données | "postgres" |
LOGGING_LEVEL | Niveau de log | "info" |
LOGGING_FORMAT | Format de log | "dev" |
LOGGING_DATE_FORMAT | Format de date de log | "iso" |
LICENCE_NAME | Nom de la licence | "MIT" |
LICENCE_URL | URL de la licence | "https://spdx.org/licenses/MIT.html" |