import 'dotenv/config' import { assertRuntimeConfig, loadProjectConfigs } from './config' import prisma, { ensureDatabaseReady } from './prisma' import { createServer } from './server' import { startWorker } from './worker' const projects = loadProjectConfigs() assertRuntimeConfig(projects) const port = Math.max(1, Number(process.env.PORT) || 3088) const main = async () => { await ensureDatabaseReady() createServer(projects).listen(port, () => { console.log(`[NotificationCenter] listening on ${port}, projects=${projects.size}`) }) startWorker() } main().catch((error) => { console.error('[NotificationCenter] startup failed:', error) process.exitCode = 1 }) process.on('SIGTERM', async () => { await prisma.$disconnect().catch(() => undefined) process.exit(0) })