# Node.js

Source : https://webgune.cloud/oc-oc/docs/web-nodejs · Mis à jour le 2026-10-27

# Node.js

Tout dépôt contenant un `package.json` avec un script `start` (et qui ne correspond à aucun framework plus spécifique comme Next.js) est traité comme un service Node.js générique.

## La règle qui évite 90 % des problèmes

```javascript
// ✅ Correct — accessible depuis Traefik
app.listen(process.env.PORT || 3000, "0.0.0.0");

// ❌ Incorrect — le service répond « Running » mais reste injoignable
app.listen(3000, "localhost");
```

`localhost` à l'intérieur d'un pod ne désigne que le pod lui-même : Traefik, situé à l'extérieur, ne peut pas l'atteindre.

## Express

```javascript
import express from "express";

const app = express();
app.use(express.json());

app.get("/health", (_req, res) => res.json({ ok: true }));

const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0", () => console.log(`listening on ${port}`));
```

## Fastify

```javascript
import Fastify from "fastify";

const app = Fastify();
app.get("/health", async () => ({ ok: true }));

await app.listen({ port: process.env.PORT || 3000, host: "0.0.0.0" });
```

## Gestion des processus

Le builder auto lance directement votre script `start`. Si votre application a besoin d'un superviseur de process (redémarrage automatique, cluster mode), passez par une [commande de démarrage personnalisée](/docs/commande-demarrage) utilisant PM2 ou équivalent.
