> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo alojar una API Fastify en Vertra Cloud

> Despliega una API Fastify en Vertra Cloud: escucha en 0.0.0.0 y en la variable PORT, elige la versión de Node y obtén HTTPS automático en el subdominio.

## Requisitos

* Node.js instalado en local
* Cuenta en [Vertra Cloud](https://vertracloud.app)

## Estructura del proyecto

```
my-api-fastify/
├── src/
│   ├── server.js
│   └── routes/
│       └── index.js
├── package.json
└── vertracloud.config
```

## Configuración

### package.json

```json theme={null}
{
  "name": "my-api-fastify",
  "version": "1.0.0",
  "main": "src/server.js",
  "scripts": {
    "start": "node src/server.js"
  },
  "dependencies": {
    "fastify": "^5.0.0",
    "@fastify/cors": "^10.0.0"
  }
}
```

### vertracloud.config

```ini theme={null}
MAIN=src/server.js
START=npm start
VERSION=recommended
```

## Ejemplo completo

```javascript theme={null}
const fastify = require('fastify')({ logger: true });
const cors = require('@fastify/cors');

fastify.register(cors, { origin: '*' });

fastify.get('/', async (request, reply) => {
  return { message: 'Fastify on Vertra Cloud!' };
});

fastify.get('/health', async (request, reply) => {
  return { status: 'healthy', uptime: process.uptime() };
});

const start = async () => {
  try {
    const port = process.env.PORT || 80;
    await fastify.listen({ port, host: '0.0.0.0' });
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
```

> [!WARNING]
>
> Usa `host: '0.0.0.0'` en `fastify.listen()`. Fastify escucha por defecto solo en `localhost`, lo que impide las conexiones externas dentro del contenedor.

## Deploy

**Dashboard**

1. Comprime el proyecto en un `.zip` (las carpetas como `node_modules`, `venv` y `target` se eliminan automáticamente) o súbelo a GitHub.
2. En el panel, haz clic en **Nuevo Proyecto** y sube el `.zip` o pega la URL del repositorio.
3. En **Build**, revisa el runtime (**JavaScript**), el archivo principal (`index.js`) y la memoria. Los comandos de inicio y de build están en **Ajustes avanzados**.
4. Añade tus variables de entorno en **Variables de Entorno**.
5. En **Red**, activa la **publicación web** para que la aplicación reciba una dirección `*.vertraweb.app` (plan Pro o superior, 512 MB de memoria). La aplicación debe escuchar en el puerto 80.
6. Revisa y despliega. Sigue la salida en la pestaña **Logs**.

**CLI**

```bash theme={null}
vertra upload
vertra logs -f
```

Consulta la [CLI](https://docs.vertracloud.app/es-es/cli.md) para la instalación y el inicio de sesión.

**VS Code**

Abre la carpeta con la extensión de Vertra Cloud instalada y ejecuta **Deploy current project**. Consulta la [extensión de VS Code](https://docs.vertracloud.app/es-es/vscode-extension.md).

La guía completa está en [Primer despliegue](https://docs.vertracloud.app/es-es/how-to-host.md).

## Versiones disponibles

| Versión | Estado | Descripción |
| - | - | - |
| 24.22.1 | Más reciente | Node.js 24.22.1 (versión más reciente) |
| 22.23.4 | Recomendada | Node.js 22.23.4 LTS (recomendada para producción) |

## Diferencias con Express

| Aspecto | Express | Fastify |
| - | - | - |
| Rendimiento | Bueno | Superior (hasta 2 veces más rápido) |
| Validación | Manual o mediante middleware | Integrada, con JSON Schema |
| Plugins | Middleware sencillo | Sistema de plugins encapsulado |
| TypeScript | Mediante @types | Soporte nativo |

## Notas

* Fastify incluye **validación de esquemas integrada**: úsala para garantizar la integridad de las peticiones
* Para **TypeScript**, compila a JavaScript antes del despliegue
* El **logger integrado** de Fastify aparece en los logs en tiempo real del panel
* El **reinicio automático** está activado por defecto en todas las aplicaciones


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.