Langage Francfort, Allemagne
Nodion construit avec son buildpack Python tout dépôt qui contient un requirements.txt, un Pipfile ou un pyproject.toml. Il installe vos dépendances, démarre Django, FastAPI et Flask avec un serveur de production et lance tout le reste depuis app.py, main.py ou votre Procfile. L'app tourne à Francfort.
requirements.txt, Pipfile ou pyproject.tomlapp.py / main.py ou Procfilepoetry.lock (Poetry), Pipfile.lock (Pipenv), requirements.txt (pip), puis un pyproject.toml seul, installé avec pip install . (ou avec Poetry s'il contient une section [tool.poetry]). Un uv.lock est ignoré, et un Pipfile sans son lockfile n'installe rien. .python-version, puis runtime.txt, puis requires-python dans pyproject.toml ; sans aucun d'eux, vous obtenez la 3.13. Une plage comme requires-python = ">=3.10" se résout vers la dernière version publiée, actuellement la 3.15 : fixez donc la version avec laquelle vous testez. .python-version 3.13 manage.py) démarre avec Gunicorn, FastAPI ou Starlette avec Uvicorn, Flask avec Gunicorn. Le serveur n'est pas ajouté à votre place : listez-le dans vos dépendances. Sans framework, Nodion exécute python app.py ou python main.py, et ce script doit écouter sur 0.0.0.0 et sur le PORT défini par Nodion. web: remplace la commande par défaut. Sans Django, FastAPI, Flask, app.py ni main.py, le Procfile doit définir un processus, web: ou worker: ; sinon, le build s'arrête avec une erreur qui indique ce qui manque. Une ligne release: s'exécute une fois par build avant le démarrage de la nouvelle version : c'est là que vont les migrations. Procfile web: gunicorn myapp.wsgi --bind 0.0.0.0:$PORT
release: alembic upgrade head DATABASE_URL, n'existent qu'à l'exécution. Ensuite, chaque push construit une nouvelle release. worker: ne démarre rien à elle seule : ajoutez dans l'onglet Processes un processus du même nom, sans port. Gardez à côté une ligne web: explicite, car sans elle la première entrée du Procfile autre que release: devient la commande par défaut. Une app composée uniquement de workers, comme un bot, règle plutôt web sur 0 instance.requirements.txt, Pipfile, pyproject.toml, poetry.lock et Pipfile.lock. Les lockfiles listent aussi les dépendances indirectes : une bibliothèque qui dépend de FastAPI, comme Gradio, peut donc déclencher la commande par défaut de FastAPI. Une ligne web: lève toute ambiguïté.requirements.txt, par exemple avec uv export --no-emit-project -o requirements.txt, et commitez-le ; sinon, Nodion installe à partir de pyproject.toml sans lockfile.DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL. release: du Procfile s'exécute à chaque nouveau build. Les apps Dockerfile, ainsi que les redéploiements ou les rollbacks vers une image antérieure, utilisent une commande de release définie sur l'app elle-même, qui prime aussi sur la ligne du Procfile. Sur les sites statiques, l'étape de release s'exécute dans une image qui ne contient que les fichiers générés par le build. De la 3.10 à la 3.15, avec la 3.13 par défaut. Fixez-en une dans .python-version et vous obtenez la dernière version corrective de cette branche. Les versions arrivées en fin de vie font échouer le build avec un message clair.
Dans ce cas, sans Django, FastAPI ni Flask, c'est votre Procfile qui indique ce qui s'exécute : une ligne web: pour un serveur ou une ligne worker: pour un processus en arrière-plan. Sans cette ligne, le build échoue avec une erreur qui vous indique quoi ajouter.
Oui. Ajoutez-le à un Procfile sous la forme worker: python job.py, créez dans l'onglet Processes un processus nommé worker sans port et réglez web sur 0 instance. Pour les scripts planifiés, utilisez plutôt l'onglet Cron.
Dans la région EU Central, à Francfort (Allemagne). Le build, le registry, l'app et ses bases de données, volumes, buckets, logs et métriques restent dans cette région. L'API et le plan de contrôle de Nodion sont hébergés en Allemagne. Nodion GmbH a son siège à Stuttgart.
Nodion en pose les bases : Nodion GmbH a son siège à Stuttgart (Allemagne). Dans la région de Francfort, l'app, ses bases de données et ses volumes fonctionnent en Allemagne. Vous concluez le DPA (accord de traitement des données, art. 28 RGPD) par voie électronique dans le dashboard. La conformité de votre déploiement dépend aussi de la façon dont vous configurez et utilisez l'app.
Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 2 EUR par mois : App 2 EUR. Les prix sont HT, avec une facturation à la seconde. Vous pouvez choisir des tailles plus grandes ou davantage d'instances dès que vous en avez besoin.
Oui. Chaque app reçoit un nom d'hôte par défaut avec HTTPS. Ajoutez votre propre domaine dans l'onglet Domains de l'app. Le certificat TLS est émis et renouvelé automatiquement.
Jusqu'à 15 € de crédit de bienvenue à l'inscription.
ou par e-mail
Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.
Inscription confirmée.