Hosting
Veröffentliche das Frontend deiner App direkt neben ihrem Backend. Lade eine fertig gebaute Website hoch, bekomme sofort eine sichere Adresse und gehe mit einem Klick zu einer neueren Version zurück.
So funktioniert es
- Eine Website besteht aus einem Namen und einer Adresse: Eine Website namens
my-appwird unterhttps://my-app.espohost.comausgeliefert. Ein Projekt kann mehrere Websites haben. - Jeder Upload ist ein Deployment: eine Kopie deiner Dateien, die sich nie ändert. Eine Website zeigt immer ein Deployment, das aktive, deshalb ändert das Veröffentlichen einer neuen Version nie eine alte.
- Espobase liefert deine Dateien unverändert aus und führt deinen Code nicht auf seinen Hosting-Servern aus. Für Serverarbeit rufst du von der Seite aus die REST-API deines Projekts oder eine Edge Function auf.
1. Im Dashboard veröffentlichen
- Öffne dein Projekt, wähle links Hosting und lege eine Website an: einen Namen, eine Adresse und, für React-, Vue- und ähnliche Apps, den Schalter Single-Page-App.
- Klicke auf Ordner veröffentlichen und wähle deinen Build-Ordner, zum Beispiel
distoderout. Versteckte Dateien werden nie hochgeladen. - Dein Browser berechnet für jede Datei einen Fingerabdruck und lädt jede unterschiedliche Datei nur einmal hoch. Nach dem Upload geht das neue Deployment live.
- Öffne die Adresse, die auf der Karte der Website steht.
2. Aus dem Terminal oder aus CI veröffentlichen
Mit der espobase-CLI veröffentlichst du einen Build-Ordner mit einem Befehl:
espobase deploy ./dist --site my-app # ✓ 42 files · 1.8 MB # → https://my-app.espohost.com
--message fügt dem Deployment eine Notiz hinzu, --no-activate lädt es hoch, ohne es live zu schalten. Erstelle für CI ein Token nur mit der Berechtigung Websites bereitstellen (Kontoeinstellungen › Entwickler) und übergib es als ESPOBASE_TOKEN. Dieses Token kann veröffentlichen, aber keine Websites löschen und ihre Einstellungen nicht ändern. espobase sites list zeigt deine Websites.
Aus Git bauen
- Statt einen Ordner hochzuladen, kann eine Website aus einem öffentlichen Git-Repository (GitHub, GitLab, Bitbucket oder Codeberg) gebaut werden, das ein Node-Projekt enthält. Öffne die Karte der Website, wähle Builds einrichten, gib Repository und Branch an (und bei Bedarf Ordner, Befehle und Node-Version, 20 oder 22) und klicke auf Jetzt bauen.
- Espobase klont das Repository, installiert die Abhängigkeiten (nach deiner Lockdatei: pnpm, yarn oder npm) und führt deinen Build-Befehl aus, jeden Schritt in einer abgeschotteten Umgebung. Der Ausgabeordner (
dist,build,out,publicoder der von dir festgelegte) wird als neues Deployment veröffentlicht und geht live. - Ein Build darf 2 CPUs, 4 GB Speicher und 10 Minuten nutzen. Die abgeschottete Umgebung hat keinen Zugriff auf Espobase und enthält keine Espobase-Geheimnisse.
- Das Log erscheint auf der Karte der Website, solange der Build läuft, und bleibt beim Build gespeichert (die letzten 30 Builds werden aufbewahrt). Eine Website baut immer nur eins gleichzeitig, und du kannst einen wartenden oder laufenden Build abbrechen.
- Builds verbrauchen die Build-Minuten deines Tarifs, pro Build aufgerundet. Sind sie aufgebraucht, warten neue Builds bis zum nächsten Abrechnungszeitraum; die bereits veröffentlichte Website bleibt unberührt.
- Unter Build-Variablen kannst du deinem Build Werte als Umgebungsvariablen mitgeben. Öffentliche Werte (wie
VITE_API_URL) werden im Dashboard angezeigt; Geheimnisse werden verschlüsselt, nie wieder angezeigt und in den Logs verborgen. Alles, was ein Build in die Dateien der Website schreibt, kann jeder Besucher lesen. Nutze daher keine Geheimnisse in Variablen, die Frameworks in die Website kopieren (Namen, die mitVITE_oderNEXT_PUBLIC_beginnen). - GitHub (Pro und Group): Verbinde in der Seitenleiste unter GitHub ein GitHub-Konto und wähle in den Build-Einstellungen einer Website GitHub als Codequelle. Private Repositories funktionieren: Espobase liest sie mit der von dir installierten App, nur für den Build. Ein Push auf den Produktionszweig baut und veröffentlicht deine Website, und jeder Pull Request aus demselben Repository bekommt eine Vorschau unter eigener Adresse (öffentlich, vor Suchmaschinen verborgen, entfernt, wenn der Pull Request geschlossen wird). Pull Requests aus Forks werden nie gebaut.
Wie deine Website ausgeliefert wird
- HTTPS ist automatisch. Jede Website hat eine eigene Adresse unter
espohost.com. /aboutöffnetabout.htmlund/docsöffnetdocs/index.html. Eine Ordneradresse ohne abschließenden Schrägstrich wird auf die mit Schrägstrich weitergeleitet.- Lege eine
404.htmlan, um deine eigene Seite für „nicht gefunden“ zu zeigen. Ohne sie sehen Besucher ein schlichtes 404. - Bei eingeschalteter Single-Page-App öffnen Pfade, die keine Dateien sind,
index.html, damit der Router deiner App sie behandeln kann. Eine fehlende Datei mit Endung, etwa/logo.png, liefert weiterhin 404. - Browser prüfen deine Dateien bei jedem Besuch erneut (mit einem
ETag), deshalb erscheint ein neues Deployment sofort. Dateien unter_next/static/tragen von Next.js einen Inhalts-Hash und werden ein Jahr zwischengespeichert. - Der Inhaltstyp ergibt sich aus der Dateiendung.
Deine eigene Domain
- Öffne die Karte der Website unter Hosting, wähle Domains verwalten und füge deine Domain hinzu, zum Beispiel
www.deinemarke.com. - Lege bei deinem DNS-Anbieter die beiden angezeigten Einträge an: einen TXT-Eintrag, der beweist, dass dir die Domain gehört (lass ihn bestehen), und einen CNAME von deiner Domain auf
sites.espohost.com. Eine Hauptdomain wiedeinemarke.comkann keinen CNAME haben, lege stattdessen die angezeigten A-Einträge an. - Klicke auf DNS prüfen. Wird der TXT-Eintrag gefunden, ist die Domain bestätigt, und das HTTPS-Zertifikat wird beim ersten Besuch automatisch in wenigen Sekunden ausgestellt.
- Die Website antwortet nun unter deiner Domain und unter ihrer
espohost.com-Adresse. Wird eine Domain entfernt, hört sie sofort auf. - Hat dein Tarif später weniger Domains, werden die überzähligen nicht mehr ausgeliefert, aber aufbewahrt.
Bandbreite
- Bandbreite ist die Datenmenge, die deine Websites an Besucher senden. Sie wird pro Abrechnungszeitraum über alle Websites deiner Organisation gezählt und auf der Seite Hosting angezeigt.
- Bei 75%, 90% und 100% der Bandbreite deines Tarifs bekommst du eine E-Mail. Zusätzlicher Datenverkehr wird nie berechnet.
- Zwischen 100% und 125% laufen deine Websites weiter. Über 125% sehen Besucher eine Seite „Bandbreitenlimit erreicht“, bis der nächste Abrechnungszeitraum beginnt oder du auf einen Tarif mit mehr Bandbreite wechselst. Nichts wird gelöscht.
- Der Datenverkehr wird jede Minute zusammengezählt, die Pause beginnt also wenige Minuten nach dem Überschreiten.
Versionen und Zurücksetzen
- Jedes Deployment steht auf der Karte der Website. Wähle bei einem älteren Live schalten, um zurückzugehen, oder bei einem neueren, um vorzugehen. Das geht sofort, denn nur der Zeiger wird verschoben.
- Espobase behält die neuesten 10 Deployments jeder Website und entfernt ältere automatisch. Das aktive Deployment wird nie entfernt.
- Entwickler können veröffentlichen und zurücksetzen. Administratoren legen Websites an, benennen sie um und löschen sie, ändern die Single-Page-App-Einstellung und löschen Deployments. Jede Änderung steht im Audit-Log.
Sicherheit
- Alles, was du veröffentlichst, ist öffentlich. Lege keine Geheimnisse in deine Dateien. Der veröffentlichbare Schlüssel ist dafür gemacht, öffentlich zu sein, und deine Row-Level-Security-Regeln schützen die Daten; lege nie einen geheimen Schlüssel in eine Website.
- Websites liegen auf
espohost.com, einer anderen Domain als Espobase, deshalb kann eine Website keine Espobase-Cookies oder Anmeldungen lesen. - Jede hochgeladene Datei wird gegen den angegebenen Fingerabdruck und die angegebene Größe geprüft, und es wird nichts ausgeliefert, was nicht in der Dateiliste des Deployments steht.
Tarife und Limits
- Free: Hosting ist nicht enthalten.
- Pro: 10 Websites pro Projekt, 10 GB gehostete Dateien, 1 eigene Domain pro Website, 250 GB Bandbreite im Monat, 500 Build-Minuten im Monat.
- Group: 50 Websites pro Projekt, 100 GB gehostete Dateien, 5 eigene Domains pro Website, 1 TB Bandbreite im Monat, 2.000 Build-Minuten im Monat.
- Ein Deployment kann bis zu 10.000 Dateien, 50 MB pro Datei und 500 MB insgesamt haben. Ein Upload, der nicht innerhalb einer Stunde abgeschlossen ist, verfällt.
- Gehostete Dateien werden über deine gesamte Organisation gezählt. Wechselst du zu einem Tarif mit weniger Websites, werden die überzähligen nicht mehr ausgeliefert, aber nichts wird gelöscht.
Noch nicht verfügbar
- Serverseitig gerenderte Apps (etwa Next.js mit Server). Statische Exporte funktionieren schon heute.