diff --git a/backend/src/index.ts b/backend/src/index.ts index 9869acb..6c72ec3 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -4,7 +4,7 @@ import cors from 'cors'; import helmet from 'helmet'; import path from 'path'; import fs from 'fs'; -import { Pool } from 'pg'; +import bcrypt from 'bcryptjs'; import { config } from './config'; import { db, testConnection } from './db'; @@ -55,6 +55,23 @@ async function runMigration(): Promise { console.log('✅ Migration terminée'); } +async function runInitUsers(): Promise { + const users = [ + { name: 'Greg', email: process.env.GREG_EMAIL || 'greg@example.com', password: process.env.GREG_PASSWORD || 'changeme' }, + { name: 'Gaël', email: process.env.GAEL_EMAIL || 'gael@example.com', password: process.env.GAEL_PASSWORD || 'changeme' }, + ]; + for (const user of users) { + const hash = await bcrypt.hash(user.password, 12); + await db.query( + `INSERT INTO users (name, email, password_hash) + VALUES ($1, $2, $3) + ON CONFLICT (email) DO NOTHING`, + [user.name, user.email, hash] + ); + console.log(` ✅ Utilisateur prêt : ${user.name} <${user.email}>`); + } +} + async function waitForDb(maxAttempts = 30, delayMs = 2000): Promise { for (let i = 1; i <= maxAttempts; i++) { try { @@ -93,6 +110,7 @@ async function start() { try { await waitForDb(); await runMigration(); + await runInitUsers(); console.log('✅ Base de données prête'); } catch (err: any) { console.error('⚠️ Initialisation DB échouée (non bloquant):', err.message); diff --git a/docker-compose.yml b/docker-compose.yml index 4884db1..4a71a78 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: POSTGRES_USER: notesfrais POSTGRES_PASSWORD: 9a3dabd70bb1e09f09962a95bdaffbeacdc56eeee029334b volumes: - - pgdata2:/var/lib/postgresql/data + - pgdata3:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U notesfrais -d notesfrais"] interval: 5s @@ -31,6 +31,10 @@ services: APP_SECRET: bbec693632ddd25adeefaddfa64a3e8e1245a97f530cb492f1d3f496ae3a1936 UPLOADS_DIR: /app/uploads FRONTEND_URL: https://frais.domench.fr + GAEL_EMAIL: waltergael@1dotech.com + GAEL_PASSWORD: Changeme123! + GREG_EMAIL: greg@domench.fr + GREG_PASSWORD: Changeme123! volumes: - uploads:/app/uploads depends_on: @@ -74,5 +78,5 @@ networks: external: true volumes: - pgdata2: + pgdata3: uploads: