import { readFileSync, existsSync } from 'node:fs' import { resolve } from 'node:path' import { buildApp } from './app.js' import { loadConfig } from './config.js' for (const path of [ resolve(import.meta.dirname, '../../../.env'), '.env', '../.env', ]) { if (!existsSync(path)) continue const content = readFileSync(path, 'utf-8') for (const line of content.split('\n')) { const trimmed = line.trim() if (!trimmed || trimmed.startsWith('#')) continue const eq = trimmed.indexOf('=') if (eq === -1) continue const key = trimmed.slice(0, eq).trim() let value = trimmed.slice(eq + 1).trim() if ( (value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'")) ) { value = value.slice(1, -1) } if (!(key in process.env)) process.env[key] = value } break } const config = loadConfig() const app = await buildApp({ config }) try { await app.listen({ port: config.serverPort, host: '0.0.0.0' }) app.log.info(`listening on ${config.serverPort}`) } catch (err) { app.log.error(err) process.exit(1) }