## 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) |