mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
56 lines • 2.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MiraServer = void 0;
exports.startServer = startServer;
const MiraServer_1 = require("./MiraServer");
Object.defineProperty(exports, "MiraServer", { enumerable: true, get: function () { return MiraServer_1.MiraServer; } });
const dotenv_1 = __importDefault(require("dotenv"));
const path_1 = __importDefault(require("path"));
// 加载环境变量 - 先加载根目录的 .env,再加载本地的 .env
dotenv_1.default.config({ path: path_1.default.join(__dirname, '../../../.env') });
dotenv_1.default.config();
async function startServer() {
try {
// 服务端启动文件
console.log('🚀 Starting Mira Server...');
// 获取端口配置,优先使用环境变量
const httpPort = process.env.MIRA_SERVER_HTTP_PORT || process.env.HTTP_PORT || '8081';
const wsPort = process.env.MIRA_SERVER_WS_PORT || process.env.WS_PORT || '8018';
const dataPath = process.env.DATA_PATH || './data';
console.log(`📡 HTTP Server will start on port: ${httpPort}`);
console.log(`🔌 WebSocket Server will start on port: ${wsPort}`);
console.log(`📁 Data path: ${dataPath}`);
const server = await MiraServer_1.MiraServer.createAndStart({
httpPort: parseInt(httpPort),
wsPort: parseInt(wsPort),
dataPath: dataPath,
enableHttp: process.env.ENABLE_HTTP !== 'false',
enableWebSocket: process.env.ENABLE_WEBSOCKET !== 'false'
});
console.log('✅ Mira Server started successfully');
// 优雅关闭处理
process.on('SIGINT', async () => {
console.log('\n📴 Received SIGINT, gracefully shutting down...');
await server.stop();
process.exit(0);
});
process.on('SIGTERM', async () => {
console.log('\n📴 Received SIGTERM, gracefully shutting down...');
await server.stop();
process.exit(0);
});
return server;
}
catch (error) {
console.error('❌ Failed to start server:', error);
process.exit(1);
}
}
// 如果直接运行此文件,则启动服务器
if (require.main === module) {
startServer();
}
//# sourceMappingURL=index.js.map