fix: DATA_DIR env var pour chemins logos/icons (dev vs Docker)
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
# JWT_EXPIRES_IN=7d
|
# JWT_EXPIRES_IN=7d
|
||||||
# DB_PATH=./data/crowdlending.db
|
# DB_PATH=./data/crowdlending.db
|
||||||
# UPLOAD_DIR=./uploads
|
# UPLOAD_DIR=./uploads
|
||||||
|
# DATA_DIR=../data # chemin vers le dossier data/ (relatif au dossier backend/ ou absolu)
|
||||||
|
|
||||||
# --- Production (Docker) ---
|
# --- Production (Docker) ---
|
||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
|
|||||||
@@ -10,7 +10,10 @@ import { createZip, readZip } from '../utils/zip.js';
|
|||||||
import { HttpError } from '../middleware/errorHandler.js';
|
import { HttpError } from '../middleware/errorHandler.js';
|
||||||
|
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
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 });
|
fs.mkdirSync(logosDir, { recursive: true });
|
||||||
|
|
||||||
// ── Traitement image (réutilisé depuis plateformes.js) ─────────────────────
|
// ── Traitement image (réutilisé depuis plateformes.js) ─────────────────────
|
||||||
|
|||||||
@@ -51,9 +51,12 @@ app.use(express.json({ limit: '5mb' }));
|
|||||||
app.use(morgan('dev'));
|
app.use(morgan('dev'));
|
||||||
|
|
||||||
// ── Logos plateformes — servis sans authentification ─────────────────────
|
// ── 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 }));
|
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 }));
|
app.use('/api/icons-files', express.static(iconsDir2, { maxAge: '1h', fallthrough: false }));
|
||||||
|
|
||||||
// Basic rate-limit on auth endpoints
|
// Basic rate-limit on auth endpoints
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ services:
|
|||||||
PORT: 4000
|
PORT: 4000
|
||||||
DB_PATH: /app/data/crowdlending.db
|
DB_PATH: /app/data/crowdlending.db
|
||||||
UPLOAD_DIR: /app/uploads
|
UPLOAD_DIR: /app/uploads
|
||||||
|
DATA_DIR: /app/data
|
||||||
volumes:
|
volumes:
|
||||||
- ../../volumes/crowdlending/data:/app/data
|
- ../../volumes/crowdlending/data:/app/data
|
||||||
- ../../volumes/crowdlending/uploads:/app/uploads
|
- ../../volumes/crowdlending/uploads:/app/uploads
|
||||||
|
|||||||
Reference in New Issue
Block a user