Implementar Astro en Lizard

Astro tiene dos rutas de implementación en Lizard: servir un directorio estático dist/ en el puerto 80, o ejecutar el adaptador standalone de Node en el puerto 3000 para rutas bajo demanda. Elige el modo antes de implementar porque el adaptador cambia tanto la salida como el entorno de ejecución.

Elige un modo

ModoConfiguraciónEntorno de ejecuciónPuerto
Sitio estáticoSalida estática sin un adaptador de servidornginx sirve dist/80
Servidor Node@astrojs/node en modo standalonenode ./dist/server/entry.mjs3000

Ambas rutas usan un script build que ejecuta astro build. Haz commit del lockfile y mantén la ruta de salida predeterminada dist. La detección lee la configuración de Astro y las dependencias instaladas. Una dependencia de adaptador Node sin usar, por sí sola, no selecciona la ruta del servidor. Usa valores literales de output y de configuración del adaptador; los valores dinámicos, las rutas de salida personalizadas y el modo middleware necesitan un Dockerfile.

Configura un servidor Node

Para páginas bajo demanda, añade una versión del adaptador Node compatible con tu versión de Astro:

npx astro add node

Comprueba astro.config.mjs:

import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
 
export default defineConfig({
  output: 'server',
  adapter: node({ mode: 'standalone' }),
});

El modo standalone inicia su propio servidor HTTP. El modo middleware requiere un servidor independiente y no encaja con este comando de inicio. Lee la guía del adaptador Node de Astro si necesitas middleware o una mezcla de rutas prerenderizadas y bajo demanda.

Prueba localmente

npm ci
npm run build

Para el modo Node:

HOST=0.0.0.0 PORT=3000 node ./dist/server/entry.mjs

Solicita una ruta que realmente se ejecute en el servidor y un recurso compilado. Para un sitio estático, usa npm run preview localmente e inspecciona los archivos de ruta generados en dist/.

Implementa

Después de la configuración de CLI, crea el proyecto:

lizard init --name astro-app
lizard add --service web

Para el adaptador Node:

lizard up --service web --port 3000

Para un sitio estático:

lizard up --service web --port 80

Usa solo el comando para el modo que hayas elegido. Deja sin configurar las anulaciones del comando del servicio para la detección de lizardpack. Lee lizard logs --build --service web --json y luego revisa los logs del entorno de ejecución y la URL en vivo.

Variables, sesiones y rutas

Los valores usados para generar HTML estático requieren una nueva compilación cuando cambian. El código del servidor puede leer variables de ejecución mediante los mecanismos compatibles con tu versión de Astro; configúralas en variables y secretos. Los valores visibles en el navegador no deben contener credenciales.

Si tu aplicación usa sesiones, elige un almacenamiento que se adapte a reinicios y múltiples réplicas. No dependas del sistema de archivos del contenedor como un almacén compartido y duradero. Consulta almacenamiento y recuperación.

Para un sitio de contenido estático, prueba una URL inexistente y usa rutas estáticas y 404 para devolver el estado correcto. Si una implementación SSR se detiene o no sirve rutas, verifica que dist/server/entry.mjs exista, que el adaptador use el modo standalone y que el puerto del servicio sea 3000.

Consulta versiones probadas y resultados en la nube para las comprobaciones de implementación del 9 de septiembre de 2026 y sus límites.