Framework Frankfurt, Duitsland

Deploy Static sites and SPAs op Nodion

Nodion bouwt frontends zoals Vite, Angular, Create React App, Gatsby en Eleventy met het Node.js-buildpack en serveert daarna de outputmap met een statische webserver. Een repository met een index.html in de root en zonder package.json wordt geserveerd zoals hij is. Je site draait in Frankfurt, en de kleinste appgrootte is genoeg.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Herkend aan
Een statisch framework in package.json, een static.toml of een index.html in de root
Output
dist/, build/, public/, _site/ of je static.toml
Geserveerd door
static-web-server met fallback naar index.html
Regio
EU Central (Frankfurt)

Static sites and SPAs stap voor stap deployen

  1. Commit een lockfile en een buildscript Commit je lockfile; zonder lockfile mislukt de build. Nodion voert het build-script uit en neemt de outputmap van je framework: dist/ bij Vite, build/ bij Create React App, dist/<project>/browser bij Angular, public/ bij Gatsby en _site/ bij Eleventy. package.json
    "scripts": {
      "dev": "vite",
      "build": "vite build"
    }
  2. Stel buildvariabelen in Je bundler schrijft variabelen zoals VITE_*, REACT_APP_* of GATSBY_* tijdens de build in de bestanden, dus ze hebben de vlag Build op het tabblad Environment nodig. Alles daarin is openbaar, dus zet er nooit secrets in.
  3. Geef andere outputmappen op in static.toml Andere generators werken ook: Nodion zoekt een index.html in dist, build, out, .output/public, public en _site. Schrijft de jouwe ergens anders naartoe, zoals VitePress doet, voeg dan naast package.json een static.toml toe. Daarmee behandelt Nodion de repository ook als statische site als het er anders geen zou herkennen. fallback bepaalt welk bestand wordt geserveerd voor paden die niet bestaan. static.toml
    output-dir = "docs/.vitepress/dist"
    fallback = "index.html"
  4. Gewone HTML heeft geen build nodig Een repository met een index.html in de root en zonder package.json wordt geserveerd zoals hij is. Nodion laat .git, .env-bestanden en een paar gangbare sleutelbestanden weg, maar behandel alles wat je commit als openbaar en houd secrets buiten de repository.
  5. Maak de app aan en push Maak in het dashboard een applicatie aan vanuit je GitHub-, GitLab-, Bitbucket- of Gitea-repository in de regio EU Central en kies de kleinste grootte. Elke push bouwt een nieuwe release, en het verkeer gaat ernaar over zodra / antwoordt; daar zorgt je index.html voor.

Goed om te weten

  • Client-side routing werktPaden die bij geen enkel bestand horen, krijgen je index.html, dus routes van React Router, Vue Router en Angular blijven werken na het herladen van de pagina. De fallback kun je niet uitzetten; fallback in static.toml wisselt alleen het bestand.
  • Geen Procfile-processen, geen servercodeProcfile-processen hebben geen effect op een statische site, en alleen de outputmap wordt uitgeleverd. Een release:-regel zou nog steeds draaien, maar in een image met alleen de gebouwde bestanden, dus laat die weg. Is je repository een Node.js-server met een buildscript, lees dan in de Node.js-gids hoe Nodion de twee uit elkaar houdt.
  • Angular SSRNodion bouwt Angular-projecten als statische sites, ook met @angular/ssr, dus server-side rendering draait niet. Gebruik voor SSR een Dockerfile.
  • Hugo en JekyllNodion voert geen Hugo- of Jekyll-builds uit. Bouw de site zelf, commit de gegenereerde map (public/ of _site/) en stel die in als Base directory van de app: een map met een index.html en zonder package.json wordt geserveerd zoals hij is. Of bouw de site in een Dockerfile.

Wat Nodion voor je regelt

  • Deploys zonder downtime Push naar je branch en Nodion bouwt een nieuwe release. Het verkeer schakelt over zodra de nieuwe instanties hun health check doorstaan; een mislukte release laat de draaiende versie staan. Apps met een lokaal volume herstarten in plaats daarvan, omdat de schijf bij één instantie hoort.
  • Databases naast de app Managed PostgreSQL, pgvector, MySQL, Valkey en ClickHouse in dezelfde regio. Gekoppelde databases komen binnen als DATABASE_URL, REDIS_URL of CLICKHOUSE_URL.
  • Previews per pull request Zet previews aan en pull requests uit je repository krijgen een eigen app met een eigen URL en nieuwe, lege databases, automatisch of handmatig aangemaakt. Forks en pull requests van bots worden overgeslagen.
  • Workers, cronjobs en schalen Draai workers als extra processen van dezelfde app, plan jobs op het tabblad Cron en schaal elk proces naar maximaal 16 instanties.
  • Releasestap Met buildpacks draait een release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat.
  • Logs en metrics Build-, release- en runtimelogs plus metrics voor CPU, geheugen, schijf en netwerk van elke instantie in het dashboard.
  • Domeinen en HTTPS Een standaardhostnaam met HTTPS vanaf de eerste deploy; je eigen domeinen krijgen automatisch certificaten.

Verder lezen

Static sites and SPAs op Nodion: vragen en antwoorden

Waarom mislukt mijn build met “could not determine static output directory”?

Na de build heeft Nodion in de mappen die het controleert geen index.html gevonden. Zorg dat je buildscript er een schrijft, of geef de map op met output-dir in een static.toml.

Kan een statische site omgevingsvariabelen tijdens runtime lezen?

Nee. Er draait geen server die ze zou kunnen lezen, dus elke waarde moet er tijdens de build al zijn: geef die de vlag Build. Pas je een waarde aan, deploy dan opnieuw om de bestanden opnieuw te bouwen.

Met welke Node.js-versie wordt mijn site gebouwd?

Node.js 24, tenzij je 22 of 26 vastzet in .node-version, .nvmrc of engines.node. Een bereik zoals ">=20" wordt omgezet naar de nieuwste passende release.

Waar draait mijn Static sites and SPAs-app?

In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.

Kan ik Static sites and SPAs gebruiken volgens de AVG (GDPR)?

Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.

Wat kost het om Static sites and SPAs op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 1 EUR per maand: App 1 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.

Kan ik een eigen domein gebruiken voor mijn Static sites and SPAs-app?

Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.