CommandBox

The defacto enterprise servlet deployment for BoxLang - Power your mission-critical applications with CommandBox

CommandBox is a standalone, native tool for Windows, Mac, and Linux that provides a Command-Line Interface (CLI) for developer productivity, tool interaction, package management, embedded JEE server, application scaffolding, and sweet ASCII art. CommandBox is the defacto enterprise servlet deployment platform for BoxLang, providing production-ready capabilities for mission-critical applications.

CommandBox seamlessly integrates to work with any of Ortus Solutions *Box products, but it is also open to extensibility for any BoxLang or CFML project. We have created a specialized servlet runtime for CommandBox that makes it the premier choice for deploying enterprise BoxLang applications with high-traffic and mission-critical requirements.

🚀 Enterprise Features & BoxLang Subscriptions

CommandBox becomes even more powerful with CommandBox PRO, which is included with BoxLang+ and BoxLang++ subscriptions. When you have a BoxLang +/++ subscription, you automatically get access to all CommandBox PRO enterprise features:

  • 🏢 Multi-site Support - Host multiple applications on a single CommandBox instance

  • 🔐 Multi-SSL Support - Advanced SSL certificate management and SNI support

  • ⚙️ Operating System Service Manager - Run CommandBox as a system service

  • 🛡️ CAC (Common Access Card) Support - Enterprise authentication integration

  • ☕ JDK Management - Simplified Java version management

  • 📊 Advanced Monitoring & Metrics - Production-ready observability tools

  • 🔧 Professional Support - Direct access to Ortus Solutions engineering team

🐳 Docker Container Support

CommandBox also provides official Docker containers for containerized deployments:

For more Docker deployment options, visit the CommandBox Docker Hub repository.

BoxLang Subscribers: If you have a BoxLang+ or BoxLang++ subscription, you automatically get access to all CommandBox PRO features. Learn more at https://boxlang.io/plans

For standalone CommandBox Pro: https://www.ortussolutions.com/products/commandbox-pro

You can find out more about getting started with CommandBox or CommandBox Pro in our CommandBox documentation.

📦 Installation & Setup

Install the BoxLang Module

Once installed, CommandBox needs (for the moment) the commandbox-boxlang module to start BoxLang servers. So let's go ahead and install it:

This will add the right file types and handlers to CommandBox for BoxLang.

🚀 Start up a Server

Starting a BoxLang server with CommandBox is simple and powerful. Navigate to your application's webroot and run:

Additional Server Options

CommandBox provides extensive server configuration options for enterprise deployments:

Enjoy your enterprise-grade BoxLang server!

🏠 Server Home

Like any other CommandBox server, the servers will be stored in your setup's CommandBox Home. The boxlang.json, class folders, and modules will all be installed here.

📦 Installing BoxLang Modules

Just like with any server, you can also install modules into the BoxLang server:

That's it. CommandBox knows where to put them and manage them automatically.

⚙️ Server Configuration

server.json

You can make your CommandBox BoxLang server portable and enterprise-ready with a comprehensive server.json file:

Advanced Enterprise Configuration

For production and enterprise deployments, you can leverage additional CommandBox features:

🌍 Environment Variables

The servlet/CommandBox runtime uses the same environment variables as the core OS runtime. You can find detailed information about all available environment variables here.

Running BoxLang

🔧 Development & Debugging

Custom boxlang.json Configuration

You can use your own custom boxlang.json file to startup the engine by using the app.engineConfigFile setting in your server.json:

Debug Mode

You can enable debug mode for your BoxLang server using several approaches:

--debug flag via the server start command

env.BOXLANG_DEBUG environment variable

Set env.BOXLANG_DEBUG in your server.json file:

BOXLANG_DEBUG in a .env file

Set BOXLANG_DEBUG=true in a .env file:

.cfconfig.json debugMode setting

Or set debuggingEnabled in your .cfconfig.json server configuration file:

Custom boxlang.json file

Use the app.engineConfigFile to seed a custom boxlang.json file into the engine and use the normal settings in the boxlang.json.

📚 Additional Resources

Runtime Source Code

The CommandBox servlet runtime source code can be found here: https://github.com/ortus-boxlang/boxlang-servlet

We welcome any pull requests, testing, documentation contributions, and feedback!

Docker Hub

Official CommandBox Docker images: https://hub.docker.com/r/ortussolutions/commandbox

Enterprise Support

For enterprise deployments and professional support:

  • BoxLang+ Subscribers: Included CommandBox PRO features and support

  • BoxLang++ Subscribers: Priority support with SLA guarantees

  • Standalone CommandBox PRO: Available at ortussolutions.com

Last updated

Was this helpful?