import express from "express"; import ViteExpress from "vite-express"; import cors from "cors"; import dotenv from "dotenv"; import apiRoutes from "./server/api/index.js"; // Load .env.local first, then fall back to .env dotenv.config({ path: '.env.local' }); dotenv.config(); const app = express(); // CORS configuration for split deployment // In combined mode, same-origin requests don't need CORS const allowedOrigins = process.env.ALLOWED_ORIGINS?.split(",") || []; if (allowedOrigins.length > 0) { app.use(cors({ origin: allowedOrigins, credentials: true, })); } app.use(express.json()); // API routes app.use("/api", apiRoutes); // Check if running in API-only mode (split deployment) const apiOnly = process.env.API_ONLY === "true"; if (apiOnly) { // API-only mode: no static file serving app.listen(process.env.PORT || 3000, () => { console.log(`API server running on port ${process.env.PORT || 3000}`); }); } else { // Combined mode: Vite handles static files + SPA ViteExpress.listen(app, process.env.PORT || 3001, () => { console.log(`Server running on port ${process.env.PORT || 3001}`); }); }