Publicar un sitio estático con un push
Zonda Cloud publica un sitio estático directamente desde tu repositorio de GitLab o GitHub, sin Dockerfile: detecta el proyecto, lo construye con las herramientas que ya usa y lo sirve con HTTPS en su propia dirección.
Qué proyectos detecta
Si el repositorio tiene un package.json con un script build y una de estas herramientas, lo reconoce solo: Vite, Create React App, Vue CLI, Angular, Astro, Gatsby, Docusaurus, Eleventy, VuePress o Parcel. Si no hay package.json pero sí archivos HTML, publica la carpeta tal como está.
Cómo se construye
- Elige el gestor de paquetes por tu archivo de bloqueo:
pnpm-lock.yaml,yarn.lock,bun.lockopackage-lock.json. - Usa la versión de Node de
.nvmrc,.node-versionoengines.node(18, 20, 22 o 24); si no pedís ninguna, usa Node 22. - Instala las dependencias respetando el archivo de bloqueo y ejecuta
build. - Busca el resultado en la carpeta propia del framework o, si no está, en
dist,build,out,publico_site.
Qué podés cambiar
En los ajustes avanzados de la app podés fijar el comando de instalación, el de build, la carpeta de salida y si el sitio es una aplicación de una sola página (SPA). Si fijás la carpeta de salida y no existe, el build falla con un mensaje claro en lugar de adivinar otra.
Cómo se sirve
- Con HTTPS desde el primer despliegue.
- En una SPA, las rutas que no son archivos devuelven
index.html; un archivo que no existe responde 404. - El HTML se revalida siempre, así que un despliegue nuevo se ve enseguida; los archivos con huella en el nombre (por ejemplo
app-3f9a1c2b.js) se cachean como inmutables. - Los archivos que empiezan con
.envo.gitno se sirven.
Variables de entorno en el build
Al compilar solo se pasan las variables con prefijo público: VITE_, REACT_APP_, NEXT_PUBLIC_, PUBLIC_ y GATSBY_. El resto de tus variables no llega al build ni a la imagen final.
Si el build falla
El log muestra la causa y qué hacer. Los casos más comunes: el package.json no tiene un script build; el archivo de bloqueo no coincide con el package.json (corré la instalación en tu equipo y subí el archivo actualizado); o el build no genera una carpeta de salida con archivos (fijala en los ajustes avanzados).