DOCUMENTAZIONE

Hosting

Pubblica il front end della tua app accanto al suo backend. Carica un sito già compilato, ottieni subito un indirizzo sicuro e torna a una versione recente con un clic.

← Tutta la documentazione

Come funziona

  • Un sito è un nome e un indirizzo: un sito chiamato my-app viene servito su https://my-app.espohost.com. Un progetto può avere più siti.
  • Ogni caricamento è un deploy: una copia dei tuoi file che non cambia mai. Un sito mostra un solo deploy alla volta, quello attivo, quindi pubblicare una nuova versione non modifica mai le precedenti.
  • Espobase serve i tuoi file così come sono e non esegue il tuo codice sui suoi server di hosting. Per il lavoro lato server, chiama dalla pagina l'API REST del tuo progetto o una edge function.

1. Pubblica dalla dashboard

  1. Apri il progetto, scegli Hosting nel menu a sinistra e crea un sito: un nome, un indirizzo e, per app React, Vue e simili, l'interruttore App a pagina singola.
  2. Fai clic su Pubblica una cartella e scegli la cartella di build, per esempio dist o out. I file nascosti non vengono mai caricati.
  3. Il browser calcola l'impronta di ogni file e carica una sola volta ciascun file distinto. Al termine del caricamento, il nuovo deploy diventa attivo.
  4. Apri l'indirizzo mostrato nella scheda del sito.

2. Pubblica dal terminale o da CI

Con la CLI espobase pubblichi una cartella di build con un solo comando:

espobase deploy ./dist --site my-app
# ✓ 42 files · 1.8 MB
# → https://my-app.espohost.com

--message aggiunge una nota al deploy e --no-activate lo carica senza attivarlo. Per CI, crea un token solo con il permesso Deploy dei siti (Impostazioni account › Sviluppatore) e passalo come ESPOBASE_TOKEN. Quel token può pubblicare, ma non può eliminare siti né cambiarne le impostazioni. espobase sites list mostra i tuoi siti.

Compila da Git

  • Invece di caricare una cartella, un sito può essere compilato da un repository Git pubblico (GitHub, GitLab, Bitbucket o Codeberg) che contiene un progetto Node. Apri la scheda del sito, scegli Configura le compilazioni, inserisci il repository e il branch (e, se serve, la cartella, i comandi e la versione di Node, 20 o 22), poi fai clic su Compila ora.
  • Espobase clona il repository, installa le dipendenze (secondo il tuo lockfile: pnpm, yarn o npm) ed esegue il tuo comando di build, ogni passaggio in un ambiente isolato. La cartella di output (dist, build, out, public o quella che indichi) viene pubblicata come nuovo deploy e diventa attiva.
  • Una compilazione può usare 2 CPU, 4 GB di memoria e 10 minuti. L'ambiente isolato non ha accesso a Espobase e non contiene segreti di Espobase.
  • Il log compare nella scheda del sito mentre la compilazione è in corso e viene conservato con essa (si tengono le ultime 30 compilazioni). Un sito compila una cosa alla volta e puoi annullare una compilazione in attesa o in corso.
  • Le compilazioni usano i minuti di build del tuo piano, arrotondati per eccesso a ogni compilazione. Quando sono esauriti, le nuove compilazioni attendono il prossimo ciclo di fatturazione; il sito già pubblicato non ne risente.
  • In Variabili di build puoi dare alla build dei valori come variabili d'ambiente. I valori pubblici (come VITE_API_URL) sono mostrati nella dashboard; i segreti sono cifrati, non vengono più mostrati e sono nascosti nei log. Tutto ciò che una build inserisce nei file del sito può essere letto da ogni visitatore, quindi non usare segreti nelle variabili che i framework copiano nel sito (nomi che iniziano con VITE_ o NEXT_PUBLIC_).
  • GitHub (Pro e Group): collega un account GitHub in GitHub nella barra laterale, poi scegli GitHub come origine del codice nelle impostazioni di build del sito. I repository privati funzionano: Espobase li legge con l'app che hai installato, solo durante la build. Un push sul ramo di produzione compila e pubblica il sito, e ogni pull request dello stesso repository ha un'anteprima al proprio indirizzo (pubblica, nascosta ai motori di ricerca, rimossa alla chiusura della pull request). Le pull request dei fork non vengono mai compilate.

