Framework Frankfurt, Deutschland

SvelteKit auf Nodion deployen

Nodion baut SvelteKit mit dem Node.js-Buildpack und liest den Adapter aus der package.json: Mit @sveltejs/adapter-node startet es deine App mit node build, mit @sveltejs/adapter-static liefert es build/ als statische Site aus. Der Standard aus dem Template, adapter-auto, funktioniert auf Nodion nicht; wechsle also zuerst den Adapter. Deine App läuft in Frankfurt.

Auf Nodion deployen ›

ab 1 EUR / Monat

Bis zu 15 € Guthaben beim Registrieren

Erkannt an
@sveltejs/kit und der Adapter in der package.json
Start
node build (adapter-node) oder statische Dateien (adapter-static)
Node.js
22, 24 (Standard), 26
Region
EU Central (Frankfurt)

SvelteKit Schritt für Schritt deployen

  1. Von adapter-auto auf adapter-node wechseln Führ npm i -D @sveltejs/adapter-node aus, entfern @sveltejs/adapter-auto und trag den neuen Adapter in deine Config ein. Nodion liest den Adapter aus der package.json, was der Build schreibt, entscheidet die Config; ändere also beides. In SvelteKit 3 steht die Config in den Optionen von sveltekit() in der vite.config.js, bei SvelteKit 2 ist es kit.adapter in der 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. Lockfile committen, start-Skript weglassen Committe dein Lockfile; ohne Lockfile scheitert der Build. Nodion führt dein build-Skript aus und startet node build, und adapter-node lauscht auf dem PORT, den Nodion setzt. Ein start-Skript, falls du eins anlegst, ersetzt diesen Befehl.
  3. Öffentlichen Origin setzen Nodion terminiert HTTPS vor deiner App, SvelteKit kann aus dem Request also nicht ablesen, unter welcher URL deine Besucher die App aufrufen, und lehnt Formular-Submits sonst als Cross-Site ab. In SvelteKit 3 setzt du paths.origin wie in der Config oben auf deine öffentliche URL; das ersetzt die ORIGIN-Variable von adapter-node. Bei SvelteKit 2 setzt du stattdessen ORIGIN auf dem Tab Environment, etwa https://shop.example.com.
  4. Variablen für Build und Laufzeit Werte aus $env/static/private und $env/static/public werden beim Build eingesetzt, sie brauchen auf dem Tab Environment also das Häkchen Build. $env/dynamic/private und $env/dynamic/public liest der Server zur Laufzeit, dafür reichen normale Variablen.
  5. App anlegen und pushen Lege im Dashboard eine Application aus deinem GitHub-, GitLab-, Bitbucket- oder Gitea-Repository in der Region EU Central an. Jeder Push baut ein neues Release, und der Traffic wechselt, sobald / mit 2xx oder 3xx antwortet. Antwortet / mit 401 oder 404, leg eine Route wie src/routes/health/+server.js an, die 200 liefert, und trag /health als Health-Check-Pfad ein.

Gut zu wissen

  • Statische Sites mit adapter-staticMit @sveltejs/adapter-static liefert Nodion build/ über einen statischen Webserver mit index.html-Fallback aus. Prerendere deine Seiten mit export const prerender = true im Root-+layout.js. Für eine Single-Page-App schaltest du dort SSR ab und setzt in den Adapter-Optionen fallback: 'index.html', denn Nodion braucht eine index.html in build/. Es läuft kein Node.js-Server, die kleinste Größe reicht.
  • Nur ein Adapter in der package.jsonNodion prüft zuerst auf adapter-static, dann auf adapter-node. Sind beide installiert, wird die App als statische Site gebaut; entfern also den Adapter, den du nicht nutzt.

