Framework Fráncfort, Alemania

Despliega Static sites and SPAs en Nodion

Nodion hace la build de frontends como Vite, Angular, Create React App, Gatsby y Eleventy con su buildpack de Node.js y después sirve la carpeta de salida con un servidor web estático. Un repositorio con un index.html en la raíz y sin package.json se sirve tal cual. Tu sitio se ejecuta en Fráncfort y basta con el tamaño más pequeño para la app.

Desplegar en Nodion ›

desde 1 EUR / mes

Hasta 15 € de crédito de bienvenida al registrarte

Detectado por
Un framework estático en package.json, un static.toml o un index.html en la raíz
Salida
dist/, build/, public/, _site/ o tu static.toml
Servido por
static-web-server con fallback a index.html
Región
EU Central (Fráncfort)

Despliega Static sites and SPAs paso a paso

  1. Haz commit de un lockfile y un script de build Haz commit de tu lockfile; sin él, la build falla. Nodion ejecuta el script build y toma la carpeta de salida de tu framework: dist/ en Vite, build/ en Create React App, dist/<project>/browser en Angular, public/ en Gatsby y _site/ en Eleventy. package.json
    "scripts": {
      "dev": "vite",
      "build": "vite build"
    }
  2. Define las variables de build Tu bundler escribe variables como VITE_*, REACT_APP_* o GATSBY_* en los archivos durante la build, así que necesitan la opción Build en la pestaña Environment. Todo lo que contienen es público: nunca pongas secretos en ellas.
  3. Indica otras carpetas de salida en static.toml También funcionan otros generadores: Nodion busca un index.html en dist, build, out, .output/public, public y _site. Si el tuyo escribe en otro sitio, como hace VitePress, añade un static.toml junto al package.json. Además, hace que Nodion trate el repositorio como sitio estático cuando no lo detectaría por sí solo. fallback indica el archivo que se sirve para las rutas que no existen. static.toml
    output-dir = "docs/.vitepress/dist"
    fallback = "index.html"
  4. El HTML puro no necesita build Un repositorio con un index.html en la raíz y sin package.json se sirve tal cual. Nodion excluye .git, los archivos .env y algunos archivos de claves habituales, pero considera público todo lo que incluyas en un commit y mantén los secretos fuera del repositorio.
  5. Crea la app y haz push En el dashboard, crea una aplicación desde tu repositorio de GitHub, GitLab, Bitbucket o Gitea en la región EU Central y elige el tamaño más pequeño. Cada push genera una nueva release, y el tráfico pasa a ella en cuanto / responde, algo de lo que se encarga tu index.html.

A tener en cuenta

  • El routing en el cliente funcionaLas rutas que no coinciden con ningún archivo reciben tu index.html, así que las rutas de React Router, Vue Router y Angular siguen funcionando al recargar la página. El fallback no se puede desactivar; fallback en static.toml solo cambia el archivo.
  • Sin procesos de Procfile ni código de servidorLos procesos del Procfile no tienen efecto en un sitio estático, y solo se publica la carpeta de salida. Una línea release: se seguiría ejecutando, pero en una imagen que solo contiene los archivos compilados, así que no la uses. Si tu repositorio es un servidor Node.js con un script de build, lee la guía de Node.js para ver cómo distingue Nodion los dos casos.
  • Angular SSRNodion compila los proyectos Angular como sitios estáticos, también con @angular/ssr, así que el renderizado en servidor no se ejecuta. Para SSR, usa un Dockerfile.
  • Hugo y JekyllNodion no ejecuta builds de Hugo ni de Jekyll. Compila tú el sitio, haz commit de la carpeta generada (public/ o _site/) y configura Base directory de la app con esa ruta: una carpeta con un index.html y sin package.json se sirve tal cual. O compila el sitio en un Dockerfile.

