mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
74 lines • 4.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ws = exports.express = exports.MetadataService = exports.ThumbnailService = exports.MiraHttpServer = exports.MiraWebsocketServer = exports.ServerPlugin = exports.ServerPluginManager = 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 ws_1 = __importDefault(require("ws"));
exports.ws = ws_1.default;
const dotenv_1 = __importDefault(require("dotenv"));
const path_1 = __importDefault(require("path"));
const ServerPluginManager_1 = require("./ServerPluginManager");
Object.defineProperty(exports, "ServerPluginManager", { enumerable: true, get: function () { return ServerPluginManager_1.ServerPluginManager; } });
const ServerPlugin_1 = require("./ServerPlugin");
Object.defineProperty(exports, "ServerPlugin", { enumerable: true, get: function () { return ServerPlugin_1.ServerPlugin; } });
const WebSocketServer_1 = require("./WebSocketServer");
Object.defineProperty(exports, "MiraWebsocketServer", { enumerable: true, get: function () { return WebSocketServer_1.MiraWebsocketServer; } });
const server_1 = require("./server");
Object.defineProperty(exports, "MiraHttpServer", { enumerable: true, get: function () { return server_1.MiraHttpServer; } });
const ThumbnailService_1 = require("./services/ThumbnailService");
Object.defineProperty(exports, "ThumbnailService", { enumerable: true, get: function () { return ThumbnailService_1.ThumbnailService; } });
const MetadataService_1 = require("./services/MetadataService");
Object.defineProperty(exports, "MetadataService", { enumerable: true, get: function () { return MetadataService_1.MetadataService; } });
const logCapture_1 = require("./services/logCapture");
const express_1 = __importDefault(require("express"));
exports.express = express_1.default;
// 加载环境变量 - 先加载根目录的 .env,再加载本地的 .env
dotenv_1.default.config({ path: path_1.default.join(__dirname, '../../../.env') });
dotenv_1.default.config();
// 尽早安装 console 拦截,让 SSE 日志端点能回放启动阶段的历史日志。
// 幂等:重复调用安全。
(0, logCapture_1.installLogCapture)();
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,
});
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