Cannot find Coldfusion Administrator with CommandBox 6

Hello everyone,

I just setup CommandBox 6 in multi-site mode, but can’t find how to access the Coldfusion Administrator page. On my previous CommandBox 5 multi-site setup I could access it locally at http://localhost/CFIDE/administrator/index.cfm, but now on v6 I get a " File not found: /index.cfm" error.

Is it in some special port? and if yes, how do I find it?

Here’s my sample config file:

{
    "name":"commandbox-test-multi-site-basic",
    "app":{
        "cfengine":"adobe@2021.0.12"
    },
    "web":{
        "accessLogEnable":"true",
        "aliases":{
            "/js":"javascript"
        },
        "allowedExt":"log",
        "errorPages":{
            "404":"404.cfm"
        },
        "GZIPEnable":"true",
        "gzipPredicate":"regex('^.*\\.txt$')",
        "mimeTypes":{
            "log":"text/plain"
        },
        "rules":[
            "path(/tea)->set-error(418)"
        ],
        "rulesFile":".rules.txt",
        "welcomeFiles":"custom.cfm,index.cfm",
        "bindings":{
            "HTTP":{
                "listen":"80"
            }
        }
    },
    "sites":{
        "site1":{
            "hostAlias":"site1",
            "webroot":"site1"
        },
        "site2":{
            "hostAlias":"site2",
            "webroot":"site2"
        },
    "hostAlias":"siteMissing.com"
}

Chances are the site is in production profile, and therefore blocking admin access. The new binding syntax defaults to 0.0.0.0 instead of localhost. Look when the site starts up in the console-- it will tell you what profile its in. Add the --verbose flag to the server start command to see even more, including a breakdown of whether the CF admin is blocked or not :slight_smile:

So I see this in the terminal while starting:

[INFO ] Runwar: - Binding HTTP on 0.0.0.0:80
[INFO ] Runwar: - Binding SSL on 0.0.0.0:443

But I do not know what to do now. How do I tell it to not bind to 0.0.0.0 and how do I access either the Coldfusion or Lucee administrator? In the previous mayor release of CommandBox this was not an issue, but I have no clue as to how to tell CF or Lucee to start in non-locked-down-mode (if this is indeed what’s happening).

You can set your server profile to development. When CommandBox binds a server to anything other than localhost, it defaults the profile to production

So I included this to the end of my server.json file:
“profile”:“development”

I then tried to access the lucee admin here (after restarting it, just in case): http://localhost/lucee/admin/server.cfm

…but I keep getting the error Page /index.cfm [/Users/foo/Sites/default/index.cfm] not found

The bindings also continue to say 0.0.0.0

Note that this is CommandBox 6. I also get a similar error if I try to launch with Coldfusion (/index.cfm not found)

I don’t see why that would be an issue. That simple means that the port is bound on all available IPs. If you want the admin available, just enable development profile. server profiles have been around since CommandBox 5.2.0 and are documented here: Server Profiles | 6.0.0 | CommandBox : CLI, Package Manager, REPL & More

Did you try my suggestion from above about using the --verbose flag yet? That will tell you right away if the site is in development or production profile.

Did you try what the docs show? Bindings | 6.0.0 | CommandBox : CLI, Package Manager, REPL & More

I don’t understand the question. You’d hit it in the URL just like always. Of course, granting you’ve configured CommandBox to make them accessible as I mentioned in my first reply a few days ago.

I explained what changed in CommandBox 6 in my first reply. Did you see it? Again, automatic admin lock down has been in CommandBox for quite a while now and kicks in automatically when the server is externally accessible. You probably just always bound to local host in the past.

Also, you say the previous version of CommandBox didn’t do this-- the new binding syntax didn’t even exist in the previous version of CommandBox! So, no, you didn’t used to use a web.bindings.http.port key in your server.json :slight_smile:
And as the docs for the new binding syntax say, the default IP address is 0.0.0.0 instead of 127.0.0.1 to match the behavior of IIS, Nginx, Apache, and pretty much any other web server. Bindings | 6.0.0 | CommandBox : CLI, Package Manager, REPL & More

Again, my first reply told you exactly how to find out what profile the site is starting it. Did you use the --verbose flag? What output did you see? Look for the word “profile” and it will tell you that exact information.

Here’s a snippet of what you see on every normal CommandBox server start, even without the verbose flag:

I highlighted the message on the screen that tells you what profile the server is in. And when you add the --verbose flag, you get even more info:

The docs I linked to above show several methods to control the profile for a single server. Or, if you want all servers on your local computer to always be in development profile, you can just set this global settings

config set server.defaults.profile=development

and all servers that don’t have a specific override for profile will default to being development regardless of whether they are externally accessible or not. Server Settings | 6.0.0 | CommandBox : CLI, Package Manager, REPL & More