fix: logger.js hardcoded server.log path breaks non-root container user
All checks were successful
Build and Push Docker Image / build (push) Successful in 24s
CI / Security audit (push) Successful in 26s

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.
This commit is contained in:
2026-05-17 07:21:43 +01:00
parent 8ba1ee4f56
commit 251c7376c9

View File

@@ -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`);