Find a file
Hicham a6b4cedcad
All checks were successful
/ build (push) Successful in 2m12s
Mettre à jour Node, NestJS et Vue
2025-11-08 12:20:14 +01:00
.forgejo/workflows Mettre à jour Node, NestJS et Vue 2025-11-08 12:20:14 +01:00
api Mettre à jour Node, NestJS et Vue 2025-11-08 12:20:14 +01:00
backup Linter la commande de pseudonomisation 2025-11-07 23:03:08 +01:00
client Mettre à jour Node, NestJS et Vue 2025-11-08 12:20:14 +01:00
.editorconfig Nettoyer le répertoire 2022-02-07 00:18:01 +01:00
.env.dist Deployer avec Forgejo 2025-11-07 23:03:08 +01:00
.env.production Deployer avec Forgejo 2025-11-07 23:03:08 +01:00
.env.staging Deployer avec Forgejo 2025-11-07 23:03:08 +01:00
.gitignore Deployer avec Forgejo 2025-11-07 23:03:08 +01:00
.nvmrc Mettre à jour Node, NestJS et Vue 2025-11-08 12:20:14 +01:00
blue-green-deploy.sh Mettre à jour le script de déploiement dans un environnement rootless 2025-01-24 11:53:13 +01:00
compose.override.yml Deployer avec Forgejo 2025-11-07 23:03:08 +01:00
compose.yml Mettre à jour Node, NestJS et Vue 2025-11-08 12:20:14 +01:00
example.env Mettre à jour les étapes de développement 2023-12-01 14:03:01 +01:00
package.json Nettoyer légèrement 2022-10-21 10:47:54 +02:00
README.md Mettre à jour les étapes de développement 2023-12-01 14:03:01 +01:00
souplotheque.code-workspace Ajouter des health checks 2025-06-06 16:39:33 +02:00
vetur.config.js Ajouter configuration Vetur 2022-08-27 15:34:35 +02:00

Cyclone Souplothèque

Application web pour la gestion des membres et de l'inventaire de la Souplothèque

Développement

Prérequis

  • Git
  • Un IDE (VSCodium par exemple)
  • Docker et Docker Compose

Cloner le dépôt

git clone git@git.sr.ht:~hicham/cyclone-souplotheque
# git clone https://git.sr.ht/~hicham/cyclone-souplotheque

Démarrer les services

cd cyclone-souplotheque
cp example.env .env
docker compose up

Cette commande aura pour effet de mettre en place un environnement avec les services suivants :

  • Une base de données (PostgreSQL)
  • Une API (NestJS)
  • Un client en mode "watch" (VueJS)
  • Un service de sauvegarde

L'application est disponible à l'adresse http://localhost:3001/


Guide pratique

Déploiement de l'application

Prérequis pour le déploiement

  1. Un serveur type VPS avec :
    1. Un accès SSH
    2. Le proxy inverse Traefik installé

      La configuration de Traefik pour l'application est définie dans les labels de l'API du fichier docker-compose.yml

      1. Une configuration de resolver pour générer des certificats HTTPS
      2. Un point d'entrée web
    3. rsync
  2. Un nom de domaine défini par la variable DOMAIN dans le fichier .env qui pointe vers le serveur VPS

Le déploiement est effectué par le CI de sourcehut. Les étapes sont définies dans le fichier .build.yml. Les étapes sont les suivantes :

  1. Compiler le client et l'API
  2. Pousser les artefacts vers le serveur voulu
  3. Reconstruire les containers Docker

Traefik s'occupe de rendre le container disponible sur le web et de générer un certificat HTTPS.

Modifier la structure d'une entité (Matériau, Membre, ...)

  1. Les entités sont définies dans les fichiers src/**/entities/*.entity.ts : modifier ces fichiers met à jour le modèle dans l'API

  2. Pour que ces changements soient aussi présents en base de données s'il s'agit d'une propriété à persister, il est nécessaire de créer une migration

    cd api
    # Définir des variables environnement avec les identifiants PostgreSQL
    export $(grep -v '^#' ../.env | xargs)
    # Créer une migration à partir des différences entre le schéma actuel et celui désiré
    npx mikro-orm migration:create --path src/migrations/