Implementar Hugo en Lizard
Lizard puede compilar un sitio fuente de Hugo con hugo --minify y servir public/ mediante nginx en el puerto 80. Empieza desde el directorio fuente de Hugo, con una configuración de Hugo y content/, en lugar de subir solo el HTML generado.
Empieza con el ejemplo fuente completo, que incluye la configuración y los archivos usados por esta receta.
Preparar el código fuente
Incluye tu configuración de Hugo, contenido, layouts, assets y todos los archivos del tema necesarios para la compilación. El detector de Hugo busca configuración como hugo.toml, hugo.yaml o config/_default/, además de un directorio content/.
| Ajuste | Valor |
|---|---|
| Compilación | hugo --minify |
| Salida | public/ |
| Servidor de producción | nginx |
| Puerto del servicio | 80 |
Configura baseURL con la URL pública prevista del sitio, incluida la barra final. Vuelve a compilar después de asignar un hostname diferente para que los enlaces y las entradas generadas del sitemap lo usen. Consulta la guía de compilación y salida de Hugo.
Revisar las dependencias de compilación
La imagen de compilación predeterminada de Hugo es hugomods/hugo:base; no fija una versión de Hugo para tu proyecto. Si un tema necesita una versión específica de Hugo, la edición extendida o herramientas de Node, usa un Dockerfile completo con esas dependencias y la versión que probaste.
Una configuración de Hugo y content/ seleccionan el compilador de Hugo antes de la detección de Go o Node. Los proyectos de Hugo Modules con go.mod usan una imagen de compilación con soporte para Go. Un archivo package.json hace que la compilación se detenga con una solicitud de Dockerfile: instala las dependencias de Node, compila los assets y luego ejecuta hugo --minify. Consulta el orden de decisión de compilación.
Compilar localmente e implementar
hugo --minify
hugo serverInspecciona public/ después del primer comando. Usa el servidor local para revisar el contenido y el renderizado del tema; hugo server no es el comando de inicio de producción.
Después de la configuración de la CLI, implementa el directorio fuente:
lizard init --name hugo-site
lizard add --service web
lizard up --service web --port 80
lizard logs --build --service web --json
lizard ps --jsonSi usas el hostname generado, léelo después de la primera implementación:
lizard service show web --jsonConfigura baseURL en hugo.toml con ese hostname:
baseURL = "https://YOUR_PUBLIC_HOST/"Sube la configuración modificada para que la compilación use la URL pública:
lizard up --service web --port 80Excluye la salida generada localmente y los secretos. Para una subida, asegúrate de que los archivos fuente del tema realmente existan en el directorio que envías; una referencia remota a submodule por sí sola no es el contenido del tema.
Verificar el sitio implementado
Abre la página principal en vivo, un artículo interno y una imagen. Revisa las URL canónicas generadas y sitemap.xml. Prueba el estado HTTP de una ruta inventada. Las compilaciones nuevas de Hugo sirven el HTML generado y devuelven HTTP 404 para las páginas que no existen, con la página de error predeterminada de nginx en lugar de tu plantilla 404.html. No se necesita un Dockerfile personalizado para el diseño simple de código fuente de esta guía. Vuelve a compilar imágenes antiguas para adoptar las reglas de enrutamiento actuales.
Usa rutas estáticas y 404 si necesitas una política personalizada de nginx o tu propia página 404. Una etapa de compilación personalizada de Hugo debe incluir la versión de Hugo y las herramientas que requiere el tema, ejecutar hugo --minify y copiar public/ en la imagen de servicio.
Si faltan assets del tema, inspecciona los logs de compilación, el código fuente del tema y baseURL. Si se inicia el compilador incorrecto, revisa que la configuración de Hugo y content/ estén en la raíz de la subida e inspecciona las anulaciones existentes del servicio. Hugo produce archivos estáticos, así que los cambios de contenido requieren una nueva compilación.
Consulta versiones probadas y resultados en la nube para las comprobaciones de implementación del 9 de septiembre de 2026 y sus límites.
Actualizado