Zonda Cloud

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

  1. Elige el gestor de paquetes por tu archivo de bloqueo: pnpm-lock.yaml, yarn.lock, bun.lock o package-lock.json.
  2. Usa la versión de Node de .nvmrc, .node-version o engines.node (18, 20, 22 o 24); si no pedís ninguna, usa Node 22.
  3. Instala las dependencias respetando el archivo de bloqueo y ejecuta build.
  4. Busca el resultado en la carpeta propia del framework o, si no está, en dist, build, out, public o _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 .env o .git no 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).

Otras guías

Tu próxima app, en línea hoy

Ingresá a la consola, elegí un repositorio y hacé tu primer push.