A few people have report they are having problems with adopting single mode
Mostly, it’s seems to involve one host sometimes loading cfcs from another?
It’s important in single mode to keep a few things in mind
any host/app specific mappings need to be done via Application.cfc
the CFML Application namespace is shared across different hosts, i.e. myapp on host1 is the same application as myapp on host2
basically the same rules as with ACF (Adobe Coldfusion)
I have created a Github actions test suite
So far I can’t reproduce any problems, if you are experiencing problems with this, please fork the repo and see if you can reproduce the issue you are encountering
Hi @Zackster , if possible I’d like to maybe start a discussion on why Single mode is the only mode offered in Lucee 7? Because for us, with many websites and webapps on the same server, not Dockerized, this will be a hindrance to adopt this version of Lucee, forcing us to stay on Lucee 6, in Multi Mode. Lucee 7 would mean massive rework of the code, lots of testing, for something that now, and always before, just works. Maybe not in this thread, but somewhere else?
OK, that’s too bad, then we will have to see what that means for our future commitment and use of Lucee. Refactoring that many codebases to make them unique in all fashions, using the same framework and code setup for all webapps, will be a daunting task. Is there no one else that faces what we face in this situation? Are we forced to move to Dockerization then, with 30 Lucee instances instead of one? Could you help me understand how to move forward?
I guess a whole day like yesterday where everything just melts down in front of your eyes, and you’re actually looking 4ward 2 a long vacation, but cannot leave if the melt down is not fixed, heightened my stress level. For now Multi Mode saved the day.
In a relaxing yoga-pose now and trying 2 B mellow.
What exactly are the problems? I have multiple webapps on a server and no problems, so maybe you share some details, your problems and we can support you?
You can still host many web apps in single mode. But they will share the same global server config instead of each having their own separate “web admin” (which I always found unnecessarily complex).
The only change this forced us to make was to rename some scheduled tasks, which were set up for each app in its web admin and had a name like “Daily Maintenance”. Because scheduled tasks are now configured globally, they need to have unique names, e.g. “App1 Daily Maintenance”.
Our errors had nothing to do with scheduled tasks or settings set in Web Admins. On the new server we had Multi Mode on for 6.0.1.83, as that was the default, and everything was organized centrally in the Server Admin. Nothing in the different Web Admins. So I assumed when I copied the CFConfig.json from there to the fresh install of 6.2.1.122 that the Single Mode would work similar to the Server Admin in Multi Mode. That did not happen unfortunately. Whilest I hadn’t even looked at the known issues, application-scoped variables started to bleed over in the error-messages between webapps, webapps not working at all because subsystems or pages were not found (FW/1 webapps), and only one webapp would work at a time on the server if they were setup in the same fashion).
Hmmm, when thinking about it… how many websites are you talking about? Just because of maintainability, wouldn’t it be better to move all the web admins settings to Application.cfc with the help of the Web admins Application Export function? It should be possible to do it in an dynamic fashion?
Yeah that’ll roll with sec-ops. For sure, keep all the settings in the code repo.
Defeats the whole point of the admin if you put everything in application.cfc - security big hole IMHO, CI ‘should’ also complain about settings/creds in repo also - a roadmap to hack your whole setup. #yay
Moving settings from the administrator to Application.cfc is not necessarily a significant security risk in itself, as it mainly applies to sensitive settings stored in the admin interface. One option is to move those variables to environment variables (or wherever you consider them to be securely stored). This decision must, of course, be made carefully. If you have a security or DevOps team (assuming one exists), it’s not a decision you should make on your own as a dev.
Will experiment further in the coming months on Single Mode vs Multi Mode. For now it seems our this.name per application is unique, so I still do not understand how the application-scoped variables bled over from one FW/1 webapp to another (using the latest stable versions of FW/1 and Lucee 6 btw).