
SvelteKit hosten, mit dem richtigen Adapter
Ein Paket, vier Zeilen Umstellung, dann läuft Ihr Projekt auf Schweizer Servern. Fester Monatspreis ab CHF 8.90, Deploy per Git-Push.
Die einzige Hürde heisst adapter-auto
Neue SvelteKit-Projekte starten mit adapter-auto. Der erkennt die Umgebung an Merkmalen bestimmter Anbieter und findet auf einem gewöhnlichen Server nichts. Die Lösung ist ein Zweizeiler.
npm i -D @sveltejs/adapter-nodeDen Node-Adapter als Entwicklungsabhängigkeit aufnehmen.import adapter from '@sveltejs/adapter-node'In svelte.config.js den Import von adapter-auto ersetzen.npm run buildDer Bau legt einen fertigen Server im Ordner build ab.node buildDas ist Ihr Start-Befehl im Panel, mehr braucht es nicht.Danach genügt ein Push. Gebaut und umgeschaltet wird bei uns, ohne Unterbruch für Ihre Besucher.
Und dann läuft alles davon
Load-Funktionen auf dem Server
Alles in +page.server.ts und +layout.server.ts läuft serverseitig, mit Zugriff auf Ihre Datenbank und Ihre Umgebungsvariablen.
Form Actions
Formulare mit fortschreitender Verbesserung funktionieren vollständig, weil ein echter Node-Prozess dahintersteht und nicht eine Funktion mit Kaltstart.
Endpunkte und Hooks
+server.ts-Endpunkte und hooks.server.ts laufen im selben Prozess. Auch handle und handleFetch verhalten sich wie lokal.
Vorrendern gemischt
Was Sie mit prerender markieren, landet als Datei im Bau und wird von nginx direkt ausgeliefert. Der Rest wird gerendert.
Was Kunden damit tatsächlich bauen
Drei typische Aufbauten und das Paket, mit dem sie laufen.
Website mit Formularen
Kontakt, Anmeldung, Bestellstrecke. Alles läuft über Form Actions, die serverseitig verarbeitet werden.
Ein dauerhafter Prozess nimmt die Formulare entgegen, verschickt die Mail über den enthaltenen SMTP-Zugang und schreibt in die Datenbank.
Passendes Paket
Basic, ab CHF 8.90/Mt.
Anwendung mit Anmeldung
Benutzerkonten, Sitzungen, geschützte Bereiche. Die Daten liegen in einer eigenen Datenbank.
Sitzungs-Cookies funktionieren ohne Umweg, hooks.server.ts prüft jede Anfrage, PostgreSQL ist über localhost erreichbar.
Passendes Paket
Business, ab CHF 11.90/Mt.
Shop-Frontend
Produktseiten sollen in der Suche auffindbar sein, der Warenkorb muss pro Besucher stimmen.
Produktseiten vorgerendert und von nginx ausgeliefert, der Warenkorb serverseitig. Beides im selben Projekt.
Passendes Paket
Business oder Professional
Aus der Praxis
Fünf Stolpersteine, die wir immer wieder sehen
Der erste ist der berühmte, die anderen vier kosten genauso viel Zeit.
Der Bau bricht mit einer Meldung über einen fehlenden Adapter ab.
adapter-auto erkennt bestimmte Anbieter an ihren Merkmalen und findet auf einem gewöhnlichen Server nichts. Tauschen Sie ihn gegen den Node-Adapter.
npm i -D @sveltejs/adapter-nodeForm Actions antworten mit einem Fehler zur Herkunft.
SvelteKit prüft bei Formularen die Herkunft der Anfrage. Hinter einem Proxy braucht es dafür die eigene Adresse als Umgebungsvariable, die Sie im Panel eintragen.
ORIGIN=https://ihre-domain.chGeheimnisse tauchen im Browser auf.
Importieren Sie serverseitige Werte aus $env/static/private oder $env/dynamic/private, nie aus den öffentlichen Gegenstücken. SvelteKit warnt beim Bauen, wenn ein privater Wert in Client-Code landet.
Alles wird dynamisch gerendert, obwohl vieles statisch sein könnte.
Markieren Sie Routen, die sich nicht pro Besucher unterscheiden, als vorgerendert. Die landen dann als Datei im Bau und werden direkt von nginx ausgeliefert.
export const prerender = trueHochgeladene Dateien sind nach einem Deploy weg.
Jeder Deploy startet in einer frischen Ablage. Legen Sie Uploads in das beständige Verzeichnis Ihrer Website, das die täglichen Backups mit abdecken, nicht in den Bau-Ordner.
SvelteKit läuft auf jedem Paket
Node-Laufzeit, Deploy per Git-Push, Datenbank und E-Mail sind überall enthalten. Unterschiedlich sind Speicher, Arbeitsspeicher und die Zahl der Websites.
Auf jedem Paket schon dabei
Deploy per Git-Push
Repository verbinden, pushen, fertig. Gebaut wird in einem eigenen Auftrag, umgeschaltet erst, wenn die neue Fassung antwortet.
Datenbank inklusive
MySQL oder PostgreSQL, je nach Paket 1, 5 oder 10 Stück. Erreichbar über localhost, ohne offenen Port nach aussen.
E-Mail inklusive
Postfächer auf Ihrer Domain, 10 bis 100 je nach Paket, mit Webmail, IMAP und Spamschutz. Ihre App verschickt über denselben Zugang.
Häufige Fragen zu SvelteKit-Hosting
Warum funktioniert mein Build mit adapter-auto nicht?
adapter-auto erkennt die Umgebung an Merkmalen bestimmter Anbieter. Auf einem neutralen Server findet er nichts und bricht ab. Setzen Sie stattdessen @sveltejs/adapter-node, das ist der richtige Adapter für jeden gewöhnlichen Node-Server.
Wie lautet der Start-Befehl?
node build. Der Node-Adapter legt den fertigen Server im Ordner build ab, dieser eine Befehl startet ihn. Der Build-Befehl bleibt npm run build.
Muss ich ORIGIN oder PORT setzen?
Den Port setzen wir, den liest der Adapter von selbst. ORIGIN brauchen Sie, sobald Form Actions über Ihre eigene Domain laufen, den Wert tragen Sie einfach in die Umgebungsvariablen im Panel ein.
Funktionieren Form Actions und Cookies?
Ja, vollständig. Der Prozess läuft dauerhaft, es gibt keine Funktion mit Kaltstart dazwischen, und Cookies werden ganz normal gesetzt und gelesen.
Kann ich einzelne Routen vorrendern?
Ja. Mit export const prerender = true wird die Route beim Bauen erzeugt und danach direkt von nginx ausgeliefert. Der dynamische Rest geht an den Node-Prozess.
Und Svelte ohne Kit?
Eine reine Svelte-Anwendung ohne Serverteil ist statisch und läuft auf jedem unserer Pakete. Die Node-Laufzeit brauchen Sie erst mit SvelteKit und Serverrouten.
Wie halte ich private und öffentliche Variablen auseinander?
Über die Module $env/static/private und $env/static/public. Private Werte bleiben auf dem Server, öffentliche landen im Browser. Beide pflegen Sie im Panel, gespeichert wird verschlüsselt.
Kann ich eine Datenbank anbinden?
Ja, sie ist im Paket enthalten. MySQL oder PostgreSQL, je nach Paket 1, 5 oder 10 Stück, erreichbar über localhost. Drizzle, Prisma oder ein blanker Treiber verbinden sich wie gewohnt.
Wo lege ich hochgeladene Dateien ab?
Im beständigen Verzeichnis Ihrer Website. Der Bau-Ordner wird bei jedem Deploy neu erzeugt, dort abgelegte Dateien verschwinden also beim nächsten Push.
Bekomme ich eine Testumgebung?
Legen Sie eine zweite Website an und verbinden Sie dort Ihren Entwicklungszweig. Ab dem Business-Paket sind fünf Websites enthalten, jede mit eigener Predomain und eigener Datenbank.
Was kostet das im Monat?
Ab CHF 8.90 im Basic, CHF 11.90 im Business und CHF 19.90 im Professional. Der Betrag steht fest, Bandbreite wird nicht verrechnet.
SvelteKit auf Schweizer Servern
ab CHF 8.90/Mt. adapter-node, Datenbank und E-Mail inklusive, Deploy per Git-Push.
Läuft auf derselben Plattform wie unser Node.js-Hosting.