Astro auf Lizard bereitstellen
Astro hat auf Lizard zwei Bereitstellungswege: ein statisches Verzeichnis dist/ auf Port 80 bereitstellen oder den eigenständigen Node-Adapter auf Port 3000 für bedarfsgesteuerte Routen ausführen. Wähle den Modus vor dem Deployment, weil der Adapter sowohl die Ausgabe als auch die Laufzeitumgebung verändert.
Modus wählen
| Modus | Konfiguration | Laufzeitumgebung | Port |
|---|---|---|---|
| Statische Website | Statische Ausgabe ohne Server-Adapter | nginx stellt dist/ bereit | 80 |
| Node-Server | @astrojs/node im Standalone-Modus | node ./dist/server/entry.mjs | 3000 |
Beide Wege verwenden ein build-Skript, das astro build ausführt. Committe die Lockfile und behalte den standardmäßigen Ausgabepfad dist bei. Die Erkennung liest die Astro-Konfiguration und installierte Abhängigkeiten. Eine ungenutzte Node-Adapter-Abhängigkeit allein wählt den Serverpfad nicht aus. Verwende literales output und Adapter-Einstellungen; dynamische Werte, benutzerdefinierte Ausgabepfade und Middleware-Modus benötigen ein Dockerfile.
Einen Node-Server konfigurieren
Für bedarfsgesteuerte Seiten füge eine Node-Adapter-Version hinzu, die mit deiner Astro-Version kompatibel ist:
npx astro add nodePrüfe astro.config.mjs:
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
export default defineConfig({
output: 'server',
adapter: node({ mode: 'standalone' }),
});Der Standalone-Modus startet seinen eigenen HTTP-Server. Der Middleware-Modus erfordert einen separaten Server und passt nicht zu diesem Startbefehl. Lies den Astro Node Adapter Anleitung, wenn du Middleware oder eine Mischung aus vorgerenderten und bedarfsgesteuerten Routen brauchst.
Lokal testen
npm ci
npm run buildFür den Node-Modus:
HOST=0.0.0.0 PORT=3000 node ./dist/server/entry.mjsRufe eine Route auf, die tatsächlich auf dem Server ausgeführt wird, und ein gebautes Asset. Für eine statische Website verwende lokal npm run preview und prüfe die generierten Routendateien in dist/.
Bereitstellen
Erstelle nach dem CLI-Setup das Projekt:
lizard init --name astro-app
lizard add --service webFür den Node-Adapter:
lizard up --service web --port 3000Für eine statische Website:
lizard up --service web --port 80Verwende nur den Befehl für den gewählten Modus. Lass Überschreibungen des Service-Befehls für die lizardpack-Erkennung ungesetzt. Lies lizard logs --build --service web --json und prüfe dann die Laufzeitprotokolle und die Live-URL.
Variablen, Sessions und Routen
Werte, die zum Erzeugen von statischem HTML verwendet werden, erfordern einen neuen Build, wenn sie sich ändern. Servercode kann Laufzeitvariablen über die von deiner Astro-Version unterstützten Mechanismen lesen; konfiguriere sie unter Variablen und Secrets. Im Browser sichtbare Werte dürfen keine Zugangsdaten enthalten.
Wenn deine App Sessions verwendet, wähle einen Speicher, der zu Neustarts und mehreren Replikaten passt. Verlasse dich nicht auf das Container-Dateisystem als gemeinsamen dauerhaften Speicher. Siehe Storage und Wiederherstellung.
Teste bei einer Website mit statischen Inhalten eine fehlende URL und verwende statische Routen und 404-Seiten, um den korrekten Status zurückzugeben. Wenn ein SSR-Deployment beendet wird oder keine Routen bereitstellt, prüfe, dass dist/server/entry.mjs existiert, der Adapter den Standalone-Modus verwendet und der Service-Port 3000 ist.
Siehe getestete Versionen und Cloud-Ergebnisse für die Deployment-Prüfungen vom 9. September 2026 und deren Grenzen.