Come viene servito il sito

  • HTTPS è automatico. Ogni sito ha un proprio indirizzo sotto espohost.com.
  • /about apre about.html e /docs apre docs/index.html. Un indirizzo di cartella senza barra finale reindirizza a quello con la barra.
  • Aggiungi un 404.html per mostrare la tua pagina di non trovato. Senza, i visitatori vedono un semplice 404.
  • Con App a pagina singola attivo, i percorsi che non sono file aprono index.html, così il router della tua app può gestirli. Un file con estensione che non esiste, come /logo.png, restituisce comunque 404.
  • I browser ricontrollano i file a ogni visita (con un ETag), quindi un nuovo deploy si vede subito. I file in _next/static/ hanno un hash del contenuto di Next.js e restano in cache per un anno.
  • Il tipo di contenuto deriva dall'estensione del file.

Il tuo dominio

  1. Apri la scheda del sito in Hosting, scegli Gestisci i domini e aggiungi il tuo dominio, per esempio www.tuomarchio.com.
  2. Dal tuo provider DNS, pubblica i due record mostrati: un record TXT che dimostra che il dominio è tuo (lascialo pubblicato) e un CNAME dal tuo dominio a sites.espohost.com. Un dominio radice come tuomarchio.com non può avere un CNAME, quindi pubblica invece i record A mostrati.
  3. Fai clic su Controlla DNS. Quando il record TXT viene trovato, il dominio è verificato e il certificato HTTPS viene emesso automaticamente alla prima visita, in pochi secondi.
  4. Il sito ora risponde sul tuo dominio e sul suo indirizzo espohost.com. Rimuovere un dominio lo ferma subito.
  5. Se il tuo piano passa ad avere meno domini, quelli in eccesso non vengono più serviti ma restano salvati.

Banda

  • La banda è la quantità di dati che i tuoi siti inviano ai visitatori. Viene conteggiata per ciclo di fatturazione su tutti i siti della tua organizzazione e la vedi nella pagina Hosting.
  • Ricevi un'email al 75%, 90% e 100% della banda del tuo piano. Il traffico extra non viene mai addebitato.
  • Tra il 100% e il 125% i tuoi siti continuano a funzionare. Oltre il 125%, i visitatori vedono una pagina di "limite di banda raggiunto" fino all'inizio del prossimo ciclo di fatturazione, o finché non passi a un piano con più banda. Non viene eliminato nulla.
  • Il traffico viene sommato ogni minuto, quindi la pausa inizia entro pochi minuti dal superamento del limite.

Versioni e ripristino

  • Ogni deploy è elencato nella scheda del sito. Scegli Attiva su uno più vecchio per tornare indietro, o su uno più recente per andare avanti. È istantaneo, perché si sposta solo il puntatore.
  • Espobase conserva i 10 deploy più recenti di ogni sito e rimuove automaticamente quelli più vecchi. Il deploy attivo non viene mai rimosso.
  • Gli sviluppatori possono pubblicare e tornare indietro. Gli amministratori creano, rinominano ed eliminano i siti, cambiano l'impostazione di app a pagina singola ed eliminano i deploy. Ogni modifica viene registrata nel log di audit.

Sicurezza

  • Tutto ciò che pubblichi è pubblico. Non mettere segreti nei file. La chiave pubblicabile è fatta per essere pubblica e le tue regole di sicurezza a livello di riga proteggono i dati; non mettere mai una chiave segreta in un sito.
  • I siti vivono su espohost.com, un dominio diverso da Espobase, quindi un sito non può leggere i cookie né gli accessi di Espobase.
  • Ogni file caricato viene controllato con l'impronta e la dimensione dichiarate, e non viene servito nulla che non sia nell'elenco dei file del deploy.

Piani e limiti

  • Free: l'hosting non è incluso.
  • Pro: 10 siti per progetto, 10 GB di file ospitati, 1 dominio personalizzato per sito, 250 GB di banda al mese, 500 minuti di build al mese.
  • Group: 50 siti per progetto, 100 GB di file ospitati, 5 domini personalizzati per sito, 1 TB di banda al mese, 2.000 minuti di build al mese.
  • Un deploy può avere fino a 10.000 file, 50 MB per file e 500 MB in totale. Un caricamento che non finisce entro un'ora scade.
  • I file ospitati vengono conteggiati su tutta la tua organizzazione. Se passi a un piano con meno siti, i siti in eccesso non vengono più serviti, ma non si elimina nulla.

Non ancora disponibile

  • App con rendering lato server (come Next.js con server). Le esportazioni statiche funzionano già oggi.