| ## Gitblit on RedHat's OpenShift Cloud Service | |
| The Gitblit Express distribution can be copied to the root of your RedHat OpenShift | |
| application repository. Gitblit Express is an exploded WAR file with all appropriate | |
| dependencies bundled. | |
| You should delete the `pom.xml` file and the `src` folder from your application repository | |
| as Gitblit Express is not a source distribution to be built with Maven on OpenShift. | |
| Gitblit automatically adjusts itself to running on OpenShift. Repositories, users, | |
| federation proposals, setting overrides, and Groovy push scripts are stored in *OPENSHIFT_DATA_DIR*. | |
| ### Recommended Settings | |
| You should disable the git daemon by setting *git.daemonPort=0*. | |
| It is recommended to enable all RPC settings in the `web.xml` file to allow remote | |
| administration and, more importantly, configuration of your Gitblit Express | |
| installation using the Gitblit Manager. | |
| It is also recommended to set *web.forwardSlashCharacter* to ! because OpenShift | |
| runs on JBoss/Tomcat behind a proxy, neither of which are friendly to embedded | |
| forward-slashes. | |
| Please do not change the following settings unless you know exactly what you are | |
| doing: | |
| - *git.repositoriesFolder* | |
| - *groovy.scriptsFolder* | |
| - *federation.proposalsFolder* | |
| - *realm.userService* (for standard users.conf) | |
| ### Native Git Failures | |
| Unfortunately, sometime in early 2013 RedHat changed their SSL certificate such that cloning from/pushing to Gitblit Express over https fails due to an SNI (server name indication) TLS alert. There is no known workaround for native git and https. | |
| However, if your git client is JGit-based, like Eclipse/EGit, then you can workaround this problem and happily push/clone using https and OpenShift. | |
| Luckily, Java 6-based clients ignore SNI alerts but when using Java 7-based clients, SNI checking is enabled by default. You can disable SNI alerts by specifying the JVM system parameter `-Djsse.enableSNIExtension=false` when your Java-based client launches. | |
| For Eclipse, you can append `-Djsse.enableSNIExtension=false` to your *eclipse.ini* file. | |
| ### Heap and PermGen | |
| You may want to play with the heap and permgen settings of your Gitblit | |
| instance because the default heap for the JVM is 95 MB, which may be a little | |
| tight. | |
| To do that you will have to login to your account via ssh: | |
| ssh hashcode@app-domain.rhcloud.com | |
| and then you will have to manipulate the -Xmx and -XX:MaxPermSize values. | |
| vi $OPENSHIFT_APP_DIR/jbossas-7.0/bin/standalone.conf | |
| ctl_app restart | |
| OpenShift currently allows 300MB of memory per application which includes ssh access, JVM, etc. | |
| The Gitblit demo hosted on OpenShift Express operates with -Xmx160m and -XX:MaxPermSize=90m. | |
| For more detailed instructions on how to setup and deploy an OpenShift application | |
| please see this excellent turorial: | |
| [Deploying to OpenShift](https://github.com/opensas/play-demo/wiki/Step-12.5---deploy-to-openshift) |