Simple, one line environment builder for Tornado web apps.
Supports Procfile start / stop. Ideal for heroku
Adds static JS file compilation via Google Closure Compiler web service API. Compile static files on any machine with an internet connection. No need to install Java!
Leverages environmental specific configuration files.
This is inspired by Mike Dory's work on https://github.com/mikedory/Tornado-Heroku-Quickstart as well as Ruby on Rails fully integrated development environment.
Setup a Build Environment
[4/7/2013: you must checkout the entire project for the time being. The curl script sends an abort trap]
The fastest way to setup in an enviroment. Creates a heroku-ready, deployable environment in seconds.
bash <(curl -fsSL "http://bitly.com/heroku-skeleton") ~/path/to/appdir cd ~/path/to/appdir bash app/scripts/runlocal.sh #starts server on http://localhost:5000
Clone Repos and Setup a Build Environment
Download build_env.sh to your computer using GIT
git clone https://github.com/gregory80/heroku-skeleton.git bash heroku-skeleton/build_env.sh ~/path/to/appdir
After you install, initialize a git repository, activate virtual env, start the server Once started, access your new Tornado application via http://localhost:5000
cd ~/path/to/appdir bash app/scripts/runlocal.sh
When INSTALL_PIP is true, installs the following python packages to your application specific virtual env
tornado gunicorn redis pylibmc beatutifulsoup4
Builds the directory, see the build_env.sh for explicit file references
You can source in and override variables using boolean values. Set these in the home directory here
INSTALL_PIP INTALL_VENV JS_FILES APP_FILES BASE_GIT SCRIPTDIR
Local or Remote
The build script will first attempt to utilize all template files from the local build_templates/ directory.
Should any file fail, script will make a cURL call to the git repository and fill in files from the remote version.
This means a local folder can
be used to override any template files. You can easily
override this by setting a local build_templates folder
or if you are installing via cURL download one-liner
set it to fetch from a different repository for
BASE_GIT in the
file. For example, if you wanted to use your own fork, edit
/.bash_env.config in your home directory.
Edit the config file
~/.build_env.config # override the value BASE_GIT="https://github.com/<GIT USERNAME>/heroku-skeleton/tree/master"
Activate virtual env
Activate the virtual env to enable the same pacakages that run under runlocal.sh
Locally, starting the service to also include setting in your .env file, is done with honco
honcho start --procfile=Procfile
Script tags are parsed from the http://localhost:5000/. All scripts are subsequently queried to form a single, raw string.
Compiled script is substitued for individual files in any environment besides DEV
Get environmental package config values using pip freeze.
pip freeze > requirements.txt
Procfile is setup to be controlled via honcho You may consider creating a Dev_Procfile for local development
Enviromental config variables simulated in
.env file, primarily ENV, PORT and memcached host values.
gunicorn for heroku start code via https://github.com/mccutchen
- python 2.7
- virtual env