From c987ef3f421c3fd6fadc60a56aa202f3051e9296 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sat, 13 Jun 2026 21:44:47 +0200 Subject: [PATCH] fix: DATA_DIR env var pour chemins logos/icons (dev vs Docker) --- .env.example | 1 + backend/src/routes/referentiel.js | 5 ++++- backend/src/server.js | 7 +++++-- docker-compose.yml | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 390888b..a7be19c 100644 --- a/.env.example +++ b/.env.example @@ -11,6 +11,7 @@ # JWT_EXPIRES_IN=7d # DB_PATH=./data/crowdlending.db # UPLOAD_DIR=./uploads +# DATA_DIR=../data # chemin vers le dossier data/ (relatif au dossier backend/ ou absolu) # --- Production (Docker) --- NODE_ENV=production diff --git a/backend/src/routes/referentiel.js b/backend/src/routes/referentiel.js index 00fc6ad..14adb9b 100644 --- a/backend/src/routes/referentiel.js +++ b/backend/src/routes/referentiel.js @@ -10,7 +10,10 @@ import { createZip, readZip } from '../utils/zip.js'; import { HttpError } from '../middleware/errorHandler.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const logosDir = path.resolve(__dirname, '../../data/logos'); +const dataDir = process.env.DATA_DIR + ? path.resolve(process.env.DATA_DIR) + : path.resolve(__dirname, '../../../data'); // fallback dev : 3 niveaux au-dessus de routes/ +const logosDir = path.join(dataDir, 'logos'); fs.mkdirSync(logosDir, { recursive: true }); // ── Traitement image (réutilisé depuis plateformes.js) ───────────────────── diff --git a/backend/src/server.js b/backend/src/server.js index 3f36df4..7e2875f 100644 --- a/backend/src/server.js +++ b/backend/src/server.js @@ -51,9 +51,12 @@ app.use(express.json({ limit: '5mb' })); app.use(morgan('dev')); // ── Logos plateformes — servis sans authentification ───────────────────── -const logosDir = path.resolve(__dirname, '../data/logos'); +const _dataDir = process.env.DATA_DIR + ? path.resolve(process.env.DATA_DIR) + : path.resolve(__dirname, '../../data'); // fallback dev : 2 niveaux au-dessus de src/ +const logosDir = path.join(_dataDir, 'logos'); app.use('/api/logos', express.static(logosDir, { maxAge: '1d', fallthrough: false })); -const iconsDir2 = path.resolve(__dirname, '../data/icons'); +const iconsDir2 = path.join(_dataDir, 'icons'); app.use('/api/icons-files', express.static(iconsDir2, { maxAge: '1h', fallthrough: false })); // Basic rate-limit on auth endpoints diff --git a/docker-compose.yml b/docker-compose.yml index 0b7f7a8..798ba73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,7 @@ services: PORT: 4000 DB_PATH: /app/data/crowdlending.db UPLOAD_DIR: /app/uploads + DATA_DIR: /app/data volumes: - ../../volumes/crowdlending/data:/app/data - ../../volumes/crowdlending/uploads:/app/uploads