Upload
joe-fusaro
View
253
Download
0
Tags:
Embed Size (px)
DESCRIPTION
A quick overview on how to build a Django app on the Heroku platform
Citation preview
Building a Django App on HerokuGet your project up and running in 20 minutes or less.
What is Heroku?● Platform-as-a-Service (PaaS)● Acquired by salesforce.com in 2010
Why Heroku?● Focus on developer productivity● 100% free plan includes hosting & db● No need to think about servers● Easily scales
Why we chose Heroku● Free to start● No bandwidth/budget for devops● Flexibility to deploy elsewhere in future if
needed
PrerequisitesFamiliarity with:
● command line● git
PrerequisitesInstall:● pip
http://www.pip-installer.org● Postgres
pip install psycopg2
http://initd.org/psycopg/
PrerequisitesInstall:● Virtualenv
pip install virtualenv
Getting Started1. Sign up for a Heroku account at Heroku.com2. Install Heroku Toolbelt: https://toolbelt.heroku.com3. Log in via command line
Create a Django app locally$ mkdir mysite && cd mysite
$ virtualenv venv --distribute
$ source venv/bin/activate
$ pip install django-toolbelt
$ django-admin.py startproject mysite .
Create a ProcfileCreate a Procfile in your root project directory:
# Procfile
web: gunicorn hellodjango.wsgi
Create requirements.txt
$ pip freeze > requirements.txt
Note: If you do this out of order, you’ll need to manually create requirements.txt
Modify settings.pyimport dj_database_urlDATABASES['default'] = dj_database_url.config()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
ALLOWED_HOSTS = ['*']
# Static asset configurationimport osBASE_DIR = os.path.dirname(os.path.abspath(__file__))STATIC_ROOT = 'staticfiles'STATIC_URL = '/static/'
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'),)
Modify wsgi.py
from django.core.wsgi import get_wsgi_applicationfrom dj_static import Cling
application = Cling(get_wsgi_application())
Store your app in gitFirst create a .gitignore file; add:
venv*.pycstaticfiles
Store your app in gitInitialize a new git repository
$ git init
Add the new files$ git add .
Commit your files$ git commit -m "initial commit"
Push your code to HerokuCreate a new app on Heroku$ heroku create
Deploy your code to Heroku$ git push heroku master
Start your appStart a Heroku dyno
$ heroku ps:scale web=1
Scaling dynos... done, now running web at 1:1X.
Terminology: Dynos are isolated, virtualized Unix containers, that provide the environment required to run an application.
Each Heroku app comes with 1 free
dyno.
Visit your app
$ heroku open
Visit your app
Congrats! You’ve set up a live Django-powered application via Heroku.