49 lines
2.3 KiB
JavaScript
49 lines
2.3 KiB
JavaScript
import dotenv from 'dotenv';
|
|
import { dirname, resolve } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
dotenv.config({ path: resolve(__dirname, '../../.env'), quiet: true });
|
|
|
|
function parseHttpsPort(val) {
|
|
if (val === undefined || val === '') return 8443;
|
|
if (val === 'false' || val === '0' || val === 'none' || val === 'disabled') return null;
|
|
const n = Number(val);
|
|
return Number.isInteger(n) && n > 0 ? n : 8443;
|
|
}
|
|
|
|
export default {
|
|
port: Number(process.env.PORT) || 4208,
|
|
httpsPort: parseHttpsPort(process.env.HTTPS_PORT),
|
|
sqlStudioPort: Number(process.env.SQL_STUDIO_PORT) || 4210,
|
|
httpsKeyPath: process.env.HTTPS_KEY_PATH || resolve(__dirname, '../../certs/key.pem'),
|
|
httpsCertPath: process.env.HTTPS_CERT_PATH || resolve(__dirname, '../../certs/cert.pem'),
|
|
logLevel: process.env.LOG_LEVEL || 'debug',
|
|
bodyLimit: process.env.BODY_LIMIT || '100mb',
|
|
corsOrigins: (process.env.CORS_ORIGINS || 'http://localhost:5173,https://quixpos.com,https://app.quixpos.com')
|
|
.split(',')
|
|
.map((s) => s.trim())
|
|
.filter(Boolean),
|
|
frontendUrl: process.env.FRONTEND_URL || 'http://localhost:4209',
|
|
googleClientId: process.env.GOOGLE_CLIENT_ID,
|
|
implicitCreate: process.env.IMPLICIT_CREATE === 'true',
|
|
jwtSecret: process.env.JWT_SECRET || 'fallback_secret_please_change_in_production',
|
|
dbProvider: process.env.DB_PROVIDER || (process.env.SQLITE_PATH ? 'sqlite' : 'mssql'),
|
|
openrouterApiUrl: process.env.OPENROUTER_API_URL,
|
|
openrouterFreeKey: process.env.OPENROUTER_FREE_KEY,
|
|
openrouterFreeModel: process.env.OPENROUTER_FREE_MODEL || 'openrouter/free',
|
|
openrouterPaidModel: process.env.OPENROUTER_PAID_MODEL || 'openai/gpt-6-luna:floor',
|
|
sqlite: {
|
|
filename: process.env.SQLITE_PATH || process.env.SQLITE_FILENAME || resolve(__dirname, '../../data/dash.db'),
|
|
},
|
|
mssql: {
|
|
server: process.env.MSSQL_SERVER,
|
|
database: process.env.MSSQL_DATABASE,
|
|
user: process.env.MSSQL_USER,
|
|
password: process.env.MSSQL_PASSWORD,
|
|
port: Number(process.env.MSSQL_PORT) || 1433,
|
|
encrypt: process.env.MSSQL_ENCRYPT === 'true',
|
|
trustServerCertificate: process.env.MSSQL_TRUST_SERVER_CERTIFICATE === 'true',
|
|
},
|
|
};
|