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'}`); });