Files
iqAI/backend/server.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

import express from 'express';
import cors from 'cors';
import { readFile } from 'fs/promises';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
import dotenv from 'dotenv';
dotenv.config();
const __dirname = dirname(fileURLToPath(import.meta.url));
// Lazy import routes after dotenv loaded
const { chatRouter } = await import('./routes/chat.js');
const { modelsRouter } = await import('./routes/models.js');
const { accountRouter } = await import('./routes/account.js');
const { searchRouter } = await import('./routes/search.js');
const app = express();
const PORT = process.env.PORT || 3001;
const FRONTEND_URL = process.env.FRONTEND_URL || 'http://localhost:5173';
app.use(cors({
origin: [FRONTEND_URL, 'http://localhost:80', 'http://localhost'],
credentials: true
}));
app.use(express.json({ limit: '10mb' }));
app.use('/api/chat', chatRouter);
app.use('/api/models', modelsRouter);
app.use('/api/account', accountRouter);
app.use('/api/search', searchRouter);
// Health check
app.get('/api/health', (req, res) => res.json({ status: 'ok', timestamp: new Date().toISOString() }));
app.listen(PORT, '0.0.0.0', () => {
console.log(`IQAI Backend running on http://0.0.0.0:${PORT}`);
console.log(`API Token: ${process.env.REPLICATE_API_TOKEN ? '✓ configured' : '✗ NOT SET'}`);
});