Langage Francfort, Allemagne

Déployez Node.js sur Nodion

Connectez un dépôt contenant un package.json et Nodion le construit avec son buildpack Node.js : il installe vos dépendances à partir du lockfile, exécute votre script build et démarre le serveur avec votre script start. Express, Fastify, Hono et les autres serveurs Node.js fonctionnent ainsi, tout comme les projets Bun. L'app tourne à Francfort, à côté d'une base de données PostgreSQL managée si vous en avez besoin.

Déployer sur Nodion ›

à partir de 1 EUR / mois

Jusqu'à 15 € de crédit de bienvenue à l'inscription

Détecté par
package.json sans framework frontend statique
Démarrage
script start, sinon node server.js, index.js ou app.js
Node.js
22, 24 (par défaut), 26
Région
EU Central (Francfort)

Déployez Node.js étape par étape

  1. Écoutez sur PORT Nodion définit PORT pour le processus web et y envoie le trafic. Lisez cette variable et liez le serveur à 0.0.0.0. Fastify écoute par défaut sur localhost : passez donc host: '0.0.0.0' à listen. server.js
    const express = require("express");
    
    const app = express();
    app.get("/", (req, res) => res.send("ok"));
    
    const port = process.env.PORT || 3000;
    app.listen(port, "0.0.0.0");
  2. Commitez un lockfile et un script start Commitez package-lock.json, yarn.lock, pnpm-lock.yaml ou bun.lock ; sans lockfile, le build échoue. Nodion exécute directement le script start, les hooks npm comme prestart ne s'exécutent donc pas. Sans script start, les frameworks connus comme Nuxt ont leur propre commande par défaut ; tout le reste démarre avec node server.js, index.js ou app.js, et en dernier recours avec node .. Les dépendances de développement sont supprimées après le build : les outils dont vous avez besoin à l'exécution, comme tsx ou une CLI de migration, vont dans dependencies. package.json
    "scripts": {
      "start": "node server.js"
    }
  3. TypeScript : gardez un fichier d'entrée JavaScript Si package.json contient un script build et qu'aucun des fichiers server.js, app.js, index.js, src/server.js, src/index.js ou src/app.js n'existe, Nodion traite le dépôt comme un site statique et ne démarre pas votre serveur. Un serveur TypeScript que tsc compile dans dist/ correspond exactement à ce cas. Ajoutez à côté de package.json un index.js qui charge le serveur compilé (l'extrait nécessite "type": "module" ; en CommonJS, écrivez require("./dist/server.js")), et faites pointer le script start vers le fichier compilé, par exemple node dist/server.js, et non vers un outil de développement. index.js
    import "./dist/server.js";
  4. Créez l'app et définissez les variables Dans le dashboard, créez une application depuis votre dépôt GitHub, GitLab, Bitbucket ou Gitea, puis choisissez la branche et la région EU Central. Les variables lues par votre script de build doivent avoir l'option Build cochée dans l'onglet Environment ; toutes les autres n'existent qu'à l'exécution. Marquez les clés d'API comme secrètes.
  5. Rattachez PostgreSQL et lancez les migrations Créez une base de données PostgreSQL dans la même région et rattachez-la dans l'onglet Environment : à partir du prochain déploiement, votre app lit DATABASE_URL. Une ligne release: dans un Procfile s'exécute une fois par build, après le build et avant le démarrage de la nouvelle version ; si elle échoue, la version en cours reste en ligne. Procfile
    release: npm run migrate
  6. Poussez pour déployer Chaque push sur la branche construit une nouvelle release. Le trafic bascule vers elle dès que / renvoie un code 2xx ou 3xx. Si votre API répond 404 sur /, ajoutez une route comme /health et définissez-la comme chemin de health check dans les paramètres de l'app.

