Node.js
Actualizado el 27 de octubre de 2026
Node.js
Todo repositorio que contenga un package.json con un script start (y que no corresponda a ningún framework más específico como Next.js) se trata como un servicio Node.js genérico.
La regla que evita el 90 % de los problemas
// ✅ Correcto — accesible desde Traefik
app.listen(process.env.PORT || 3000, "0.0.0.0");
// ❌ Incorrecto — el servicio responde «Running» pero queda inalcanzable
app.listen(3000, "localhost");
localhost dentro de un pod solo designa al propio pod: Traefik, situado en el exterior, no puede alcanzarlo.
Express
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
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" });
Gestión de procesos
El builder automático ejecuta directamente tu script start. Si tu aplicación necesita un supervisor de procesos (reinicio automático, modo cluster), usa un comando de inicio personalizado con PM2 o equivalente.