Framework Francoforte, Germania

Fai il deploy di SvelteKit su Nodion

Nodion fa la build di SvelteKit con il suo buildpack Node.js e legge l'adapter dal package.json: con @sveltejs/adapter-node avvia la tua app con node build, con @sveltejs/adapter-static serve build/ come sito statico. L'adapter predefinito del template, adapter-auto, non funziona su Nodion, quindi cambia adapter prima del deploy. La tua app gira a Francoforte.

Fai il deploy su Nodion ›

da 1 EUR / mese

Fino a 15 € di credito di benvenuto alla registrazione

Rilevato da
@sveltejs/kit e l'adapter nel package.json
Avvio
node build (adapter-node) o file statici (adapter-static)
Node.js
22, 24 (predefinita), 26
Regione
EU Central (Francoforte)

Deploy di SvelteKit passo dopo passo

  1. Passa da adapter-auto ad adapter-node Esegui npm i -D @sveltejs/adapter-node, rimuovi @sveltejs/adapter-auto e usa il nuovo adapter nella tua configurazione. Nodion legge l'adapter dal package.json, mentre la configurazione decide cosa scrive la build, quindi cambia entrambi. In SvelteKit 3 la configurazione si trova nelle opzioni di sveltekit() in vite.config.js; in SvelteKit 2 è 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. Fai il commit del lockfile, niente script di avvio Fai il commit del lockfile; senza lockfile la build fallisce. Nodion esegue il tuo script build e avvia node build, e adapter-node ascolta sulla porta PORT impostata da Nodion. Uno script di avvio, se lo aggiungi, sostituisce quel comando.
  3. Imposta l'origine pubblica Nodion termina HTTPS a monte della tua app, quindi dalla richiesta SvelteKit non può capire quale URL usano i tuoi visitatori, e senza questa informazione l'invio dei form viene rifiutato come cross-site. In SvelteKit 3, imposta paths.origin sul tuo URL pubblico come nella configurazione qui sopra; sostituisce la variabile ORIGIN di adapter-node. In SvelteKit 2, imposta invece ORIGIN nella scheda Environment, per esempio https://shop.example.com.
  4. Variabili di build e di runtime I valori di $env/static/private e $env/static/public vengono inseriti nel codice durante la build, quindi hanno bisogno del flag Build nella scheda Environment. $env/dynamic/private e $env/dynamic/public vengono letti mentre il server è in esecuzione e funzionano con le variabili normali.
  5. Crea l'app e fai push Nella dashboard crea un'applicazione dal tuo repository GitHub, GitLab, Bitbucket o Gitea nella regione EU Central. Ogni push crea una nuova release, e il traffico passa alla nuova release appena / risponde con uno stato 2xx o 3xx. Se / risponde 401 o 404, aggiungi una route come src/routes/health/+server.js che restituisca 200 e imposta /health come percorso di health check.

Da sapere

  • Siti statici con adapter-staticCon @sveltejs/adapter-static, Nodion serve build/ con un server web statico e un fallback su index.html. Fai il prerender delle pagine con export const prerender = true nel +layout.js alla radice. Per una single-page app, disattiva lì l'SSR e imposta fallback: 'index.html' nelle opzioni dell'adapter, perché Nodion ha bisogno di un index.html in build/. Non gira nessun server Node.js, quindi basta la dimensione minima.
  • Un solo adapter nel package.jsonNodion cerca prima adapter-static, poi adapter-node. Se sono installati entrambi, l'app viene compilata come sito statico, quindi rimuovi l'adapter che non usi.

Cosa gestisce Nodion per te

  • Deploy senza downtime Fai push sul tuo branch e Nodion crea una nuova release. Il traffico passa alle nuove istanze solo quando superano l'health check; una release fallita lascia attiva quella in esecuzione. Le app con un volume locale invece si riavviano, perché il disco appartiene a una sola istanza.
  • Database accanto all'app PostgreSQL, pgvector, MySQL, Valkey e ClickHouse gestiti, nella stessa regione. I database collegati arrivano come DATABASE_URL, REDIS_URL o CLICKHOUSE_URL.
  • Anteprime per ogni pull request Attiva le anteprime: ogni pull request del tuo repository riceve un'app dedicata, con un proprio URL e database nuovi e vuoti, creata automaticamente o manualmente. Le pull request dai fork e quelle dei bot vengono ignorate.
  • Worker, cron job e scalabilità Esegui i worker come processi aggiuntivi della stessa app, pianifica i job nella scheda Cron e scala ogni processo fino a 16 istanze.
  • Fase di release Con i buildpack, la riga release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build.
  • Log e metriche Nella dashboard trovi log di build, release e runtime, oltre alle metriche di CPU, memoria, disco e rete per ogni istanza.
  • Domini e HTTPS Un hostname predefinito con HTTPS dal primo deploy; i tuoi domini ricevono i certificati in automatico.

Per approfondire

SvelteKit su Nodion: domande e risposte

Perché il deploy della mia app SvelteKit non funziona con adapter-auto?

adapter-auto conosce solo un elenco fisso di provider di hosting, e Nodion non è tra questi, quindi la build non produce un output che Nodion possa usare. Installa @sveltejs/adapter-node o @sveltejs/adapter-static e usalo nella tua configurazione: vite.config.js in SvelteKit 3, svelte.config.js in SvelteKit 2.

Funzionano form action, funzioni load lato server e route API?

Sì, con adapter-node. Nodion esegue la tua app come server Node.js sempre attivo, quindi +page.server.js, +server.js e le form action funzionano come con node build sulla tua macchina. Imposta l'origine pubblica (paths.origin in SvelteKit 3, ORIGIN in SvelteKit 2), così le form action non vengono rifiutate come cross-site.

Mi serve un Dockerfile per SvelteKit?

No. Con adapter-node o adapter-static, il buildpack Node.js fa la build dell'app a partire dal package.json. Se il tuo repository contiene un Dockerfile, il modulo di creazione sceglie invece la strategia Dockerfile.

Dove gira la mia app SvelteKit?

Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.

Posso usare SvelteKit in modo conforme al GDPR?

Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.

Quanto costa l'hosting di SvelteKit su Nodion?

Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 2 EUR al mese: App 2 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.

Posso usare un mio dominio per la mia app SvelteKit?

Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.

Dai al tuo agente un cloud tutto suo.

Fino a 15 € di credito quando ti registri.

Continua con GitHub

oppure con l'email

Resta aggiornato.

Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.