Was Nodion für dich betreibt

  • Deploys ohne Downtime Push auf deinen Branch und Nodion baut ein neues Release. Der Traffic wechselt erst, wenn die neuen Instanzen ihren Health Check bestehen; ein fehlgeschlagenes Release lässt das laufende stehen. Apps mit lokalem Volume starten stattdessen neu, weil die Disk zu einer Instanz gehört.
  • Datenbanken neben der App Managed PostgreSQL, pgvector, MySQL, Valkey und ClickHouse in derselben Region. Angehängte Datenbanken kommen als DATABASE_URL, REDIS_URL oder CLICKHOUSE_URL in die App.
  • Previews pro Pull Request Schalte Previews ein, und Pull Requests aus deinem Repository bekommen eine eigene App mit eigener URL und frischen, leeren Datenbanken, automatisch oder per Hand angelegt. Forks und Bot-Pull-Requests werden übersprungen.
  • Worker, Cron Jobs und Skalierung Worker laufen als weitere Prozesse derselben App, Jobs planst du auf dem Tab Cron, und jeden Prozess skalierst du auf bis zu 16 Instanzen.
  • Release-Schritt Mit Buildpacks läuft eine release:-Zeile in der Procfile bei jedem neuen Build. Dockerfile-Apps sowie Redeploys und Rollbacks auf ein früheres Image nutzen einen Release Command, der an der App selbst gesetzt ist; er hat auch Vorrang vor der Procfile-Zeile. Bei statischen Sites läuft ein Release-Schritt in einem Image, das nur die gebauten Dateien enthält.
  • Logs und Metriken Build-, Release- und Laufzeit-Logs sowie CPU-, Speicher-, Disk- und Netzwerk-Metriken für jede Instanz im Dashboard.
  • Domains und HTTPS Ein Default-Hostname mit HTTPS ab dem ersten Deploy; deine eigenen Domains bekommen automatisch Zertifikate.

Weiterlesen

SvelteKit auf Nodion: Fragen und Antworten

Warum lässt sich meine SvelteKit-App mit adapter-auto nicht deployen?

adapter-auto kennt nur eine feste Liste von Hostern, Nodion steht nicht darauf, der Build liefert also keinen Output, den Nodion nutzen kann. Installier @sveltejs/adapter-node oder @sveltejs/adapter-static und trag ihn in deine Config ein: vite.config.js in SvelteKit 3, svelte.config.js in SvelteKit 2.

Funktionieren Form Actions, Server-Load-Funktionen und API-Routen?

Ja, mit adapter-node. Nodion betreibt deine App als dauerhaft laufenden Node.js-Server, +page.server.js, +server.js und Form Actions funktionieren also wie mit node build bei dir lokal. Setz den öffentlichen Origin (paths.origin in SvelteKit 3, ORIGIN in SvelteKit 2), damit Form Actions nicht als Cross-Site abgelehnt werden.

Brauche ich ein Dockerfile für SvelteKit?

Nein. Mit adapter-node oder adapter-static baut das Node.js-Buildpack die App anhand der package.json. Liegt ein Dockerfile im Repository, wählt das Formular beim Anlegen stattdessen die Dockerfile-Strategie.

Wo läuft meine SvelteKit-App?

In der Region EU Central in Frankfurt. Build, Registry, die App und ihre Datenbanken, Volumes, Buckets, Logs und Metriken bleiben in dieser Region, API und Control Plane von Nodion werden in Deutschland gehostet. Die Nodion GmbH hat ihren Sitz in Stuttgart.

Kann ich SvelteKit DSGVO-konform betreiben?

Nodion schafft die Voraussetzungen dafür: Die Nodion GmbH hat ihren Sitz in Stuttgart, in der Region Frankfurt laufen App, Datenbanken und Volumes in Deutschland, und den Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO schließt du im Dashboard elektronisch ab. Ob dein Einsatz DSGVO-konform ist, hängt auch davon ab, wie du die App konfigurierst und nutzt.

Was kostet SvelteKit-Hosting auf Nodion?

Eine App-Instanz gibt es ab 1 EUR im Monat. Das Setup im Kostenkasten kostet 2 EUR im Monat: App 2 EUR. Preise sind netto, Abrechnung pro Sekunde, größere Varianten oder mehr Instanzen wählst du jederzeit.

Kann ich eine eigene Domain für meine SvelteKit-App nutzen?

Ja. Jede App bekommt einen Default-Hostnamen mit HTTPS. Deine eigene Domain nimmst du auf dem Tab Domains dazu, das TLS-Zertifikat wird automatisch ausgestellt und erneuert.

Gibt es Support auf Deutsch?

Ja. Nodion ist ein deutsches Unternehmen mit Sitz in Stuttgart, der Support antwortet auf Deutsch und auf Englisch.

Gib deinem Agenten eine Cloud.

Bis zu 15 € Guthaben beim Registrieren.

Weiter mit GitHub

oder per E-Mail

Bleib auf dem Laufenden.

Produktnews, kein Spam. Jederzeit abbestellen.