import "reflect-metadata"; import * as dotenv from "dotenv"; dotenv.config(); import { Logger } from "@nestjs/common"; import { NestFactory } from "@nestjs/core"; import { AppModule } from "./app.module"; /** * * Standalone GT06 GPS ingester. Boots a Nest application context (NO HTTP * server) so only the DB connection and Gt06Server come up; the TCP listener * binds from Gt06Server.onApplicationBootstrap. The /gps REST API lives in * @edr/freight-api, which reads the same tables this process writes. */ async function bootstrap() { const logger = new Logger("gps-tracker"); const port = Number(process.env.GT06_TCP_PORT ?? 5023); if (!port) { logger.error( "GT06_TCP_PORT=0 disables the listener — this process would idle. Set a port.", ); process.exit(1); } const app = await NestFactory.createApplicationContext(AppModule); app.enableShutdownHooks(); logger.log( `GT06 ingester up — TCP ${process.env.GT06_TCP_HOST ?? "0.0.0.0"}:${port}`, ); } void bootstrap();