Rambling ColdBox Noob Questions I'm Embarrased to Ask

I’ve been coding CFML ‘the old way’ for 20+ years. The traditional CF install running behind IIS (usually). Distributed models, load balancing, blah blah…

Never touched frameworks such as ColdBox but it recently caught my eye and I’ve blazed through the ColdBox Master Class video series. My eyes have been opened! Very exciting stuff, couldn’t wait to get started!

However, one thing has escaped me. As I’ve watched, and read, about ColdBox and CommandBox I was getting the impression that CommandBox was mostly used as a development and configuration tool. Use it to spin up a CFML server with configs on a local machine in order to develop a ColdBox app. Where it seems I was way off was: I was thinking that once the CB app was developed, its entire folder could simply be moved on to a production server running a ‘normal’ version of ACF (provided datasources and other server settings were set).

However, it appears that is not the case as there are several errors that arise. In addition, as I look through these community posts and see other’s questions regarding running ColdBox on IIS, Apache, etc… I see a lot of responses saying things like “why don’t you just use CommandBox”?

My long-winded question is: is the CommandBox-ColdBox duo meant to completely do away with the traditional ColdFusion install…even in production and high traffic scenarios? Can a ColdBox App/Website run on the same web server as legacy apps that are not using ColdBox. The CommandBox docs show a big blank space for using with IIS.

I don’t have the luxury of being able to throw away everything I’ve worked with previously and start anew. What’s the best path forward as a hybrid ‘traditional’ / ColdBox shop?

So CommandBox is capable of starting CF severs with a powerful self-contained web server that can completely replace Apache, Nginx, or IIS, handling even your lockdown if you so choose. But in no way shape or form is it required. ColdBox MVC is just a regular CFML framework that can be run on any server you wish. The “blank” docs you mentioned are just for people who want to front a CommandBox server with a proxy through IIS for whatever reason. That page was added by the community with the idea that people would help fill out the info but it never happened. Here’s a screencast on how to use IIS in front of CommandBox, but really it’s beside the point as you don’t want to do that and there’s no reason for you to if you don’t want to.

If you’re having issues getting your local site to run on a “standard” ColdFusion/IIS installation, then you’ll need to report what specific errors or issues you’re having. Lots of people run ColdBox powered sites on installations just like yours, so it probably just boils down to a missing setting or rewrite configuration. The most common issue people run into is they try to put the site in a sub folder, which is totally allowed, but changes things like relative paths and mappings so you have to account for that.

Also, your questions are totally valid and you shouldn’t be ashamed of them at all :slight_smile:

Just to add a few more info. We have found in our experience that the marriage of tools we create bring about the best overall experience for developers. It’s our “preferred” approach. That said, having CommandBox for both development and production is our preferred approach. Since we go to great lengths to make that transition easy to do and provides docs, support and tooling to make it a repeatable and easy experience.

With that said, like @bdw429s mentioned, it is not only the way to go. You can use traditional ACF or Lucee installs with any web server, and deploy the ColdBox app there.

Can a ColdBox App/Website run on the same web server as legacy apps that are not using ColdBox

Totally. A ColdBox app is just a collection of files that run on the webroot or ANY subfolder in your server. You can easily marry legacy apps with ColdBox apps by deploying the ColdBox app in a subfolder. @bdw429s has tons of work on this too

Thank you for the replies. I’ve just read through all the CommandBox documentation. I am fascinated! Honestly, I feel I’ve been living under a rock as I had no idea this kind of development was going on for the CFML community. Kudos to all of you!

That being said, my team and I simply don’t have the bandwidth to take on a full-fledged conversion of our ‘traditional’ setup to CommandBox at this time.

But, we are still wanting to start picking up ColdBox. So, my first question. In watching the ColdBox Master class, there was much made of the URL rewrites. However, it appears all those capabilities are dependent on using CommandBox as the server due to its use of the Tuckey servet?

1 Like

Absolutely not. Not only does CommandBox have two different types of rewrite engines you can use, but every other web server out there has their own rewrite engine and they all work the same. If you’re on IIS, just use the XML file provided in the docs here:

Remember, our classes are designed for anyone to get up and running as quickly as possible without making any assuptions about what web servers they may or may not be using. We can’t cover every possible scenario or it would take forever! CommandBox is the lowest-common denominator to get anyone up and running even with nothing else installed on their machine. But we 100% support all sorts of other web servers based on what you need.

Oh my! I hadn’t seen those ready-made rewrite rules for IIS! Perfect! While you may not be able to cover every possible scenario in the courses, it certainly seems like you’re prepared for any scenario! Impressive.

I’ve just watched the screen share showing the use of CommandBox behind IIS. So informative! Also, it seemed answered another question that was gnawing at me…

It appears as if the ‘preferred’ method is to run one CommandBox server (therefore, one ACF/Lucee server) for each web site/app? Again, we’re running the ‘traditional’ setup of one Adobe CF install and that one server runs multiple IIS sites. So, the idea of spinning up a new server for each site is new to us and wasn’t obvious (at least to us) as we’ve been pouring over your resources.

So, knowing that we are, for the time being, entrenched in our ‘traditional’ setup, it seems our use of CommandBox would be limited to the tasks of quickly creating a new app, handler, and perhaps some cloud package management and installations? Any ‘server-level’ operations we are already handling in our current installs of IIS and ACF.