FR
Se connecter Crée ton compte

Comment installer Django sur Saplo (ta propre application Python)

Une application Django a besoin d'un processus gunicorn en arrière-plan, pas seulement d'un répertoire de fichiers - tout comme Next.js côté Node. Sur Saplo, tu installes Django comme un service géré avec redémarrage automatique, des migrations et ta propre base de données Postgres connectée via `saplo.yaml`.

Grzegorz Kalmus ·

Django est un framework mature pour créer des applications web et des API en Python, avec un ORM, un système de migration et un panneau d'administration intégrés. Cependant, ta propre application Django a besoin d'un processus WSGI (généralement gunicorn) fonctionnant en arrière-plan, et pas seulement d'un répertoire avec des fichiers - tout comme Next.js a besoin d'un processus Node. Un hébergement partagé ordinaire ne permet pas d'exécuter un tel processus. Sur Saplo, tu lances Django en tant que service géré avec redémarrage automatique, et Nginx sert les fichiers statiques et les médias à côté.

À qui s'adresse Django sur Saplo

Avant de commencer l'installation, vérifie si c'est le bon choix pour ton projet :

  • tu as ton propre projet Django - Saplo exécute gunicorn en tant que service géré, tu n'as pas besoin d'écrire toi-même la configuration systemd,
  • API pour une application mobile ou un frontend SPA séparé - Django Rest Framework ou des vues JSON classiques, tu peux installer le frontend (React, Vue) séparément à partir du même répertoire,
  • un projet qui a évolué à partir d'un plan gratuit Heroku, Render ou PythonAnywhere - tu migres le code sans modifications dans l'application elle-même, il te suffit d'ajouter saplo.yaml,
  • tu veux des déploiements avec git push au lieu de télécharger des fichiers manuellement - tu connectes le dépôt une fois, et Saplo construit, migre et redémarre le service automatiquement.

Exigences

Pour installer Django sur Saplo, tu as besoin :

  • D'une Box L ou supérieure, si le projet utilise sa propre base de données Postgres et un trafic réel. Un projet de démarrage avec SQLite peut tenir sur un plan inférieur, mais une base de données de production et un trafic plus important nécessitent plus de RAM.
  • D'un minimum de 256 Mo de RAM libre et de 2 Go d'espace disque pour le processus de l'application (starter).
  • De la version Python 3.11 ou 3.12 pour une installation depuis le catalogue, ou 3.13 pour les déploiements via Git.
  • D'un domaine ou d'un sous-domaine *.saploapp.pl inclus dans chaque plan.
  • D'un dépôt Git, si tu souhaites utiliser le déploiement automatique (optionnel pour commencer, tu peux aussi télécharger l'application via une archive .zip depuis le Panneau).

Installation étape par étape

  1. Dans le Panneau Saplo, va dans le Catalogue d'applications et choisis Django (catégorie "Applications").
  2. Indique la Box et le nom de l'application - cela créera un sous-domaine par défaut <name>.saploapp.pl.
  3. Choisis la version de Python (3.11 ou 3.12, 3.12 par défaut) et confirme l'installation.
  4. Le moteur crée un nouveau projet Django avec une base de données SQLite (suffisant pour le démarrage et les tests), configure gunicorn via supervisor sur le port 8000, et nginx proxy le trafic du Domaine vers ce port.
  5. Une fois l'installation terminée, le Domaine de l'étape 2 affichera un squelette Django fonctionnel - à partir de là, tu peux y déployer ton propre projet.

Déployer votre propre code via Git

  1. Dans les détails de l'application, trouve la section Git / CI-CD et clique sur « Connecter GitHub ». Confirme l'installation de l'application « Saplo Deploy » et indique le dépôt de ton projet Django.
  2. Place le fichier saplo.yaml dans le répertoire racine du dépôt avec la commande de build (par exemple collectstatic) et les paquets système optionnels (par exemple libpq-dev, si tu te connectes à PostgreSQL).
  3. Tu peux lancer les migrations avec le hook hooks.post_deploy: python manage.py migrate. Il s'exécute après le build, avant le démarrage de l'application, tu n'as donc pas besoin de te connecter via SSH après chaque déploiement.
  4. Tu peux configurer ta propre base de données PostgreSQL en tant qu'application distincte à partir du Catalogue d'applications. Lors de la création de l'application Django, sélectionne-la dans la section Connecter à la base de données - la variable DATABASE_URL est automatiquement ajoutée au processus de l'application.
  5. Committe et pousse saplo.yaml sur la branche de production (par défaut main). Chaque git push suivant construit, migre et redémarre le service. Tu peux voir le statut dans l'onglet Déploiements.

Exemple de fichier saplo.yaml minimal pour Django :

name: my-project
stack: django
runtime:
  python: "3.13"
build:
  install: pip install -r requirements.txt
  command: python manage.py collectstatic --noinput
packages:
  - libpq-dev
env:
  DJANGO_SETTINGS_MODULE: config.settings.production
hooks:
  post_deploy: python manage.py migrate
start:
  command: gunicorn config.wsgi:application
  port: 8000

Tu as ton propre Dockerfile dans ton projet et tu préfères un contrôle total sur l'environnement d'exécution ? Choisis le stack Docker dans le catalogue au lieu de Django. Saplo ne fera alors pas de build natif + gunicorn + nginx pour /static/, mais exécutera ton image telle que tu l'as construite.

Django sur Saplo vs alternatives

PythonAnywhere Heroku / Render Django sur Saplo
Modèle de facturation limite CPU sur le plan gratuit, plus élevé sur les plans payants consommation de ressources, augmente avec le trafic coût fixe du Box
Déploiements depuis Git limités, principalement téléversement manuel oui, nativement oui, git push vers la branche de production
Migrations après déploiement manuellement via la console release phase dans Procfile hook post_deploy dans saplo.yaml
Base de données Postgres personnelle service séparé, coût supplémentaire addon séparé, facturé séparément application séparée du même catalogue

Questions fréquentes

La base de données SQLite du starter est-elle adaptée à la production ? Oui, pour un trafic faible et des tests, mais pour un trafic plus important, connecte une base de données Postgres depuis le catalogue d'applications (section Bases de données) et sélectionne-la lors de la création de ton application Django.

Les migrations s'exécutent-elles automatiquement à chaque déploiement ? Oui, si tu ajoutes le hook hooks.post_deploy: python manage.py migrate dans saplo.yaml - il s'exécute après la construction, avant le démarrage de l'application.

Puis-je avoir un processus supplémentaire à côté de Django, par exemple un worker Celery ? Oui, le champ processes dans saplo.yaml te permet de définir des processus supplémentaires lancés en même temps que le processus principal.

Que faire si mon projet se connecte à Postgres et a besoin de libpq ? Entre le paquet système dans la section packages du fichier saplo.yaml - il sera installé avant la construction.

Vais-je obtenir un certificat SSL et mon propre Domaine ? Oui, le certificat SSL est automatique, et le Domaine ou sous-domaine *.saploapp.pl est inclus dans le Prix de chaque plan.

Tu peux déployer Django sur Saplo depuis zéro jusqu'à un Domaine fonctionnel en quelques minutes, et chaque git push suivant construit, migre et redémarre le service sans ton intervention. Si le projet nécessite un contrôle total de l'environnement d'exécution via son propre Dockerfile, tu trouveras le stack Docker dans le même répertoire.

  • #Django
  • #Git Deploy
  • #Guide
  • #Python