Deployment

Deployment

Veröffentliche deine Hugo-Website auf verschiedenen Plattformen.

GitHub Pages

Schritt 1: Repository erstellen

Erstelle ein GitHub-Repository für dein Projekt.

Schritt 2: GitHub Actions einrichten

Erstelle .github/workflows/hugo.yaml:

name: Deploy Hugo site to Pages

on:
  push:
    branches: ["main"]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: '1.21'
      - uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true
      - run: hugo --minify
      - uses: actions/upload-pages-artifact@v3
        with:
          path: ./public

  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/deploy-pages@v4

Schritt 3: GitHub Pages aktivieren

Gehe zu deinen Repository-Einstellungen und aktiviere GitHub Pages.

Netlify

Deployment mit Netlify

  1. Verbinde dein GitHub-Repository mit Netlify
  2. Netlify erkennt Hugo automatisch
  3. Build-Kommando: hugo --minify
  4. Publish-Verzeichnis: public

netlify.toml

Erstelle eine netlify.toml:

[build]
  command = "hugo --minify"
  publish = "public"

[build.environment]
  HUGO_VERSION = "0.147.5"

[[redirects]]
  from = "/*"
  to = "/404.html"
  status = 404

Vercel

Deployment mit Vercel

  1. Importiere dein Projekt von GitHub
  2. Vercel erkennt Hugo automatisch
  3. Deploy!

Cloudflare Pages

Deployment mit Cloudflare Pages

  1. Verbinde dein Repository
  2. Build-Kommando: hugo --minify
  3. Output-Verzeichnis: public
  4. Environment Variable: HUGO_VERSION = 0.147.5

Eigener Server

Build erstellen

hugo --minify

Dateien hochladen

Lade den Inhalt des public/-Verzeichnisses auf deinen Server hoch.

Mit rsync

hugo --minify
rsync -avz --delete public/ user@server:/var/www/html/

Docker

Dockerfile

FROM klakegg/hugo:ext-alpine AS build

WORKDIR /src
COPY . .
RUN hugo --minify

FROM nginx:alpine
COPY --from=build /src/public /usr/share/nginx/html

Build und Run

docker build -t meine-hugo-seite .
docker run -p 8080:80 meine-hugo-seite

Tipps

  • Teste den Build lokal mit hugo --minify bevor du deployest
  • Nutze --buildDrafts nicht in der Produktion
  • Aktiviere HTTPS auf deiner Deployment-Plattform
  • Nutze ein CDN für bessere Performance