Loading...

CLI Overview

Quick Start Guide

wheels info

wheels reload

wheels deps

wheels destroy

wheels watch

wheels generate app

wheels generate app-wizard

wheels generate controller

wheels generate model

wheels generate view

wheels generate property

wheels generate route

wheels generate resource

wheels generate api-resource

wheels generate frontend

wheels generate test

wheels generate snippets

wheels scaffold

wheels test

wheels test run

wheels test coverage

wheels test debug

wheels config list

wheels config set

wheels config env

wheels env

wheels env setup

wheels env list

wheels env switch

wheels environment

wheels console

wheels runner

wheels server

wheels server start

wheels server stop

wheels server restart

wheels server status

wheels server log

wheels server open

wheels plugins

wheels plugins list

wheels plugins install

wheels plugins remove

wheels analyze

wheels analyze code

wheels analyze performance

wheels analyze security

wheels security

wheels security scan

wheels optimize

wheels optimize performance

wheels docs

wheels docs generate

wheels docs serve

wheels ci init

wheels docker init

wheels docker deploy

wheels deploy

wheels deploy audit

wheels deploy exec

wheels deploy hooks

wheels deploy init

wheels deploy lock

wheels deploy logs

wheels deploy proxy

wheels deploy push

wheels deploy rollback

wheels deploy secrets

wheels deploy setup

wheels deploy status

wheels deploy stop

Configuration Management

Creating Commands

Service Architecture

Migrations Guide

Testing Guide

Ask or search...
Ctrl K
Loading...

wheels generate app

This command works correctly without options (parameters). Option support is under development and will be available soon.

Create a new Wheels application from templates.

Synopsis

wheels generate app [name] [template] [directory] [options]
wheels g app [name] [template] [directory] [options]
wheels new [name] [template] [directory] [options]

Description

The wheels generate app command creates a new Wheels application with a complete directory structure, configuration files, and optionally sample code. It supports multiple templates for different starting points.

Arguments

| Argument | Description | Default | |----------|-------------|---------| | name | Application name | MyApp | | template | Template to use | wheels-base-template@BE | | directory | Target directory | ./{name} |

Options

| Option | Description | Default | |--------|-------------|---------| | reloadPassword | Set reload password | '' (empty) | | datasourceName | Database datasource name | App name | | cfmlEngine | CFML engine (lucee/adobe/boxlang) | lucee | | --useBootstrap | Include Bootstrap CSS | false | | --setupH2 | Setup H2 embedded database | true | | --init | Initialize as CommandBox package | false | | --force | Overwrite existing directory | false | | --help | Show help information | |

Available Templates

wheels-base-template@BE (Default)

wheels generate app myapp
  • Backend Edition template
  • Complete MVC structure
  • Sample code and configuration
  • H2 database setup by default

HelloWorld

wheels generate app myapp HelloWorld
  • Simple "Hello World" example
  • One controller and view
  • Great for learning

HelloDynamic

wheels generate app myapp HelloDynamic
  • Dynamic content example
  • Database interaction
  • Form handling

HelloPages

wheels generate app myapp HelloPages
  • Static pages example
  • Layout system
  • Navigation structure

Examples

Create basic application

wheels generate app blog

Create with custom template

wheels generate app api Base@BE

Create in specific directory

wheels generate app name=myapp directory=./projects/

Create with Bootstrap

wheels generate app portfolio --useBootstrap

Create with H2 database (default is true)

wheels generate app demo --setupH2

Create with all options

wheels generate app name=enterprise template=HelloDynamic directory=./apps/ \
  reloadPassword=secret \
  datasourceName=enterprise_db \
  cfmlEngine=adobe \
  --useBootstrap \
  --setupH2

Generated Structure

myapp/
├── .wheels-cli.json      # CLI configuration
├── box.json              # Dependencies
├── server.json           # Server configuration
├── Application.cfc       # Application settings
├── config/
│   ├── app.cfm          # App configuration
│   ├── routes.cfm       # URL routes
│   └── settings.cfm     # Framework settings
├── controllers/
│   └── Main.cfc         # Default controller
├── models/
├── views/
│   ├── layout.cfm       # Default layout
│   └── main/
│       └── index.cfm    # Home page
├── public/
│   ├── stylesheets/
│   ├── javascripts/
│   └── images/
├── tests/
└── wheels/              # Framework files

Configuration Files

box.json

{
  "name": "myapp",
  "version": "1.0.0",
  "dependencies": {
    "wheels": "^2.5.0"
  }
}

server.json

{
  "web": {
    "http": {
      "port": 3000
    }
  },
  "app": {
    "cfengine": "lucee5"
  }
}

.wheels-cli.json

{
  "name": "myapp",
  "version": "1.0.0",
  "framework": "wheels",
  "reload": "wheels"
}

Database Setup

With H2 (Embedded)

wheels generate app myapp
  • H2 is setup by default (--setupH2=true)
  • No external database needed
  • Perfect for development
  • Auto-configured datasource
  • To disable: --setupH2=false

With External Database

  1. Create application:

    wheels generate app myapp datasourceName=myapp_db --setupH2=false
    
  2. Configure in CommandBox:

    server set app.datasources.myapp_db={...}
    

Post-Generation Steps

  1. Navigate to directory

    cd myapp
    
  2. Install dependencies

    box install
    
  3. Start server

    box server start
    
  4. Open browser

    http://localhost:3000
    

Template Development

Create custom templates in ~/.commandbox/cfml/modules/wheels-cli/templates/apps/:

mytemplate/
├── config/
├── controllers/
├── models/
├── views/
└── template.json

Best Practices

  1. Use descriptive application names
  2. Choose appropriate template for project type
  3. Set secure reload password for production
  4. Configure datasource before starting
  5. Run tests after generation

Common Issues

  • Directory exists: Use --force or choose different name
  • Template not found: Check available templates with wheels info
  • Datasource errors: Configure database connection
  • Port conflicts: Change port in server.json

See Also