Flask (Python)
Flask fonctionne sur Kavio sans aucune variable d'environnement à déclarer — c'est le framework le plus simple à déployer, à une condition près.
Le point à respecter : nom de fichier et nom de variable
Kavio détecte automatiquement une app Flask et la démarre tout seul, mais il s'attend à trouver :
- un fichier appelé
main.pyà la racine du dépôt, - contenant une instance Flask appelée
app:
from flask import Flask
app = Flask(__name__)
Avec un autre nom de fichier ou de variable, le démarrage automatique ne trouve rien à lancer. Si vous ne pouvez pas respecter cette convention (structure de projet différente, application factory…), utilisez la variable d'environnement RAILPACK_START_CMD pour préciser vous-même la commande, par exemple :
gunicorn --bind 0.0.0.0:${PORT:-8000} monmodule:mon_app
gunicorn doit aussi figurer dans requirements.txt — sans lui, Kavio ne démarre pas votre app avec un vrai serveur de production.
Le CSS/JS statique fonctionne sans rien faire
Contrairement à Django, Flask sert son dossier static/ nativement, sans étape de build à ajouter. Un simple {{ url_for('static', filename='style.css') }} dans vos templates suffit.
Une ligne à ignorer dans les logs
Vous verrez peut-être ceci au démarrage :
[ERROR] Control server error: [Errno 13] Permission denied: '/.gunicorn'
C'est sans conséquence — votre app démarre et répond normalement malgré cette ligne. Elle vient d'une fonctionnalité annexe du serveur (pilotage à chaud, non utilisée ici) qui tente d'écrire à un endroit réservé. Pour la faire disparaître, ajoutez --ctl-sock "" à la commande de démarrage (via RAILPACK_START_CMD) — mais ce n'est pas nécessaire.
Ce qui n'est pas nécessaire
Vous n'avez rien à faire concernant :
PORT— automatiquement imposé par la plateforme, votre app n'a pas à le déclarer ni à le lire.- Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).