From 251c7376c9e5fbd26fb2bd42364023dac833ea3a Mon Sep 17 00:00:00 2001 From: Gronod Date: Sun, 17 May 2026 07:21:43 +0100 Subject: [PATCH] fix: logger.js hardcoded server.log path breaks non-root container user server/utils/logger.js was still writing to ../../server.log relative to __dirname (/app/server.log) which is root-owned. The non-root node user (UID 1000) cannot write there, causing an EACCES crash on startup. Fix: use DATA_DIR env var (same as index.js) so all log writes go to /app/data/server.log which is owned by the node user. --- server/utils/logger.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/utils/logger.js b/server/utils/logger.js index e4514cf..3160d2e 100644 --- a/server/utils/logger.js +++ b/server/utils/logger.js @@ -1,7 +1,12 @@ const fs = require('fs'); const path = require('path'); -const logFile = fs.createWriteStream(path.join(__dirname, '../../server.log'), { flags: 'a' }); +// Use DATA_DIR so the non-root container user (UID 1000) can write logs. +// Falls back to ../../data/server.log (same directory index.js uses). +const DATA_DIR = process.env.DATA_DIR || path.join(__dirname, '../../data'); +if (!fs.existsSync(DATA_DIR)) fs.mkdirSync(DATA_DIR, { recursive: true }); + +const logFile = fs.createWriteStream(path.join(DATA_DIR, 'server.log'), { flags: 'a' }); function logToFile(message) { logFile.write(`[${new Date().toISOString()}] ${message}\n`);