const path = require('path'); function createWebConfig() { const mediaDir = path.join(__dirname, '..', '..', '..', 'media'); const uploadsDir = path.join(mediaDir, 'uploads'); const thumbnailsDir = path.join(mediaDir, 'thumbnails'); const assetDir = path.join(__dirname, '..', 'public'); const playerInternalUrl = (process.env.PLAYER_INTERNAL_URL || process.env.PLAYER_BASE_URL || 'http://player:8081').replace(/\/$/, ''); const bridgeInternalUrl = (process.env.BRIDGE_INTERNAL_URL || 'http://player-bridge:8090').replace(/\/$/, ''); const webInternalUrl = (process.env.WEB_INTERNAL_URL || `http://127.0.0.1:${Number(process.env.WEB_PORT || 8080)}`).replace(/\/$/, ''); const sessionCookieName = 'digital_signage_session'; const sessionMaxAgeMs = 14 * 24 * 60 * 60 * 1000; const port = Number(process.env.WEB_PORT || 8080); const dataSourceStartupRefreshStaggerMs = Math.max(100, Number(process.env.DATA_SOURCE_STARTUP_REFRESH_STAGGER_MS || 250)); return { port: port, mediaDir: mediaDir, uploadsDir: uploadsDir, thumbnailsDir: thumbnailsDir, assetDir: assetDir, playerInternalUrl: playerInternalUrl, bridgeInternalUrl: bridgeInternalUrl, webInternalUrl: webInternalUrl, sessionCookieName: sessionCookieName, sessionMaxAgeMs: sessionMaxAgeMs, dataSourceStartupRefreshStaggerMs: dataSourceStartupRefreshStaggerMs }; } module.exports = { createWebConfig };