45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import express from 'express';
|
|
import cors from 'cors';
|
|
import { createServer } from 'http';
|
|
import { WebSocketServer } from 'ws';
|
|
import { initDb } from './db';
|
|
import { accountsRouter } from './routes/accounts';
|
|
import { promptsRouter } from './routes/prompts';
|
|
import { pipelineRouter } from './routes/pipeline';
|
|
import { assetsRouter } from './routes/assets';
|
|
import { configsRouter } from './routes/configs';
|
|
import { handleChat } from './ws/chat';
|
|
|
|
const app = express();
|
|
const server = createServer(app);
|
|
const wss = new WebSocketServer({ server, path: '/ws' });
|
|
|
|
app.use(cors());
|
|
app.use(express.json({ limit: '50mb' }));
|
|
|
|
app.use('/api/accounts', accountsRouter);
|
|
app.use('/api/prompts', promptsRouter);
|
|
app.use('/api/pipeline', pipelineRouter);
|
|
app.use('/api/assets', assetsRouter);
|
|
app.use('/api/configs', configsRouter);
|
|
|
|
wss.on('connection', handleChat);
|
|
|
|
const PORT = 3007;
|
|
initDb();
|
|
|
|
server.on('error', (err: NodeJS.ErrnoException) => {
|
|
if (err.code === 'EADDRINUSE') {
|
|
console.error(`Port ${PORT} is in use. Run: npx kill-port ${PORT}`);
|
|
process.exit(1);
|
|
}
|
|
throw err;
|
|
});
|
|
|
|
server.listen(PORT, () => {
|
|
console.log(`Server running on http://localhost:${PORT}`);
|
|
});
|
|
|
|
process.on('SIGTERM', () => { server.close(); process.exit(0); });
|
|
process.on('SIGINT', () => { server.close(); process.exit(0); });
|