Make our own "Application unavailable" page - cloudbees

We need to completly stop our application during an upgrade because we have to execute a critical mysql script.
So our application will be turned off during several minute then Cloudbees will display a basic "Application unavailable" page. We would like to change this by our own page with our logo, like we did it when we have our own apache/tomcat server. Could it be possible ?
Btw, is there a page with active sessions like we have in the Tomcat manager ?
Thanks for your help,

You can use beta-featured blue-green support to switch your application to another instance running a "maintenance" page
with latest SDK (1.3.1), run bees app:proxy:update -a acme-maintenance -al www.acme.com to reconfigure the http router for www.acme.com to the maintenance app, then let your application run the mysql upgrade script, and restore the router configuration after completion.
Warning : this feature is in beta and subject to instabilities / API changes

At the moment there isn't an easy way to do that - but there is a feature which will be out there soon to make that easy (amongst other things).
The only way currently is to have an app (another app) - which is your simple page - you then remove the domain name from your current app and add it to that app (etc) - messy, but possible.
In terms of sessions, the operations tab of the web console shows information like that, there is also the newrelic console which provides other insights.

Related

Trigger more than one URL after IntelliJ Run configuration is run

I have a Run configuration which builds an exploded web app, deploys it to tomcat, and opens the home page after that. However, I want to hit a few URLs to set some state in the app before opening the home page (Or after opening the homepage; it does not matter). Is there a way to trigger a few URL hits after the run configuration? This feature would be similar to "before launch." Instead, it would be "after launch".
There is no such feature at the moment, you can vote for the related feature request.
It's not as simple as it looks since it's not clear what would trigger the after event. The app server doesn't exit/terminate, but is still running, therefore it's not possible to use another run configuration with your app server added in its Before launch steps, otherwise you could create a Shell script configuration that would call curl/wget.
For the app server the proper after event would be the moment when the artifact deployment is complete which requires the tight integration with this specific app server so that IDE knows the exact moment when it happens and allows to call some custom action.
This might be possible with the custom plug-in as IDE already knows when the artifact deployment is complete.
A really hacky workaround would be to run some tiny HTTP server and open its URL from the IDE instead of your real app server. This custom server would call the URLs/APIs you need and then open a browser for your real app URL.

My Openshift app (free plan) keeps disapearing after few days

