Flask
Déployez Flask avec gunicorn, Postgres, les migrations et des workers RQ ou Celery.
Étape par étape : Déployer Flask sur DigitalOcean · Déployer Flask sur Hetzner · Déployer Flask sur Vultr · Déployer Flask sur OVHcloud · Déployer Flask sur Scaleway · Déployer Flask sur UpCloud
- Détecté à partir de
requirements.txtoupyproject.tomlqui listeflask. - Web : gunicorn sur
$PORTavecapp:app. Si votre application se trouve ailleurs, définissez la commande de démarrage sur votremodule:callable(pour une app factory,"myapp:create_app()"). - Version : aucune par défaut. Avec Flask-Migrate, réglez-la à
flask db upgrade; avec Alembic,alembic upgrade head. Une lignerelease:duProcfileest utilisée si présente. - Base de données :
psycopg→ Postgres, avecDATABASE_URLinjecté. - Workers et cron : RQ est proposé quand c’est une dépendance. Pour Celery, ajoutez
worker: celery -A myapp.celery workerà votreProcfileou ajoutez-le dans l’onglet Workers.
Les workers sont un second processus de la même application
Flask n’a pas de convention de worker qui lui soit propre, alors Railyard applique directement la règle 12-factor : déclarez un second processus dans votre Procfile et il se met à l’échelle indépendamment de web.
web: gunicorn app:app --bind 0.0.0.0:$PORT
worker: rq worker --url $REDIS_URL
Ou ajoutez-le depuis l’onglet Workers de l’application sans toucher au dépôt, et mettez l’un ou l’autre à l’échelle depuis la CLI :
railyard scale my-app worker=2
RQ est proposé automatiquement quand c’est une dépendance; Celery n’est pas détecté automatiquement pour Flask — il n’y a pas de convention unique pour l’emplacement de l’app Celery — alors déclarez sa commande vous-même, une seule fois. Voir Workers et tâches planifiées pour le cron : soit une commande planifiée là-bas, soit un second processus worker exécutant celery -A myapp.celery beat.
Configuration et secrets
DATABASE_URL est injecté dès que psycopg/psycopg2 est une dépendance, et REDIS_URL dès qu’un client Redis (redis, rq) en est une. Tout le reste — SECRET_KEY, FLASK_ENV, feature flags — est une simple variable d’environnement sous Variables, ou définie avec railyard env:set my-app KEY=VALUE depuis la CLI, donc la même image tourne sans changement de staging jusqu’en production : la parité dev/prod, pas une branche au moment du build. Pour pointer vers une base de données ou un Redis qui tourne comme son propre service sur le canvas, référencez-le avec ${{redis.RAILYARD_PRIVATE_URL}} — résolu par environnement. Voir Variables et secrets.
Déployez-le
- Depuis un dépôt : collez l’URL Git, ou choisissez-le dans le sélecteur une fois GitHub connecté — Railyard lit
requirements.txt/pyproject.toml, remplit gunicorn etDATABASE_URL, et déploie à chaque push. - Depuis la CLI :
railyard create my-app https://github.com/me/my-app --addons postgres,redis, ourailyard git:remote && git push railyard maindepuis le dépôt. - En un clic : ajoutez le bouton de déploiement à votre README, ou publiez-le dans le catalogue de modèles pour que n’importe qui puisse le lancer avec ses addons et variables déjà remplis.