Perplexica/src/app.ts
Hristo 4e20c4ac56 Finalizes option to secure backend http endpoints with a token
- Also fixes to build commands in makefile
2024-05-10 18:11:23 -04:00

37 lines
809 B
TypeScript

import { startWebSocketServer } from './websocket';
import express from 'express';
import cors from 'cors';
import http from 'http';
import routes from './routes';
import { requireAccessKey } from './auth';
import { getAccessKey, getPort } from './config';
import logger from './utils/logger';
const port = getPort();
const app = express();
const server = http.createServer(app);
const corsOptions = {
origin: '*',
allowedHeaders: ['Authorization', 'Content-Type'],
};
app.use(cors(corsOptions));
if (getAccessKey()) {
app.all('*', requireAccessKey);
};
app.use(express.json());
app.use('/api', routes);
app.get('/api', (_, res) => {
res.status(200).json({ status: 'ok' });
});
server.listen(port, () => {
logger.info(`Server is running on port ${port}`);
});
startWebSocketServer(server);