Framework Frankfurt, Duitsland

Deploy SvelteKit op Nodion

Nodion bouwt SvelteKit met het Node.js-buildpack en leest de adapter uit package.json: met @sveltejs/adapter-node start Nodion je app met node build, met @sveltejs/adapter-static serveert Nodion build/ als statische site. De standaardadapter uit de template, adapter-auto, werkt niet op Nodion, dus wissel eerst van adapter. Je app draait in Frankfurt.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Herkend aan
@sveltejs/kit en de adapter in package.json
Start
node build (adapter-node) of statische bestanden (adapter-static)
Node.js
22, 24 (standaard), 26
Regio
EU Central (Frankfurt)

SvelteKit stap voor stap deployen

  1. Stap over van adapter-auto naar adapter-node Voer npm i -D @sveltejs/adapter-node uit, verwijder @sveltejs/adapter-auto en gebruik de nieuwe adapter in je config. Nodion leest de adapter uit package.json, en de config bepaalt wat de build schrijft, dus pas beide aan. In SvelteKit 3 staat de config in de opties van sveltekit() in vite.config.js; in SvelteKit 2 is het kit.adapter in svelte.config.js. vite.config.js (SvelteKit 3)
    import adapter from "@sveltejs/adapter-node";
    import { sveltekit } from "@sveltejs/kit/vite";
    import { defineConfig } from "vite";
    
    export default defineConfig({
      plugins: [
        sveltekit({
          adapter: adapter(),
          paths: { origin: "https://shop.example.com" },
        }),
      ],
    });
  2. Commit de lockfile, sla het startscript over Commit je lockfile; zonder lockfile mislukt de build. Nodion voert je build-script uit en start node build, en adapter-node luistert op de PORT die Nodion instelt. Een startscript, als je er een toevoegt, vervangt dat commando.
  3. Stel de publieke origin in Nodion termineert HTTPS vóór je app, dus SvelteKit kan uit het request niet afleiden welke URL je bezoekers gebruiken, en zonder die URL worden formulierverzendingen als cross-site geweigerd. Zet in SvelteKit 3 paths.origin op je publieke URL, zoals in de config hierboven; dat vervangt de ORIGIN-variabele van adapter-node. Stel in SvelteKit 2 in plaats daarvan ORIGIN in op het tabblad Environment, bijvoorbeeld https://shop.example.com.
  4. Variabelen voor build en runtime Waarden uit $env/static/private en $env/static/public worden tijdens de build in de code gezet, dus ze hebben de vlag Build op het tabblad Environment nodig. $env/dynamic/private en $env/dynamic/public worden gelezen terwijl de server draait en werken met gewone variabelen.
  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. Elke push bouwt een nieuwe release, en het verkeer gaat ernaar over zodra / antwoordt met een 2xx- of 3xx-status. Antwoordt / met 401 of 404, voeg dan een route zoals src/routes/health/+server.js toe die 200 teruggeeft en stel /health in als pad voor de health check.

Goed om te weten

  • Statische sites met adapter-staticMet @sveltejs/adapter-static serveert Nodion build/ met een statische webserver en een fallback naar index.html. Prerender je pagina's met export const prerender = true in de +layout.js in de root. Zet voor een single-page app daar SSR uit en stel fallback: 'index.html' in de adapteropties in, want Nodion heeft een index.html in build/ nodig. Er draait geen Node.js-server, dus de kleinste grootte is genoeg.
  • Eén adapter in package.jsonNodion zoekt eerst naar adapter-static, daarna naar adapter-node. Zijn beide geïnstalleerd, dan wordt de app als statische site gebouwd, dus verwijder de adapter die je niet gebruikt.

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

SvelteKit op Nodion: vragen en antwoorden

Waarom deployt mijn SvelteKit-app niet met adapter-auto?

adapter-auto kent alleen een vaste lijst hostingproviders, en Nodion staat daar niet op, dus de build levert geen output op die Nodion kan gebruiken. Installeer @sveltejs/adapter-node of @sveltejs/adapter-static en gebruik die in je config: vite.config.js in SvelteKit 3, svelte.config.js in SvelteKit 2.

Werken form actions, serverside load-functies en API-routes?

Ja, met adapter-node. Nodion draait je app als langlopende Node.js-server, dus +page.server.js, +server.js en form actions werken zoals met node build op je eigen machine. Stel de publieke origin in (paths.origin in SvelteKit 3, ORIGIN in SvelteKit 2), zodat form actions niet als cross-site worden geweigerd.

Heb ik een Dockerfile nodig voor SvelteKit?

Nee. Met adapter-node of adapter-static bouwt het Node.js-buildpack de app op basis van package.json. Staat er een Dockerfile in je repository, dan kiest het aanmaakformulier in plaats daarvan de strategie Dockerfile.

Waar draait mijn SvelteKit-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 SvelteKit 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 SvelteKit op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 2 EUR per maand: App 2 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 SvelteKit-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.