PnlTracker
Développeur

Référence technique

Installation locale, commandes Prisma, migrations de schéma et sécurité pour PnlTracker.

PnlTracker s'appuie sur PostgreSQL pour le stockage des données et sur Docker pour la mise en production. Ce guide couvre le développement local et le déploiement en production.

Prérequis

  • Docker et Docker Compose installés
  • Node.js ≥ 20 et pnpm
  • Fichier .env configuré

Développement local

1. Démarrer PostgreSQL

docker compose -f ./docker-compose.dev.yml up -d

2. Configurer les variables d'environnement

cp .env.example .env

Ou via le script fourni :

Linux/mac
./env-create-dev.sh
Windows
./env-create-dev.ps1

3. Générer les clients Prisma

rm -rf generated
pnpm prisma generate --schema=prisma/auth/schema.prisma
pnpm prisma generate --schema=prisma/data/schema.prisma

4. Initialiser la base de données

./scripts/reinit.sh
Cette commande supprime les données existantes. À n'utiliser que lors de la première installation ou si vous souhaitez repartir de zéro.

5. Lancer l'application

npm run dev

L'application est accessible sur http://localhost:3000.

Identifiants par défaut : admin@mail.fr / admin

Arrêter la base de données

docker compose -f docker-compose.dev.yml down

Commandes utiles

Prisma

# Ouvrir Prisma Studio
pnpm prisma studio --schema=prisma/auth/schema.prisma

Tests

# Exécuter tous les tests
pnpm test

# Exécuter un fichier spécifique
pnpm test tests/mt5-parser.test.ts

Docker

# Voir les logs
docker compose logs -f [service]

# Redémarrer un service
docker compose restart [service]

# Nettoyer les volumes inutilisés
docker volume prune

Sécurité

En production

  • Changez POSTGRES_PASSWORD par un mot de passe fort.
  • Changez JWT_SECRET par une clé aléatoire longue.
  • N'exposez pas le port PostgreSQL (5432) publiquement.
  • Utilisez HTTPS avec un reverse proxy (Nginx, Caddy, Traefik).
  • Limitez les connexions PostgreSQL par IP si possible.

En développement

  • Ne jamais commiter le fichier .env.
  • Utilisez des mots de passe différents entre dev et prod.
  • N'utilisez pas la même clé JWT entre les environnements.

Migrations de schéma

PnlTracker utilise un système de migrations incrémentales pour la base de données multi-tenant (données utilisateurs). Cela permet d'ajouter ou modifier des colonnes sans perdre les données existantes.

Créer une migration

  1. Sauvegarder le schéma actuel
cp prisma/data/schema.prisma prisma/data/schema.prev.prisma.bak
  1. Modifier le schéma dans prisma/data/schema.prisma, puis régénérer :
pnpm prisma generate --schema=prisma/data/schema.prisma
  1. Générer le script SQL
pnpm prisma migrate diff \
  --from-schema-datamodel prisma/data/schema.prev.prisma.bak \
  --to-schema-datamodel prisma/data/schema.prisma \
  --script | sed 's/"public"\."/"SCHEMA_PLACEHOLDER"."/g' \
  > scripts/migrations/XXX-description.sql
  1. Enregistrer la migration dans scripts/migrations/migrations.json
scripts/migrations/migrations.json
{
  "migrations": [
    {
      "version": 2,
      "name": "XXX-description",
      "description": "Description de la migration",
      "file": "XXX-description.sql",
      "date": "YYYY-MM-DD"
    }
  ]
}
Les migrations sont appliquées automatiquement à chaque connexion utilisateur. Il suffit de redémarrer le serveur pour qu'elles soient prises en compte.
Testez toujours une migration sur une base de développement avant de l'appliquer en production, et effectuez une sauvegarde préalable.
Copyright © 2026