Does anymore same experience or solution for that ?
My app works fine only several days after deployment, after that it turns to blank screen with "Not Found" text on it.
App is with "WildFly Application Server 8.2.1.Final" Cartridge with status "Started" - note that I am aware of iddling of apps at Openshift, this is not the case.
Recieved reply from OpenShift as following :
It looks like you're hosting your app on a small gear. The WildFly cartridge could be quite memory consuming, depending on what app you are deploying. Please check whether the gear is not having memory issues, as described
https://developers.openshift.com/faq/troubleshooting.html#_why_is_my_application_restarting_automatically_or_having_memory_issues
If there seems to be no memory issues, please check your log files for further information about the problem. You can check your log files by using the 'rhc tail' command, or by sshing into your application and looking in the ~/app-root/logs directory.
You can learn more about checking your log files in our Developer Portal (https://developers.openshift.com/en/managing-log-files.html)

how to use the same login for wordpress and my flex builder 4.6 desktop app

I am a novice so please help me a bit.
I am using Flex Builder 4.6 to make a desktop app, I want to make people login before they can access the app, I want them to login with the same user info they use on my wordpress site, The database is hosted via godaddy and i have all the phpmyadmin information. I have googled and googled but I am either not doing the right set of words or this isn't possible because I cant find any examples on how to do this.
right now its a blank app with a username and password text input along with a button to login.
I'm afraid that you can't do this directly and would need to leverage Java (or similar) such as using a server application.
I've never seen or heard of anyone doing this directly via AIR. I suppose it's theoretically possible, albeit not trivial.
Edit:
Thinking about it...this would probably be a kludgy/hacky solution, you could try leveraging Java directly from the users PC by packaging a Java "service utility" with your overall install process, which would interface with your AIR Flex app. They'd need to have Java installed, and additional firewall permissions could be a pain.
You'd need to use NativeProcess.

How to run Play Application on Apache 2 server?

I'm completely new to this, so please forgive me.
What I have right now is a Play application that, when I run play run on my personal Mac the site launches on localhost:9000 and everything works fine.
I also have a server running CentOS that tells me to "add content to the directory /var/www/html/" when I navigate to it's IP, but I don't understand how I can do that with a Play application? It's not like I have a bunch of HTML files I can just put there?
So my question is, what steps do I need to take to make it so if I go to the IP of my server, it takes me to the website I made and that is currently stored on my Mac?
You need to configure Apache as a "proxy" to your Play application (that's why you won't need to put anything into /var/www/html/).
Your application code can be uploaded anywhere you want on the server. It will need to be started on the server (with play start for example) and Apache will "forward" requests to the running Play application.
You can look at the Play documentation in the "Deploy your application" section :
"Deploying your application" (general recommandations) : https://www.playframework.com/documentation/2.6.x/Production
"Set-up a front-end HTTP server" (explain how to deploy Play behind Apache or Nginx) : https://www.playframework.com/documentation/2.6.x/HTTPServer

Developing and Testing a Facebook application

Typically I develop my websites on trunk, then merge changes to a testing branch where they are put on a 'beta' website, and then finally they are merged onto a live branch and put onto the live website.
With a Facebook application things are a bit tricky. As you can't view a Facebook application through a normal web browser (it has to go through the Facebook servers) you can't easily give each developer their own version of the website to work with and test.
I have not come across anything about the best way to develop and test a Facebook application while continuing to have a stable live website that users can use. My question is this, what is the best practice for organising the development and testing of a Facebook application?
Try updating your hosts file (for windows users # c:\windows\System32\Drivers\etc\hosts) with an entry that will route all requests from your live domain back to your machine.
So 127.0.0.1 mywebappthatusesfacebook.com.
Then make sure that your app is running at the root of your webserver. # http://localhost/ Then goto mywebappthatusesfacebook.com in your browser and it should redirect right back to your local machine. Facebook won't know the difference. Hope this helps
The way I and my partner did it was we each made our own private Facebook applications, that pointed to our IP address where we worked on it. Since we worked in the same place, we each picked a different port, and had our router forward that port to our local IP address. It was kinda slow to refresh a page, but it worked very nicely.
You'll have to add both trunk and test versions as different applications and test them using test accounts. You may also use a single application and switch its target URL between cycles.
Testing FB apps is still a rather primitive process.
I generally setup a test application that is a complete copy of the production settings inside the FB development environment that uses an SSH tunnel to point to my development server. You can setup as many applications as you need inside FB - I generally have a development application, a staging app and production. Staging and Production are both on "live" servers rather than an SSH tunnel.
In your application you then use whatever language/framework/server tools are at your disposal to switch the FB configuration based on the server. In Rails, the Facebooker gem actually has built in support for different FB configurations.
Once all of that is done, testing is, unfortunately, still a matter of running the app within FB itself. I use Selenium to automate as much of this as possible.
Best way to do this:
Remove 'App Domain' from 'Basic Info'
Set website's 'Site URL' to : "http://localhost/" .
That simple.
(This only apply if you don't have a live system running in parallel to the test env. In that case get yourself another key.)
We have it setup much like Toby. A series of config files for each developer, that has the Facebook APP Id info (a different app for each developer), separate pages where the app is hosted, and git ignores the config files. We're LAMP with Code Igniter, and it's similar to Rails in that we can set the environment in 1 file, which points to the config with the Facebook constants.
Branching out into Selenium, using unit tests for model-testing.
For local testing we simply use a different app than for the server. In our case the Canvas-URL is set to localhost.local:8000.
You only have to make sure that when you use facebook connect that you type in localhost.local into the address field of the browser and not just localhost.
For testing a canvas or tab app it is faster if you use the 'open iframe in new tab' command of Firefox. This way the session and cookies from Facebook are preserved.
Another solution is NGROK
https://ngrok.com/
It opens a public tunnel to your local app
Example on my rails application by simply typing
./ngrok 3000
I get
http://630066fe.ngrok.com -> 127.0.0.1:3000