Bon à savoir

  • Vite dans package.json implique un site statiqueAvec vite dans dependencies ou devDependencies, Nodion construit le dépôt comme un site statique et ne publie que le résultat du build, même si un server.js existe. Il en va de même pour Angular, Gatsby, Create React App et Eleventy. Pour un serveur Node.js qui construit aussi un frontend Vite, utilisez un Dockerfile.
  • BunAvec un bun.lock, Nodion installe vos dépendances et lance le build avec Bun. L'app démarre toutefois via le script start, qui doit donc appeler Bun, par exemple "start": "bun run index.ts" ; sans script start, Nodion démarre l'app avec node. La règle du fichier d'entrée ci-dessus s'applique aussi aux projets Bun.
  • Workers de file d'attenteMettez web: node server.js et worker: node worker.js dans un Procfile ; sans ligne web:, la première entrée du Procfile autre que release: devient la commande par défaut. Ajoutez ensuite, dans l'onglet Processes, un processus nommé worker sans port. Valkey dans la même région fournit un REDIS_URL à votre file d'attente.

Ce que Nodion gère pour vous

  • Déploiements sans interruption Faites un push sur votre branche : Nodion construit une nouvelle release. Le trafic bascule lorsque les nouvelles instances réussissent leur health check ; si la release échoue, celle en cours reste active. Les apps avec un volume local redémarrent, car le disque appartient à une seule instance.
  • Bases de données à côté de l'app PostgreSQL, pgvector, MySQL, Valkey et ClickHouse managés, dans la même région. Les bases de données rattachées arrivent sous forme de DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL.
  • Previews par pull request Activez les previews, et les pull requests de votre dépôt obtiennent leur propre app, avec sa propre URL et des bases de données neuves et vides, créées automatiquement ou à la main. Les pull requests issues de forks ou de bots sont ignorées.
  • Workers, cron jobs et mise à l'échelle Exécutez les workers comme processus supplémentaires de la même app, planifiez des tâches dans l'onglet Cron et mettez chaque processus à l'échelle jusqu'à 16 instances.
  • Étape de release Avec les buildpacks, une ligne 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.
  • Logs et métriques Logs de build, de release et d'exécution, ainsi que les métriques CPU, mémoire, disque et réseau de chaque instance, dans le dashboard.
  • Domaines et HTTPS Un nom d'hôte par défaut avec HTTPS dès le premier déploiement, et des certificats automatiques pour vos propres domaines.

Pour aller plus loin

Node.js sur Nodion : questions et réponses

Pourquoi mon serveur Node.js est-il construit comme un site statique ?

Nodion a trouvé un script build mais aucun des fichiers d'entrée server.js, app.js ou index.js (également recherchés dans src/), ou bien un framework frontend statique comme Vite dans package.json. Ajoutez à côté de package.json un index.js qui charge votre serveur compilé ; si Vite figure dans le même package.json, utilisez un Dockerfile.

Quelle version de Node.js mon app utilise-t-elle ?

Node.js 24, sauf si vous en choisissez une autre. Nodion lit .node-version, .nvmrc et engines.node, dans cet ordre. Une plage de versions est résolue vers la version compatible la plus récente : "node": ">=20" donne donc Node.js 26 ; écrivez 24 dans .nvmrc pour rester sur la 24.

Puis-je utiliser pnpm, Yarn ou Bun ?

Oui. Nodion choisit le gestionnaire de paquets d'après le lockfile (pnpm-lock.yaml, yarn.lock, bun.lock ou package-lock.json) et installe exactement les versions qu'il indique. Les projets Bun ont aussi besoin d'un script start qui appelle bun.

Où tourne mon app Node.js ?

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.

Puis-je utiliser Node.js en conformité avec le RGPD ?

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.

Combien coûte l'hébergement Node.js sur Nodion ?

Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 3.50 EUR par mois : App 2 EUR, PostgreSQL 1.50 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.

Puis-je utiliser mon propre domaine pour mon app Node.js ?

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.

Offrez un cloud à votre agent.

Jusqu'à 15 € de crédit de bienvenue à l'inscription.

Continuer avec GitHub

ou par e-mail

Restez informé.

Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.