Lo que Nodion gestiona por ti

  • Despliegues sin downtime Haz push a tu rama y Nodion construye una nueva release. El tráfico pasa a las nuevas instancias cuando superan el health check; si una release falla, la que está en marcha sigue activa. En cambio, las apps con un volumen local se reinician porque el disco pertenece a una sola instancia.
  • Bases de datos junto a la app PostgreSQL, pgvector, MySQL, Valkey y ClickHouse gestionados en la misma región. Al vincular una base de datos, sus datos de conexión llegan como DATABASE_URL, REDIS_URL o CLICKHOUSE_URL.
  • Previews por pull request Activa las previews: cada pull request de tu repositorio tendrá su propia app, con URL y bases de datos nuevas y vacías. Puedes crearla automáticamente o a mano. Se omiten las pull requests de forks y bots.
  • Workers, cron jobs y escalado Ejecuta workers como procesos adicionales de la misma app, programa tareas en la pestaña Cron y escala cada proceso hasta 16 instancias.
  • Paso de release Con buildpacks, una línea release: del Procfile se ejecuta con cada nueva build. Las apps con Dockerfile, así como los redeploys o rollbacks a una imagen anterior, usan un comando de release definido en la propia app, que además tiene prioridad sobre la línea del Procfile. En los sitios estáticos, el paso de release se ejecuta en una imagen que solo contiene los archivos generados por la build.
  • Logs y métricas Logs de build, release y runtime, además de métricas de CPU, memoria, disco y red de cada instancia, en el dashboard.
  • Dominios y HTTPS Un nombre de host predeterminado con HTTPS desde el primer despliegue; tus propios dominios reciben certificados automáticamente.

Para seguir leyendo

Static sites and SPAs en Nodion: preguntas y respuestas

¿Por qué falla mi build con “could not determine static output directory”?

Después de la build, Nodion no ha encontrado ningún index.html en las carpetas que revisa. Asegúrate de que tu script de build genere uno, o indica la carpeta con output-dir en un static.toml.

¿Puede un sitio estático leer variables de entorno en tiempo de ejecución?

No. No hay ningún servidor en marcha que pueda leerlas, así que cada valor tiene que estar disponible durante la build: márcalo con la opción Build. Cuando cambies uno, vuelve a desplegar para regenerar los archivos.

¿Con qué versión de Node.js se compila mi sitio?

Node.js 24, salvo que fijes la 22 o la 26 en .node-version, .nvmrc o engines.node. Un rango como ">=20" selecciona la versión más reciente compatible.

¿Dónde se ejecuta mi app de Static sites and SPAs?

En la región EU Central, en Fráncfort (Alemania). La build, el registry, la app y sus bases de datos, volúmenes, buckets, logs y métricas permanecen en esa región. La API y el plano de control de Nodion están alojados en Alemania. Nodion GmbH tiene su sede en Stuttgart.

¿Puedo usar Static sites and SPAs conforme al RGPD?

Nodion te ofrece las bases para ello: Nodion GmbH tiene su sede en Stuttgart (Alemania); en la región de Fráncfort, la app, sus bases de datos y sus volúmenes se ejecutan en Alemania. Puedes formalizar electrónicamente el DPA (contrato de encargo del tratamiento, art. 28 del RGPD) en el dashboard. Que tu uso cumpla el RGPD también depende de cómo configures y uses la app.

¿Cuánto cuesta ejecutar Static sites and SPAs en Nodion?

Una instancia de app cuesta desde 1 EUR al mes. La configuración del recuadro de costes cuesta 1 EUR al mes: App 1 EUR. Los precios no incluyen IVA y la facturación es por segundo. Puedes elegir tamaños mayores o más instancias cuando lo necesites.

¿Puedo usar mi propio dominio para mi app de Static sites and SPAs?

Sí. Cada app recibe un nombre de host predeterminado con HTTPS. Añade tu propio dominio en la pestaña Domains de la app; el certificado TLS se emite y se renueva automáticamente.

Dale a tu agente un cloud.

Hasta 15 € de crédito al registrarte.

Continuar con GitHub

o con tu email

Mantente al día.

Novedades del producto, sin spam. Puedes darte de baja cuando quieras.