Que es heroku?
Es uno de los PaaS más utilizados en la actualidad en entornos empresariales para hacer el despliegue de aplicaciones. También te permite manejar el servido y sus configuraciones, escalamientos y la administración. Lo único que tienes que hacer es decirle la tecnología de backend y que base de datos utilizas.
Necesitamos unos pre requisitos para poder hacer el tutorial:
* Una cuenta en Heroku
* Python3.7
* PostgreSQL
* Git
Instalar Python3.7
Lo primero instalaremos las dependencias para poder instalar python.
- sudo apt-get install build-essential
- sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Después de esto nos bajaremos con el wget python3.7.2 en la carpeta /usr/src. Y descomprimimos el paquete
- cd /usr/src
- sudo wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
- sudo tar xzf Python-3.7.2.tgz
Entramos a la carpeta y compilamos el código para instalar python.
- cd Python-3.7.2
- sudo ./configure --enable-optimizations
- sudo make altinstall
Si quieres comprobar que versión tienes puedes utiliza
- Python3.7 -V
PostgreSQL
- sudo apt-get install postgresql
- which psql (Comprobar si esta instalado)
- sudo -u postgresql -i (Trabajar sobre un usuario postgre)
- psql (lanzar postgresql)
Git
- sudo apt-get install git-all
Vamos a configurar-lo
- git config --global user.name "Tu nombre"
- git config --global user.email tucorreo
- git config --list nos permitirá ver la configuración
Heroku
Lo primero que vamos a hacer es instalar snapd
- sudo apt-get install snapd
Seguidamente instalaremos heroku
- sudo snap install heroku --classic
y lanzamos heroku login --interactive para iniciar sesión, si no funciona tendremos que reiniciar el VPS lanzando el comando (- sudo init 6)
- heroku login --interactive
Vamos a clonar nuestro git
- git clone tuproyectogit.git
cd tuproyecto/
Vamos a crear la aplicación de heroku y lo vamos a subir
- heroku create
- git push heroku master
En el requirements.txt añadiremos gunicorn
- echo gunicorn > requeriments.txt
En el settings.py cambiaermos el ALLOWED_HOSTS
ALLOWED_HOSTS=['tunombreheroku.herokuapp.com']
- sudo nano conduit/settings.py (Esta ruta es en mi caso)
Después de tener todo esto vamos a crear el fichero Procfile y Procfile.window.
- echo web: gunicorn conduit.wsgi --log-file - > Procfile
- echo web: python manage.py runserver > Procfile.windows
lo añadimos al repositorio
- git add .
- git commit -m "Commmit Procfile y Procfile.windows"
- git push heroku master
realizamos los dos siguientes comandos.
- heroku ps:scale web=0
- heroku ps:scale web=1
Si vamos a la dirección de heroku ya tendremos la aplicación funcionando
unombreheroku.herokuapp.com
En mi caso es esta
Información conseguida de: