Files
makemd/server/src/index.ts

56 lines
1.8 KiB
TypeScript
Raw Normal View History

import dotenv from 'dotenv';
import { DomainBootstrap } from './core/runtime/DomainBootstrap';
import { logger } from './utils/logger';
// App
import { app } from './app';
// Platform Connectors
import { AliExpressConnector } from './core/connectors/AliExpressConnector';
import { AmazonConnector } from './core/connectors/AmazonConnector';
import { ConnectorBus } from './core/connectors/IPlatformConnector';
import { ShopeeConnector } from './core/connectors/ShopeeConnector';
import { ShopifyConnector } from './core/connectors/ShopifyConnector';
import { TikTokConnector } from './core/connectors/TikTokConnector';
// Workers
import { startAuditWorker } from './services/AuditWorker';
import { CrawlerWorker } from './workers/CrawlerWorker';
dotenv.config();
const PORT = process.env.PORT || 3003;
// Register Platform Connectors
ConnectorBus.register(new TikTokConnector());
ConnectorBus.register(new ShopeeConnector());
ConnectorBus.register(new ShopifyConnector());
ConnectorBus.register(new AmazonConnector());
ConnectorBus.register(new AliExpressConnector());
// Start Background Workers
startAuditWorker();
CrawlerWorker.init();
/**
* [ARCH_LIGHT_03] (Global Startup Flow)
* @description 使 DomainBootstrap index.ts
*/
async function startServer() {
try {
// 1. 领域初始化 (含 DB 建表与 AGI 降级检查)
await DomainBootstrap.init();
// 2. 启动 HTTP 服务
app.listen(PORT, () => {
logger.info(`🚀 Console Server running on http://localhost:${PORT}`);
logger.info('✅ All backend services initialized successfully');
});
} catch (err: any) {
logger.error(`❌ Failed to start server: ${err.message}`);
process.exit(1);
}
}
startServer();