• TypeScript 65.8%
  • Vue 30.8%
  • Handlebars 1.2%
  • Shell 1%
  • SCSS 0.7%
  • Other 0.4%
Find a file
Hicham 726e12c2db
All checks were successful
/ build (push) Successful in 1m37s
Épingler les versiond de mikro-orm
2026-04-02 19:16:09 +02:00
.forgejo/workflows Retirer le flag rsync verbose 2026-03-30 21:08:27 +02:00
api Épingler les versiond de mikro-orm 2026-04-02 19:16:09 +02:00
backup Linter la commande de pseudonomisation 2025-11-07 23:03:08 +01:00
client Épingler les versiond de mikro-orm 2026-04-02 19:16:09 +02: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 Corriger la génération de types dans Docker en local 2026-03-30 18:41:26 +02:00
compose.yml Installer les dépendances de production en CI plutôt qu'au démarrage du conteneur 2026-03-30 20:51:31 +02: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/