// Runtime config + filesystem paths. Reads process.env once at startup. const fs = require('fs'); const path = require('path'); const PUBLIC_DIR = path.join(__dirname, 'public'); const REC_DIR = path.join(__dirname, 'recordings'); const TRANS_DIR = path.join(__dirname, 'transcripts'); const UPLOADS_DIR = path.join(__dirname, 'uploads'); // Desktop installers + auto-update feed (latest.yml). Override with DOWNLOADS_DIR to point at a // mounted volume in production; IT drops the electron-builder dist/ output here. const DOWNLOADS_DIR = process.env.DOWNLOADS_DIR || path.join(__dirname, 'downloads'); try { fs.mkdirSync(REC_DIR, { recursive: true }); } catch (e) {} try { fs.mkdirSync(TRANS_DIR, { recursive: true }); } catch (e) {} try { fs.mkdirSync(UPLOADS_DIR, { recursive: true }); } catch (e) {} try { fs.mkdirSync(DOWNLOADS_DIR, { recursive: true }); } catch (e) {} module.exports = { PORT: process.env.PORT || 8090, HTTPS_PORT: process.env.HTTPS_PORT || 8443, PUBLIC_DIR, REC_DIR, TRANS_DIR, UPLOADS_DIR, DOWNLOADS_DIR, SESSION_TTL: 1000 * 60 * 60 * 24, // 24h access-token / cookie lifetime REFRESH_TTL: 1000 * 60 * 60 * 24 * 90, // 90d refresh-token lifetime (native clients) };