...
github.com/aljosa
/
twitter.com/maljosa
aljosa@revolucija.hr
...
...
$ git clone repo
$ tar -cjf repo.tar.bz2 repo
$ s3put [...]
$ virtualenv env
$ source env/bin/activate
$ pip install Django ...
$ django-admin.py startproject gh_archive
$ django-admin.py startapp accounts
... settings ...
$ django-admin.py syncdb
$ django-admin.py runserver
$ pip install requests
# code:
def get_token(code):
...
resp = requests.post(url, data=payload, headers=...)
data = json.loads(resp.text)
...
token = data['access_token']
return token
def get_repos(token):
...
resp = requests.get(repos_url, headers=headers)
data = json.loads(resp.text)
...
return data
$ pip install boto
# code:
def create_bucket():
...
s3 = boto.connect_s3()
bucket = s3.create_bucket(bucket_name)
return bucket_name
$ pip install celery
# code:
from celery import Celery
from django.conf import settings
celery = Celery("tasks", broker=settings.BROKER_URL)
@celery.task
def clone_repo(clone_url, token):
...
def backup_repo(request, owner, repo):
...
clone_repo.delay(clone_url, token)
...
$ pip freeze > requirements.txt
$ git init
$ git add ...
$ git commit -m "initial files"
$ git remote add origin git@github.com:...
$ git push origin master
$ cat Procfile
web: gunicorn wsgi:application [...]
celery: celery -A accounts.tasks worker [...]
$ heroku create
$ git push heroku master
# http://www.postgresql.org
$ heroku addons:add heroku-postgresql:PLAN
# http://www.rabbitmq.com
$ heroku addons:add cloudamqp:PLAN
# code:
... settings ...
$ git push heroku master
https://devcenter.heroku.com/articles/dynos
https://devcenter.heroku.com/articles/slug-compiler
kod bez nepotrebnih stvari i sve
iz requirements.txt strpano u
jednu arhivu
https://devcenter.heroku.com/articles/scaling
jednostavno i brzo scale-anje
$ heroku ps:scale web=2 celery=5
Scaling web processes... done, now running 2
Scaling celery processes... done, now running 5
https://devcenter.heroku.com/articles/buildpacks
# default python buildpack
$ heroku config:add BUILDPACK_URL=\
git://github.com/heroku/heroku-buildpack-python.git
# custom buildpack, npr. PyPy
$ heroku config:add BUILDPACK_URL=\
git://github.com/mtigas/heroku-buildpack-pypy.git
https://devcenter.heroku.com/articles/oneoff-admin-ps
$ heroku run bash
$ heroku run django-admin.py syncdb
$ heroku run django-admin.py shell
https://devcenter.heroku.com/articles/logging
$ heroku logs
$ heroku logs --tail
$ heroku logs -t -p web
$ heroku logs -t -p celery
$ heroku logs --help
https://devcenter.heroku.com/articles/releases
$ heroku releases
=== app-name Releases
v168 Deploy dd0953b aljosa[...] 2012/11/09 16:01:56
v167 Deploy 9623355 aljosa[...] 2012/11/09 15:55:16
v166 Deploy 46b63cf aljosa[...] 2012/11/08 16:29:55
v165 Deploy 3923bbf aljosa[...] 2012/11/08 16:25:28
v164 Deploy 804393c aljosa[...] 2012/11/08 16:15:12
v163 Deploy e386d5b aljosa[...] 2012/11/08 15:54:42
v162 Deploy ca05c71 aljosa[...] 2012/11/08 14:30:04
v161 Deploy 3139f43 aljosa[...] 2012/11/08 13:57:57
v160 Deploy 069ac6a aljosa[...] 2012/11/08 13:44:08
$ heroku rollback v165
Rolled back to v165
https://devcenter.heroku.com/articles/using-cli-plugins
$ heroku plugins:install \
git://github.com/ddollar/heroku-accounts.git
$ heroku accounts:set work
$ heroku accounts:set personal
$ heroku plugins:install \
git://github.com/heroku/heroku-pg-extras.git
$ heroku pg:locks
...
github.com/aljosa
/
twitter.com/maljosa
aljosa@revolucija.hr