The TyphoonAE project (formerly known as twistedae) aims at providing a full-featured and productive serving environment to run Google App Engine (Python) applications. It delivers the parts for building your own scalable App Engine while staying compatible with Google's API.

The Stack


Install Ubuntu 9.0.4 or 9.10 (32 or 64 bits)

Install dependencies for building TyphoonAE

sudo apt-get update
sudo apt-get install build-essential python2.6-dev mercurial libncurses5-dev libssl-dev libexpat-dev \
python-setuptools erlang-dev gettext sun-java6-jre
sudo apt-get clean

Get latest sources from mercurial trunk branch

hg clone https://typhoonae.googlecode.com/hg/ typhoonae

Build the whole stack by typing the following commands

cd typhoonae

python bootstrap.py

Starting TAE

Configure the demo application
./bin/apptool parts/demo/

Run the supervisor daemon which starts and controls all services at once


You can access the application using a web browser with the following URL


And access the supervisor web ui with the following URL (default credentials: admin/admin)


You can add some data with the following command

./bin/appcfg upload_data --config_file=src/demo/note_loader.py --filename=src/demo/notes.csv \
--kind=Note --url=http://localhost:8080/remote_api parts/demo/

How to change installed app:

./bin/supervisorctl -u admin -p admin shutdown
./bin/apptool <new application directory>

Deploy an app

Django 1.1 (appengine-patch)

e.g. installing django appengine-patch on TyphoonAE
as appengine-patch need gettext and a JRE for i18n and combine css & js media
we installed previously gettext and sun-java6-jre packages

Add to manage.py the lines below (before: if __name__ == '__main__')
Adjust to your TAE path

import sys
sys.path.insert(2, '/home/ubuntu/typhoonae/parts/google_appengine/lib/antlr3')
sys.path.insert(3, '/home/ubuntu/typhoonae/parts/google_appengine/lib/django')
sys.path.insert(4, '/home/ubuntu/typhoonae/parts/google_appengine/lib/webob')

Generate media (css & js combined)

python manage.py generatemedia
mv media _media
ln -s _generated_media media
cd typhoonae
./bin/supervisorctl -u admin -p admin shutdown
./bin/apptool ../appenginepatch-sample

That's it!

You should have access to Django 1.1 appengine-patch


Install subversion client

sudo apt-get install subversion

Get latest jaikuengine sources from subversion trunk repository

svn checkout http://jaikuengine.googlecode.com/svn/trunk/ jaikuengine

Configure Jaikuengine

cd jaikuengine
python manage.py config --write-to-file

Generate media

python manage.py generatemedia

Activate Jaikuengine in TAE

cd ../typhoonae/
bin/supervisorctl -u admin -p admin shutdown
bin/apptool ../jaikuengine

Finish configuration of Jaikuengine