I don't know how many users on this list are familiar with OpenShift.
This is a Red Hat-sponsored cloud service providing virtual

One of the popular applications selected for use as a demonstration of
the power of OpenShift was ReviewBoard. I'd like to describe for you
what I now believe to be the easiest way to get a ReviewBoard 1.6.1
server up and running with zero hardware investment. Oh, and did I
mention that OpenShift Express is free (up to 10,000 files and 256MB of

There are two caveats here:
1) The 10,000 file limit seems to be preventing upgrades of Django
itself (which contains about 7,000 files). So when trying to unpack an
upgrade of Django, it fails. I've spoken to the OpenShift developers and
they're probably going to increase this limit for Django apps, but I
don't have a firm timeline on that.

2) You need to bring your own SMTP server if you want email updates.
Because the OpenShift servers exist in public clouds (I believe - but
I'm not certain - it's Amazon's cloud) many email systems will deny
email originating from cloud IPs. So you will need to set up an STMP
server in a trusted network in order for your emails to reach their

The Really Really Easy Way:

1) Create an account at http://openshift.redhat.com/
2) Install the client binaries (see instructions when creating account)
3) Download the openshift-quickstarter script from
4) ./openshift-quickstarter LOGIN DOMAIN APPNAME reviewboard

      LOGIN: Your OpenShift username
     DOMAIN: Your OpenShift domain
    APPNAME: The name of your application

The more detailed way (explicitly perform the steps provided by the
above script)

The original text of this guide (as well as any updates) is available at

OpenShift - ReviewBoard
1) Create an account at http://openshift.redhat.com/
This repository is designed to be used with http://openshift.redhat.com/
applications. To use, just follow the quickstart below.


1) Create an account at http://openshift.redhat.com/
2) Create a wsgi-3.2 application and attach mysql to it:
    $ rhc-create-app -a reviewboard -t wsgi-3.2
    $ rhc-ctl-app -a reviewboard -e add-mysql-5.1
3) Add this upstream reviewboard repo
    $ cd reviewboard
    $ git remote add upstream -m master
    $ git pull -s recursive -X theirs upstream master
4) Then push the repo upstream
    $ git push
5) That's it, you can now checkout your application at:
6) Default Admin Username: Admin
   Default Password: OpenShiftAdmin


In order to update or upgrade to the latest reviewboard, you'll need to
and re-push.

1) Pull from upstream:
    $ cd reviewboard/
    $ git pull -s recursive -X theirs upstream master
2) Push the new changes upstream
    $ git push

Note: When new releases are pushed from the reviewboard dev team, your
app will
automatically download them on your next git push.

Repo layout
wsgi/ - Externally exposed wsgi code goes
libs/ - Additional libraries
data/ - For not-externally exposed wsgi code
setup.py - Standard setup.py, specify deps here
../data - For persistent data (also env var: OPENSHIFT_DATA_DIR)
.openshift/action_hooks/build - Script that gets run every push, just
prior to
    starting your app

Environment Variables

OpenShift Express provides several environment variables to reference
for ease
of use. The following list are some common variables but far from

    os.environ['OPENSHIFT_APP_NAME'] - Application name
    os.environ['OPENSHIFT_APP_DIR'] - Application dir
    os.environ['OPENSHIFT_DATA_DIR'] - For persistent storage (between
    os.environ['OPENSHIFT_TMP_DIR'] - Temp storage (unmodified files
deleted after 10 days)

When embedding a database using rhc-ctl-app, you can reference
variables for username, host and password:

    os.environ['OPENSHIFT_DB_HOST'] - DB host
    os.environ['OPENSHIFT_DB_PORT'] - DB Port
    os.environ['OPENSHIFT_DB_USERNAME'] - DB Username
    os.environ['OPENSHIFT_DB_PASSWORD'] - DB Password

To get a full list of environment variables, simply add a line in your
.openshift/action_hooks/build script that says "export" and push.

Notes about layout
Please leave wsgi, libs and data directories but feel free to create
directories if needed.

Note: Every time you push, everything in your remote repo dir gets
please store long term items (like an sqlite database) in ../data which
persist between pushes of your repo.

Notes about setup.py

Adding deps to the install_requires will have the openshift server
install those deps at git push time.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to