Si vous avez construit un portfolio ou un prototype d’application avec Django, l’héberger gratuitement sur Vercel n’est plus qu’à quelques clics et un petit morceau de code. Heroku était une bouée de sauvetage, mais il a cessé de proposer un hébergement gratuit en 2022.
En utilisant Vercel, vous pouvez déployer votre application directement depuis GitHub gratuitement, et tout le monde peut y accéder de n’importe où. Voici comment procéder.
Configurer votre application Django pour Vercel
Vous devrez configurer quelques aspects de votre projet Django avant de pouvoir le déployer sur Vercel.
Configurer le fichier vercel.json
Tout d’abord, vous devez créer un fichier vercel.json dans le dossier racine de votre projet pour diriger Vercel vers l’interface gateway du serveur web (WSGI) de votre application :
{
"builds": [
{
"src": "django_app_name/wsgi.py",
"use": "@vercel/python"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}
Remplacer django_app_name avec le nom de votre application Django (le même que le dossier qui contient le fichier settings.py file).
Refonte du fichier wsgi.py
Vercel ne reconnaît pas l’option application dans le fichier wsgi.py. Heureusement, la seule modification que vous devrez apporter pour résoudre ce problème est de passer la variable application variable en Vercel en tant que app.
Donc, refactorisez le code de votre application wsgi.py comme indiqué :
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
application = get_wsgi_application()
app = application
Connexion à une base de données distante
Si votre application a besoin d’un support de base de données, utilisez la provision de Vercel ou créez une instance de base de données externe quelque part. Heureusement, il existe de nombreuses options de bases de données PostgreSQL gratuites en ligne. Vous pouvez également vous connecter à un cluster MongoDB si vous préférez une base de données NoSQL.
Cependant, nous nous en tiendrons ici au cluster de base de données PostgreSQL de Railway, car il offre un crédit de démarrage et est facile à configurer.
Pour configurer une instance PostgreSQL sur Railway :
- Visitez le site web de Railway pour créer un compte.
- Cliquez sur Démarrer un nouveau projet.
- Sélectionnez Provisionner PostgreSQL.
- Cliquez sur le bouton Postgres bannière pour voir les variables de votre base de données et les chaînes de connexion.
- Allez sur le site Variables onglet. Ensuite, copiez et collez le DATABASE_URL dans un éditeur de texte pour la mettre en forme. Assurez-vous de remplacer les caractères de remplacement dans la chaîne DATABASE_URL avec les valeurs de variables appropriées.
- Copiez les variables restantes et configurez votre base de données dans votre environnement Django. settings.py comme indiqué ci-dessous. N’oubliez pas de remplacer les noms de variables par les valeurs appropriées fournies par Railway.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'URL': 'DATABASE_URL',
'NAME': 'PGDATABASE',
'USER': 'PGUSER',
'PASSWORD': 'PGPASSWORD',
'HOST': 'PGHOST',
'PORT': PGPORT,
}
}
Pensez à masquer ces variables secrètes en utilisant un .env pour renforcer la sécurité de votre application Django. De plus, Vercel vous permet de lister vos variables d’environnement lors du déploiement.
Donc, une fois que vous utilisez la fonction os.getenv Python va chercher la variable spécifiée dans l’environnement d’hébergement Vercel. Ainsi, la configuration de votre base de données devient :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'URL': os.getenv('POSTGRES_URL'),
'NAME': os.getenv('PGNAME'),
'USER': os.getenv('PGUSER'),
'PASSWORD': os.getenv('POSTGRES_PASSWORD'),
'HOST': os.getenv('PGHOST'),
'PORT': os.getenv('PGPORT),
}
}
Déployer votre dépôt GitHub sur Vercel
La deuxième partie de ce processus consiste à faire pointer Vercel vers votre dépôt sur GitHub. Une fois que vous l’avez fait, votre application sera en ligne et tout le monde pourra accéder à votre site Web à une URL que Vercel génère.
Créer un fichier d’exigences
Vercel essaie de trouver et d’installer les dépendances de votre projet à l’intérieur du fichier requirements.txt pendant le déploiement. Toutefois, n’oubliez pas que l’écriture des dépendances d’un environnement virtuel dans le fichier exigences.txt est toujours plus facile que celle de l’espace global.
Créez un fichier requirements.txt dans le dossier racine de votre projet en utilisant la commande suivante via le terminal :
pip freeze > requirements.txt
Connecter votre référentiel à Vercel
Vercel fonctionne en suivant les changements dans un référentiel. La première étape du déploiement est donc de pousser votre code vers GitHub ou tout autre système de contrôle de version qui fonctionne le mieux pour vous. Ignorez cette étape si votre code est déjà sur GitHub.
Pour commencer sur Vercel :
- Inscrivez-vous sur le site Web de Vercel en utilisant votre compte GitHub. Suivez les instructions à l’écran pour terminer l’enregistrement du compte et commencer à travailler.
- Ensuite, sélectionnez l’option de compte Hobby pour utiliser Vercel gratuitement.
- Une fois connecté, cliquez sur Ajouter un nouveau. Cliquez ensuite sur Projet.
- Ensuite, cliquez sur Ajouter un compte GitHub de la Importer le dépôt Git section. Ou vous pouvez cliquer Changer de fournisseur Git si vous utilisez un autre contrôle de version que GitHub.
- Cliquez sur Tous les dépôts. Cliquez ensuite sur Installer.
- Sélectionnez votre compte GitHub dans la liste.
- Vercel détectera automatiquement vos dépôts. Cliquez sur Importer à droite de celui portant votre projet Django.
- Cliquez sur le bouton Variables d’environnement pour lister vos variables d’environnement sur Vercel. Celles-ci peuvent inclure la clé secrète de votre application et les chaînes de connexion à la base de données. Remplissez le Nom avec le nom de la variable. Saisissez ensuite sa valeur dans le champ Valeur champ.
- Cliquez sur Ajouter pour créer un nouveau champ et ajouter d’autres variables d’environnement.
- Enfin, cliquez sur Déployer. Votre application devrait être en ligne dans quelques instants. Cliquez sur l’URL à droite de l’icône web pour visiter votre nouveau site web.
Une fois déployé, Vercel suit les changements ultérieurs poussés vers la branche principale pour les refléter dans la version active. Ainsi, il vous suffit de déployer vos modifications sur GitHub pour mettre à jour votre application en temps réel.
Alors que Vercel génère automatiquement une URL pour votre site web Django, vous pouvez également déployer en utilisant un nom de domaine personnalisé. Pensez donc à acheter un nom de domaine auprès d’un registraire si vous en avez besoin.
Hébergez votre site Web Django sans frais
Parfois, il faut plus qu’un dépôt GitHub pour impressionner les employeurs et les clients potentiels. Si un référentiel solide et cohérent témoigne de votre compétence, l’affichage d’une version en direct de votre portfolio ou du prototype de votre projet vous présente comme un battant.
Héberger un projet qui ne génère pas de revenus est souvent décourageant. Mais heureusement, Vercel est l’un des rares services d’hébergement gratuit. Et vous avez vu comment déployer gratuitement votre projet Django sur la plateforme. Bien que l’URL générée semble peu soignée, vous pouvez la coller dans le ReadMe de votre projet sur GitHub pour montrer aux gens comment fonctionne votre création.