# ¿Cómo despliego mi aplicación Next.js?

https://www.seturack.com/es/base-de-conocimientos/articulo/how-do-i-deploy-my-nextjs-app

1. En el panel, abre **Mis servidores** y haz clic en tu servidor.
2. En la pestaña **Resumen**, espera a que la fila **Aplicación** diga "Next.js está listo".
3. Abre el enlace de **Dirección del panel** e inicia sesión con las filas **Correo electrónico** y **Contraseña**. El servidor y un primer proyecto ya están preparados.

## Conecta tu repositorio

1. En la página **Projects**, abre **My first project** y **production**, y pulsa **New resource**.
2. Para un repositorio público, elige **Public Git Repository**, introduce la dirección y pulsa **Check repository**.
3. Para un repositorio privado, pulsa primero **Generate ED25519** en la página **Private Keys**, dentro de **Keys & Tokens**, y añade la clave pública a los **Deploy keys** del repositorio en GitHub. Después elige **Private Git Repository (with Deploy Key)** e introduce `git@github.com:user/project.git`.
4. Deja **Build pack** en **Railpack** y pulsa **Continue**. Coolify marca Railpack como beta, así que elige tu propio Dockerfile si te da problemas.
5. Introduce tus variables en la página **Environment Variables** y pulsa **Deploy**. Encontrarás una dirección HTTPS de prueba en la página **Domains**.

## Desplegar con git push

1. En la página **Webhooks** de la aplicación, copia la **Webhook URL** de la sección de GitHub, introduce un valor aleatorio de al menos 16 caracteres en **Webhook secret** y guarda.
2. En GitHub, abre **Settings** del repositorio, ve a **Webhooks** y pulsa **Add webhook**. Usa esa dirección como **Payload URL**, `application/json` como **Content type**, el mismo valor como **Secret** y push como único evento.

A partir de entonces, cada `git push` a la rama elegida compila y publica una versión nueva. Tras cambiar una variable que empiece por `NEXT_PUBLIC_`, pulsa **Redeploy**. Si una compilación se queda sin memoria, [amplía el servidor desde tu panel](https://www.seturack.com/es/base-de-conocimientos/articulo/how-to-scale-server-up-or-down).

## Tu dominio

Apunta el registro A a la IP del servidor. En la página **Domains**, usa **Add domain**, elige `https`, introduce el dominio, guarda y pulsa **Redeploy**. Coolify obtiene el certificado.

## Cerrar los puertos 8000, 6001 y 6002

Cuando el panel se abra en su dirección HTTPS, estos puertos ya no hacen falta. Docker se salta ufw en los puertos que publica, así que ufw no los cerrará. [Conéctate por SSH](https://www.seturack.com/es/base-de-conocimientos/articulo/how-to-connect-with-ssh) y sigue el procedimiento oficial de Coolify:

`cd /data/coolify/source`

`printf 'services:\n coolify:\n ports: !override\n - "127.0.0.1:8000:8080"\n - "127.0.0.1:6001:6001"\n - "127.0.0.1:6002:6002"\n' > docker-compose.custom.yml`

`curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash`

El último comando actualiza la instalación y pasa a una versión más reciente si la hay. Para deshacerlo, borra el archivo y ejecuta el mismo comando.

## Conviene saber

Coolify se conecta por SSH como root con su propia clave. Si desactivas el acceso de root o quitas la línea `coolify` de `/root/.ssh/authorized_keys`, los despliegues se detienen.

**¿Aún no tienes servidor?** [Pide un servidor con Next.js instalado](https://www.seturack.com/es/nextjs-vps): tú eliges el tamaño y pagas solo lo que eliges.
