¡Bienvenido! 🚀 Desplegar una aplicación Django en Heroku puede parecer complejo, pero con esta guía paso a paso disfrutarás de una experiencia fluida, profesional y llena de curiosidad. 🌟

Introducción

Heroku es una plataforma como servicio (PaaS) que simplifica el despliegue de aplicaciones web. Con soporte para Python y Django, ofrece escalabilidad automática, configuración de bases de datos y manejo de registros integrado. ¡Empezamos! 🛠️

Prerrequisitos

Cuenta en Heroku: Regístrate gratis en heroku.com 🔑 Git instalado: Control de versiones para empujar código. Heroku CLI: Instálalo desde devcenter.heroku.com 📦 Python 3.8 y virtualenv: Entorno aislado para tu proyecto.

Preparar la aplicación Django

1. Crear entorno virtual e instalar Django

python3 -m venv venv source venv/bin/activate (Linux/Mac) o venvScriptsactivate (Windows) pip install django gunicorn dj-database-url whitenoise

2. Configurar settings.py

2.1 SECRET_KEY y DEBUG

Extrae SECRET_KEY a la variable de entorno: os.environ.get(SECRET_KEY) y pon DEBUG = False en producción.

2.2 Allowed Hosts

Agrega tu dominio de Heroku:
ALLOWED_HOSTS = [tudominio.herokuapp.com] 🔒

2.3 Base de datos con dj-database-url

Usa dj_database_url para parsear DATABASE_URL:

import dj_database_url
DATABASES[default] = dj_database_url.config(conn_max_age=600, ssl_require=True)

2.4 Archivos estáticos con Whitenoise

Añade whitenoise.middleware.WhiteNoiseMiddleware en MIDDLEWARE y define:
STATIC_ROOT = os.path.join(BASE_DIR, staticfiles)
STATIC_URL = /static/

3. Crear archivos clave

Archivo Propósito
requirements.txt Lista dependencias: django, gunicorn, dj-database-url, whitenoise
Procfile Instrucción de inicio: web: gunicorn myproject.wsgi –log-file –
pip freeze > requirements.txt Crea Procfile sin extensión: web: gunicorn TU_PROYECTO.wsgi –log-file –

4. Inicializar Git

git init git add . git commit -m Preparación despliegue en Heroku

Desplegar en Heroku

1. Login y crear aplicación

heroku login 🚪 heroku create tu-app-nombre –region eu

2. Configurar variables de entorno

heroku config:set SECRET_KEY=tu_secret_key_secreta heroku config:set DEBUG=False

3. Push de código y escalado

git push heroku main (o master según tu rama) heroku ps:scale web=1 🖥️

Migraciones y pruebas finales

heroku run python manage.py migrate 🌱 heroku run python manage.py collectstatic –noinput 📂 heroku open 🌐

Gestión de registros y troubleshooting

heroku logs –tail 🔍 Verifica errores de base de datos, middleware o configuración de rutas estáticas.

Conclusión

🎉 ¡Enhorabuena! Tu aplicación Django está en producción en Heroku. Gracias a la configuración de Whitenoise, dj-database-url y Gunicorn, disfrutarás de un servicio estable y escalable. Sigue consultando docs de Heroku y docs de Django para profundizar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *