Framework Francoforte, Germania

Fai il deploy di Static sites and SPAs su Nodion

Nodion fa la build di frontend come Vite, Angular, Create React App, Gatsby ed Eleventy con il suo buildpack Node.js, poi serve la cartella di output con un server web statico. Un repository con un index.html alla radice e senza package.json viene servito così com'è. Il tuo sito gira a Francoforte e basta la dimensione minima.

Fai il deploy su Nodion ›

da 1 EUR / mese

Fino a 15 € di credito di benvenuto alla registrazione

Rilevato da
Un framework statico nel package.json, un static.toml o un index.html alla radice
Output
dist/, build/, public/, _site/ o il tuo static.toml
Servito da
static-web-server con fallback su index.html
Regione
EU Central (Francoforte)

Deploy di Static sites and SPAs passo dopo passo

  1. Fai il commit di lockfile e script di build Fai il commit del lockfile; senza lockfile la build fallisce. Nodion esegue lo script build e prende la cartella di output dal tuo framework: dist/ per Vite, build/ per Create React App, dist/<project>/browser per Angular, public/ per Gatsby e _site/ per Eleventy. package.json
    "scripts": {
      "dev": "vite",
      "build": "vite build"
    }
  2. Imposta le variabili di build Il tuo bundler scrive variabili come VITE_*, REACT_APP_* o GATSBY_* nei file durante la build, quindi hanno bisogno del flag Build nella scheda Environment. Tutto ciò che contengono è pubblico, quindi non metterci mai segreti.
  3. Indica le altre cartelle di output in static.toml Funzionano anche altri generatori: Nodion cerca un index.html in dist, build, out, .output/public, public e _site. Se il tuo scrive altrove, come fa VitePress, aggiungi un static.toml accanto al package.json. Il file consente anche a Nodion di riconoscere il repository come sito statico quando altrimenti non lo riconoscerebbe. fallback indica il file servito per i percorsi che non esistono. static.toml
    output-dir = "docs/.vitepress/dist"
    fallback = "index.html"
  4. L'HTML puro non ha bisogno di build Un repository con un index.html alla radice e senza package.json viene servito così com'è. Nodion esclude .git, i file .env e alcuni file di chiavi comuni, ma considera pubblico tutto ciò di cui fai il commit e tieni i segreti fuori dal repository.
  5. Crea l'app e fai push Nella dashboard crea un'applicazione dal tuo repository GitHub, GitLab, Bitbucket o Gitea nella regione EU Central e scegli la dimensione minima. Ogni push crea una nuova release e il traffico passa alla nuova release appena / risponde, grazie al tuo index.html.

Da sapere

  • Il routing lato client funzionaI percorsi che non corrispondono a nessun file ricevono il tuo index.html, quindi le route di React Router, Vue Router e Angular continuano a funzionare dopo un ricaricamento della pagina. Il fallback non si può disattivare; fallback in static.toml cambia solo il file.
  • Niente processi Procfile, niente codice serverI processi del Procfile non hanno effetto su un sito statico, e viene pubblicata solo la cartella di output. Una riga release: verrebbe comunque eseguita, ma in un'immagine che contiene solo i file compilati, quindi non usarla. Se il tuo repository è un server Node.js con uno script di build, leggi la guida Node.js per capire come Nodion distingue i due casi.
  • Angular SSRNodion compila i progetti Angular come siti statici, anche con @angular/ssr, quindi il rendering lato server non viene eseguito. Per l'SSR, usa un Dockerfile.
  • Hugo e JekyllNodion non esegue build di Hugo o Jekyll. Fai tu la build del sito, fai il commit della cartella generata (public/ o _site/) e impostala come base directory dell'app: una cartella con un index.html e senza package.json viene servita così com'è. Oppure fai la build del sito in un Dockerfile.

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

Static sites and SPAs su Nodion: domande e risposte

Perché la mia build fallisce con “could not determine static output directory”?

Dopo la build, Nodion non ha trovato nessun index.html nelle cartelle che controlla. Assicurati che il tuo script di build ne generi uno, oppure indica la cartella con output-dir in un static.toml.

Un sito statico può leggere le variabili d'ambiente a runtime?

No. Non gira nessun server che possa leggerle, quindi ogni valore deve esserci già durante la build: dagli il flag Build. Dopo averne cambiato uno, fai di nuovo il deploy per ricompilare i file.

Con quale versione di Node.js viene compilato il mio sito?

Node.js 24, a meno che tu non fissi la 22 o la 26 in .node-version, .nvmrc o engines.node. Un intervallo come ">=20" si risolve nella release più recente compatibile.

Dove gira la mia app Static sites and SPAs?

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 Static sites and SPAs 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 Static sites and SPAs su Nodion?

Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 1 EUR al mese: App 1 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 Static sites and SPAs?

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.