# Vercel

> Despliega con la integración git de Vercel o su CLI, con URLs de previsualización por PR.

Vercel no reconoce un proyecto htmlpress ni adivina su directorio de compilación. Basta con un pequeño `vercel.json`.

## Compila el sitio

```sh
htmlpress build
```

La salida queda en `.htmlpress/build/`.

## Configura `vercel.json`

Coloca esto en la raíz de tu proyecto para que Vercel use el comando correcto y sirva el directorio correcto:

```
{
  "framework": null,
  "buildCommand": "npx gethtmlpress build",
  "outputDirectory": ".htmlpress/build"
}
```

Esa es toda la configuración: a partir de ahí Vercel se encarga de la instalación, la compilación y el servicio estático, y responde a las rutas desconocidas con el `404.html` de la compilación. Vercel ignora `_headers`; define las cabeceras de respuesta en `vercel.json` en su lugar.

## Despliega con la integración git

El camino recomendado: importa tu repositorio en [vercel.com/new](https://vercel.com/new). Vercel lee `vercel.json` y ejecuta la misma compilación que ejecutarías en local. Cada push a `main` se publica en producción; cada otra rama y PR recibe una URL de previsualización única.

## Despliega con la CLI

Para despliegues puntuales o automatizados con scripts:

```
vercel deploy --prod
```

La primera ejecución te pide `vercel login` y vincula el directorio a un proyecto de Vercel. Vercel ejecuta el `buildCommand` por sí mismo.

## Despliega con GitHub Actions

La integración git de Vercel suele bastar por sí sola, pero puedes condicionar los despliegues a los tests de CI:

```yaml
name: deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: 24
      - run: npx gethtmlpress build --json
      - run: npx vercel deploy --prod --token=${{ secrets.VERCEL_TOKEN }}
        env:
          VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
          VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
```

El primer `run` hace fallar el job antes de desplegar cuando una página no compila. Necesitarás `VERCEL_TOKEN`, `VERCEL_ORG_ID` y `VERCEL_PROJECT_ID` como secretos (los dos últimos están en `.vercel/project.json` tras el primer `vercel link` en local).

## Dominio personalizado

En el panel del proyecto, **Settings → Domains → Add**. Vercel te guía por los registros DNS y aprovisiona un certificado automáticamente. Define el mismo dominio como `site` en `htmlpress.yaml`.

## Ver también

- [Metadatos del sitio](/es/customization/site-metadata/): `site` rellena las URLs del sitemap.
- [Despliegue](/es/deployment/): volver al índice de hosts.
