Firebase Hosting stellt Ihre statische docmd-Website über ein globales CDN mit integriertem SSL bereit. Es lässt sich über die Firebase-CLI oder GitHub Actions sauber in CI/CD-Pipelines integrieren.
Voraussetzungen
Installieren Sie die Firebase-CLI:
npm install -g firebase-tools
firebase login
Einrichtung
Bauen Sie Ihre Website:
npx @docmd/core buildInitialisieren Sie Firebase Hosting in Ihrem Projekt-Root:
firebase init hostingNach Aufforderung:
- Wählen Sie Ihr Firebase-Projekt aus (oder erstellen Sie ein neues).
- Setzen Sie das öffentliche Verzeichnis auf
site. - Als Single-Page-App konfigurieren: Nein (docmd generiert pro Seite eine eigene
index.html. Ein universeller Rewrite ist nicht erforderlich). - Überschreiben Sie
site/index.htmlnicht.
Bereitstellen:
firebase deploy --only hosting
CI/CD mit GitHub Actions
Um bei jedem Push automatisch bereitzustellen, erstellen Sie .github/workflows/firebase.yml:
name: Deploy to Firebase Hosting
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm install
- run: npx @docmd/core build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
channelId: live
Richten Sie FIREBASE_SERVICE_ACCOUNT in den Settings → Secrets Ihres Repositories unter Verwendung des JSON-Schlüssels eines Firebase-Dienstkontos ein.
npx @docmd/core?In CI/CD-Umgebungen, in denen docmd nicht global installiert ist, lädt npx @docmd/core das Paket direkt herunter und führt es aus. Wenn Ihr Projekt @docmd/core als devDependency auflistet, funktioniert die Ausführung von npx @docmd/core build nach npm install einwandfrei.
Eigene Domain
Fügen Sie eine benutzerdefinierte Domain in der Firebase-Konsole unter Hosting → Add custom domain hinzu. Firebase stellt SSL automatisch bereit.
Setzen Sie das Feld url in der Datei docmd.config.json so, dass es Ihrer Domain entspricht. Dies stellt sicher, dass kanonische Tags und Sitemaps korrekte absolute URLs generieren.