import { buildCollector } from "./app.js"; import { configFromEnv } from "./config.js"; const cfg = configFromEnv(); const app = await buildCollector(cfg); if (cfg.boothTokens.size === 0) app.log.warn("COLLECTOR_BOOTH_TOKENS is empty — no booth can ingest"); if (!cfg.reviewer) app.log.warn("COLLECTOR_REVIEWER_USER/PASS not set — the review screen and export refuse"); app.log.info(`collector: ${cfg.boothTokens.size} booth token(s), data in ${cfg.dataDir}, trainer ${cfg.trainerUrl ?? "not configured"}`); await app.listen({ host: cfg.host, port: cfg.port }); const stop = async () => { await app.close(); process.exit(0); }; process.on("SIGTERM", () => void stop()); process.on("SIGINT", () => void stop());