C
CanxJS
v1.6.2
  • Learn
  • Blog
  • Showcase
C
CanxJS

Ultra-fast async MVC backend framework for Bun. Build production-ready APIs with elegance and speed.

Resources

  • Documentation
  • Learn
  • Blog
  • Showcase

Documentation

  • Introduction
  • Installation
  • Core Concepts
  • CLI Commands
  • API Reference

Legal

  • Privacy Policy
  • Terms of Service

© 2026 CanxJS. All rights reserved.

Built with ❤️ for Candra Kirana

  • Introduction
  • Installation
  • Configuration
  • VS Code Extension
Getting Started

Configuration

Learn how to configure your CanxJS application using the configuration file and environment variables.

App Configuration

The main application configuration lives in src/config/app.ts.

src/config/app.ts
1// src/config/app.ts
2export default {
3 name: "CanxJS App",
4 env: process.env.NODE_ENV || "development",
5 port: Number(process.env.PORT) || 3000,
6 key: process.env.APP_KEY || "your-secret-key",
7 debug: process.env.DEBUG === "true",
8
9 // You can add custom config here
10 security: {
11 cors: true,
12 rateLimit: true,
13 }
14};

Database Configuration

Configure your database connection in src/config/database.ts.

src/config/database.ts
1// src/config/database.ts
2import type { DatabaseConfig } from 'canxjs';
3
4const config: DatabaseConfig = {
5 driver: process.env.DB_CONNECTION as any || "mysql",
6 host: process.env.DB_HOST || "localhost",
7 port: Number(process.env.DB_PORT) || 3306,
8 database: process.env.DB_NAME || "canx_app",
9 username: process.env.DB_USER || "root",
10 password: process.env.DB_PASS || "",
11 logging: process.env.NODE_ENV !== "production",
12 pool: { min: 2, max: 10 },
13};
14
15export default config;

Environment Variables

Use environment variables to store sensitive configuration. Create a .env file in your project root.

.env
1# .env
2NODE_ENV=development
3PORT=3000
4
5# Database
6DB_HOST=localhost
7DB_PORT=3306
8DB_NAME=canx_app
9DB_USER=root
10DB_PASS=secret
11
12# Security
13JWT_SECRET=your-secret-key
14SESSION_SECRET=your-session-secret
15
16# Cache
17REDIS_URL=redis://localhost:6379

Directory Structure

You can customize the directory structure of your application by creating a canx.config.ts configuration file. This allows you to adopt different architectural patterns like NestJS or Express style structures.

canx.config.ts
1// canx.config.ts
2export default {
3 paths: {
4 controllers: 'src/http/controllers',
5 models: 'src/domain/models',
6 middlewares: 'src/http/middleware',
7 migrations: 'database/migrations',
8 services: 'src/domain/services',
9 }
10};

Configuration Options

App Configuration

Core application settings

OptionTypeDefaultDescription
portnumber3000Server port
hoststringlocalhostServer hostname
envstringdevelopmentEnvironment mode
debugbooleanfalseEnable debug mode

Database Configuration

Database connection settings

OptionTypeDefaultDescription
driverstringmysqlDatabase driver (mysql, postgres)
hoststringlocalhostDatabase host
portnumber3306Database port
databasestring-Database name
usernamestring-Database username
passwordstring-Database password

Security Configuration

Security and authentication settings

OptionTypeDefaultDescription
cors.enabledbooleantrueEnable CORS
cors.originstring | array*Allowed origins
rateLimit.enabledbooleantrueEnable rate limiting
rateLimit.maxnumber100Max requests per window
rateLimit.windownumber60000Window in ms

Next Steps

Now that you understand configuration, learn about routing and controllers.