FR
Se connecter Crée ton compte

Comment installer Node.js sur Saplo (backend personnalisé à partir d'un dépôt)

Node.js n'est pas un framework, mais un runtime - la pile "Node.js" dans le catalogue Saplo n'impose aucune convention, tu peux écrire toi-même Express, Fastify, Koa, NestJS ou ton propre serveur HTTP. Saplo s'assure seulement que le processus fonctionne en permanence et redémarre après une panne. Ci-dessous, tu verras comment l'installer et déployer ton propre code via `git push`.

Grzegorz Kalmus ·

Node.js n'est pas un framework, mais un runtime JavaScript côté serveur. Contrairement à Next.js ou Nuxt, la pile "Node.js" du catalogue Saplo n'impose aucune convention ni structure de projet. Tu écris ton propre serveur HTTP en Express, Fastify, Koa, NestJS ou sans aucun framework, et Saplo s'assure que le processus tourne en permanence et redémarre après une panne. C'est l'option la plus universelle pour le backend du catalogue : elle convient à une API pour une application mobile, un bot Discord ou un serveur de websockets, pourvu que le projet expose lui-même un port HTTP.

À qui s'adresse Node.js sur Saplo

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

  • API pour une application mobile ou un frontend SPA - tu exposes REST ou GraphQL, et le frontend (React, Vue) est déployé séparément depuis le même répertoire,
  • bot ou intégration en arrière-plan - webhooks, bots Discord et Slack, workers de files d'attente,
  • backend sur websockets - nginx côté Saplo laisse passer l'en-tête Upgrade, donc les connexions de longue durée fonctionnent sans configuration supplémentaire,
  • tu as un projet Node.js prêt et tu veux des déploiements avec git push - tu connectes le référentiel une seule fois, et Saplo construit et redémarre le processus automatiquement.

Si ton projet est dans un framework spécifique avec sa propre convention de build et de démarrage (Next.js, Nuxt), choisis son stack dédié dans le catalogue - tu obtiendras une configuration prête à l'emploi sans avoir à spécifier manuellement la commande de démarrage.

Exigences

Pour installer Node.js sur Saplo, tu as besoin de :

  • Une Box de plan L ou supérieur - le processus Node est maintenu en mémoire constante, il a donc besoin de plus de RAM qu'un site statique.
  • Minimum 512 Mo de RAM libre et 3 Go d'espace disque pour le processus de l'application lui-même.
  • Un domaine ou sous-domaine *.saploapp.pl inclus dans le prix de chaque plan.
  • Un dépôt Git, si tu souhaites utiliser le déploiement automatique (facultatif au début, tu peux aussi télécharger l'application en archive .zip via le panneau).

Installation étape par étape

  1. Dans ton Panneau Saplo, va dans le Catalogue d'applications et choisis Node.js (catégorie "Applications").
  2. Indique une Box de plan L ou supérieur et le nom de l'application - cela crée un sous-domaine par défaut.
  3. Choisis la version de Node.js (18, 20 ou 22, 20 par défaut) et valide l'installation.
  4. Le moteur crée un starter Express minimaliste - package.json et server.js avec un seul endpoint - et le lance via supervisor sur le port 3000, tandis que nginx proxy le trafic du Domaine vers ce port.
  5. Une fois l'installation terminée, le Domaine de l'étape 2 affiche le starter fonctionnel - à partir de ce moment, tu le remplaces par ton propre code via git deploy.

Déployer ton 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 avec le projet Node.
  2. Place le fichier saplo.yaml dans le répertoire racine du dépôt. Contrairement aux piles avec une convention spécifique (Next.js, Nuxt), la pile Node.js n'a pas de commande de démarrage par défaut - tu dois explicitement indiquer start.command, sinon la construction réussira, mais le processus ne démarrera pas.
  3. Valide et pousse le fichier vers la branche de production (par défaut main).
  4. Chaque git push suivant sur cette branche lance la construction et le redémarrage du processus, tu peux voir le statut dans l'onglet Déploiements.
  5. Le port d'application par défaut est 3000 - nginx y dirige le trafic depuis 80/443, à moins que tu ne le modifies dans start.port.

Exemple de fichier saplo.yaml minimal pour Node.js :

name: my-project
stack: node
runtime:
  node: "22"
build:
  install: npm ci
start:
  command: node index.js
  port: 3000
env:
  NODE_ENV: production

Node.js sur Saplo vs alternatives

Render / Railway VPS personnel Node.js sur Saplo
Modèle de facturation consommation de ressources, augmente avec le trafic coût fixe du serveur, configuration manuelle coût fixe de la Box
Déploiements Git oui, nativement à configurer soi-même (CI/CD) oui, git push vers la branche de production
Redémarrage après un crash entièrement géré pm2 ou systemd manuellement service géré avec redémarrage automatique
Tout framework HTTP oui oui oui, sans convention imposée

Questions fréquentes

Est-ce que n'importe quel framework - Express, Fastify, NestJS - fonctionnera ? Oui, la stack Node.js n'impose pas de framework. Elle exige seulement que le processus écoute sur le port indiqué dans start.port (par défaut 3000).

Que se passe-t-il si j'oublie start.command dans saplo.yaml ? Le build réussira, mais le processus ne démarrera pas. Tu verras l'erreur dans l'onglet Déploiements. Ajoute start.command et pousse une nouvelle version.

Les websockets fonctionnent-ils via Nginx de Saplo ? Oui, le reverse proxy laisse passer l'en-tête Upgrade, donc les connexions WebSocket de longue durée fonctionnent sans configuration supplémentaire.

Puis-je avoir une base de données à côté de l'application ? Oui, tu peux créer une base de données (Postgres, MySQL, Redis) comme application distincte à partir du catalogue et connecter la variable de connexion dans env de ton saplo.yaml.

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

Tu peux déployer Node.js sur Saplo de zéro à un Domaine fonctionnel en quelques minutes, et chaque git push suivant redémarre le processus avec une nouvelle version sans ton intervention. Si ton projet utilise un framework spécifique avec sa propre convention (Next.js, Nuxt), vérifie sa stack dédiée dans le même catalogue.

  • #Backend
  • #Git Deploy
  • #JavaScript
  • #Node.js
  • #Guide