Deploy de proyectos Django a Heroku

Deploy de proyectos Django a Heroku
  
Mayo 27, 2014   0  

Heroku es una plataforma de hosting orientada a desarrolladores. Fue fundada en el 2007 y actualmente brindan soporte para varios lenguajes entre ellos Python. El sistema operativo utilizado es ubuntu y debian. Para realizar el deploy de nuestras aplicaciones es necesario tener nuestro código en un repositorio, por ejemplo en Github.

 

En este tutorial haremos la publicación o deploy de un proyecto desarrollado en Django usando github y Ubuntu. Te recomiendo crear una cuenta en Heroku.com y en Github.com

Paso 1: 

Instalar la herramienta de Heroku Toolbet: https://toolbelt.heroku.com/ . Se encuentra disponible para los Sistemas Operativos Mac OS X, Windows, Debian/Ubuntu. Para Debian/Ubuntu puedes utilizar en la linea de comando:

wget -qO- https://toolbelt.heroku.com/install.sh | sh

Se deben agregar las llaves ssh de nuestro ordenador a Heroku con la siguiente guía.

Paso 2:

Debemos instalar GIT si aún no lo tenemos para poder realizar el deploy a heroku. En Debian o Ubuntu podemos realizarlo con el comando:

sudo apt-get install git

Crear las llaves de acceso desde nuestro ordenador. Pueden realizarlo siguiendo la guía de Github.

Paso 3:

Si todo ha salido bien, debes poder loguearte en heroku desde la consola utilizando:

heroku login

Nos solicitará nuestro email y contraseña de Heroku, recibiremos el mensaje de “Authentication successful.” si nos logueamos correctamente.

Paso 4

Creamos nuestra aplicación en heroku:

heroku create proydemo

Obtendremos un mensaje como el siguiente:

Creating proydemo... done, stack is cedar
http://proydemo.herokuapp.com/ | git@heroku.com:proydemo.git
Git remote heroku added

Esto quiere decir que nuestra aplicación ha sido creada y podemos consultar nuestro enlace de prueba: http://proydemo.herokuapp.com/

Paso 5

Nos posicionamos en el directorio donde ubicamos nuestros proyectos. Por ejemplo puede ser en “/home/<user>/”. Hacemos un clone del proyecto en Github, tomaremos de ejemplo: https://github.com/damianpv/proyecto_demo, y haremos un clone con el comando:

git clone git@github.com:damianpv/proyecto_demo.git

Paso 6

Heroku necesita que tengamos en nuestro  proyecto un archivo llamado “requirements.txt”, con el cuál podrá instalar en Heroku los paquetes que necesite nuestra aplicación. Utilizando los entornos virtuales con virtualenv y virtualenvwrapper podemos realizarlo con el siguiente comando:

pip freeze > requirements.txt

Puedes ver un ejemplo del archivo aquí. Si observas el archivo requirements.txt utilizo la aplicación “gunicorn” es un servidor para python que nos ayudará servir nuestros archivos dinámicos de forma más eficiente y rápida en heroku, también se debe agregar en INSTALLED_APPS  del archivo settings.

Paso 7

Realizamos un collectstatic de todos los archivos estaticos de nuestro proyecto: Imágenes, JS, CSS.

python manage.py collectstatic

Paso 8

Ahora necesitamos crear un archivo llamado Procfile:

nano Procfile

que tenga el siguiente contenido:

web: gunicorn proy_demo.wsgi -b 0.0.0.0:$PORT

Con esto le decimos a heroku que inicie el servidor de gunicorn con la aplicación proy_demo

Paso 8

Comprobamos los archivos modificados y nuevos:

git status

Agregar los archivos nuevos.

git add .

Realizar push a Heroku y relizar el deploy de nuestra aplicación.

git push heroku master

Al terminar recibiremos un mensaje similar a: http://proydemo.herokuapp.com/ deployed to Heroku.

Cada vez que se realicen cambios y se necesite realizar el deploy a Heroku, debemos repetir el paso 8.

Espero este tutorial les sea de ayuda para publicar sus propios proyectos en Heroku.




alexdzul
Alex Dzul
Desarrollador Python. Me gusta las iniciativas de software libre.

Temas relacionados


Visual Studio como IDE para Python

Hace 1 año,4 meses