436
Documentation

Configuration

Configure Loly Framework to fit your needs.

Framework Configuration

Create loly.config.ts in your project root:

loly.config.ts
import { FrameworkConfig } from "@lolyjs/core";

export default {
  directories: {
    app: "app",
    build: ".loly",
    static: "public",
  },
  server: {
    port: 3000,
    host: "localhost",
  },
  routing: {
    trailingSlash: "ignore",
    caseSensitive: false,
    basePath: "",
  },
  rendering: {
    framework: "react",
    streaming: true,
    ssr: true,
    ssg: true,
  },
} satisfies FrameworkConfig;

Server Configuration

Configure server settings by exporting a config function:

loly.config.ts
import { ServerConfig } from "@lolyjs/core";

export const config = (env: string): ServerConfig => {
  return {
    bodyLimit: "1mb",
    corsOrigin: env === "production" 
      ? ["https://yourdomain.com"] 
      : "*",
    rateLimit: {
      windowMs: 15 * 60 * 1000,
      max: 1000,
      strictMax: 5,
      strictPatterns: ["/api/auth/**"],
    },
  };
};

Server Initialization

Create init.server.ts to initialize services when the server starts:

init.server.ts
import { InitServerData } from "@lolyjs/core";

export async function init({
  serverContext,
}: {
  serverContext: InitServerData;
}) {
  // Initialize database connection
  await connectToDatabase();

  // Setup external services
  await setupExternalServices();

  // Any other initialization logic
  console.log("Server initialized successfully");
}

Note: init.server.ts is for initializing your application services, not for configuring Loly Framework. Framework configuration goes in loly.config.ts.

Environment Variables

Use environment variables for configuration:

# .env
PORT=3000
HOST=0.0.0.0
NODE_ENV=production
PUBLIC_WS_BASE_URL=http://localhost:3000
DATABASE_URL=postgresql://...
API_KEY=your-api-key

Access environment variables in your code:

const port = process.env.PORT || 3000;
const dbUrl = process.env.DATABASE_URL;