Vous avez développé un site web portfolio simple en Python et souhaitez le déployer gratuitement ? Heroku est une excellente solution d'hébergement gratuit, même si les aspects techniques peuvent sembler complexes au premier abord.
Ce guide détaillé vous accompagne pas à pas pour héberger votre site Python sur Heroku de manière simple. Nous supposons une connaissance de base de Python et d'un framework comme Django (version 2.1.7 et Python 3.7 pour cet exemple ; vérifiez les versions compatibles actuelles).
Heroku est une plateforme PaaS (Platform as a Service) qui gère l'infrastructure via ses "Dynos". Elle vous permet de vous concentrer sur le déploiement sans gérer les serveurs.
Idéal pour un hébergement gratuit et rapide d'un portfolio en ligne, sans budget. D'autres options existent comme AWS ou PythonAnywhere, mais Heroku est particulièrement accessible pour les débutants en déploiement.
Avec le plan gratuit, pas besoin de nom de domaine personnalisé : Heroku génère un sous-domaine votre-app.herokuapp.com. Pour un domaine custom, un abonnement payant est requis, mais l'upgrade est simple.
Passons au déploiement concret.
Téléchargez Git depuis git-scm.com et suivez les instructions pour votre OS.
Créez un compte Heroku sur la page d'inscription.
Installez la CLI Heroku depuis le site officiel. Elle permet de gérer votre app via la ligne de commande.
Si Git vous est inconnu, consultez notre introduction au contrôle de version avec Git.
Créez un environnement virtuel, puis installez Django :
pip install django==2.1.7Initialisez le projet :
django-admin startproject nom_projetCréez une app :
python manage.py startapp nom_appInstallez Gunicorn : pip install gunicorn. Ajoutez-le à INSTALLED_APPS dans settings.py.

Exécutez python manage.py migrate pour la base de données. Votre app est prête.
Générez requirements.txt :
pip freeze > requirements.txtCréez Procfile (sans extension) à la racine :
web: gunicorn nom_projet.wsgiPour Windows, activez l'affichage des extensions dans l'Explorateur pour renommer correctement.

Optionnel : runtime.txt avec python-3.7.6.
Connectez-vous : heroku login.
Créez l'app : heroku create nom-app (choisissez un nom unique).
Dans le dashboard Heroku, vérifiez l'app créée.

Dans settings.py, définissez ALLOWED_HOSTS = ['*'].
Dans le dashboard > Settings > Buildpacks, ajoutez Python et sauvegardez.

Installez pip install django-heroku, régénérez requirements.txt.
Ajoutez dans settings.py :
import django_heroku
django_heroku.settings(locals())
# Commentez après déploiementInitialisez Git remote : heroku git:remote -a nom-app.
git status, git add ., git commit -m "Initial commit".
Désactivez collectstatic : heroku config:set DISABLE_COLLECTSTATIC=1.
Poussez : git push heroku master.
Accédez à https://nom-app.herokuapp.com.

Oui, Heroku supporte divers langages via Git, avec ajustements (ex. buildpacks). Le gratuit convient aux apps à faible trafic, avec limitations.
[]