INSTALLATIONSANLEITUNG

WAFPass installieren

Vollständige Installationsanleitung für WAFPass CLI, Server und Dashboard — von einem einzelnen pip install bis zum vollständigen Docker-Compose-Stack.

DER STACK

Drei Komponenten. Ein Compliance-Workflow.

Installieren Sie nur die CLI für CI/CD-Pipelines, oder fügen Sie Server und Dashboard für persistente Historie und visuelle Compliance-Exploration hinzu.

wafpass CLI

Kern-Evaluierungsengine. Verarbeitet Terraform und AWS CDK, läuft in jeder CI/CD-Pipeline. Kein Cloud-Zugriff erforderlich.

PyPI: wafpass-core

wafpass-server

FastAPI REST API mit PostgreSQL. Speichert Scan-Läufe, Waivers, Risikoacceptances, Secret-Funde und Audit-Events.

PyPI: wafpass-server

wafpass-dashboard

React-Webdashboard. 22+ Seiten visuelle Compliance-Exploration, Evidenz-Export und RBAC-Rollenverwaltung.

React + Vite
OPTION A — EMPFOHLEN

Docker Compose: Vollständiger Stack

Das waf++ Monorepo enthält eine einheitliche docker-compose.yml. Einmal klonen, .env konfigurieren und den gesamten Stack mit einem Befehl starten.

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ cp .env.example .env
$ # .env bearbeiten — POSTGRES_PASSWORD, WAFPASS_JWT_SECRET usw. setzen
$ docker compose up -d
Services nach dem Start
Service URL Beschreibung
wafpass-dashboard http://localhost:3000 React-Dashboard
wafpass-server http://localhost:8000 FastAPI REST API
Keycloak (SSO) http://localhost:8080 Identity Provider (admin / admin)
postgres localhost:5432 PostgreSQL-Datenbank

Erstes Scan-Ergebnis übertragen:

bash
$ wafpass check ./infra/ --output json
$ wafpass check ./infra/ --output json | curl -s -X POST http://localhost:8000/runs \
-H "Content-Type: application/json" -d @-
Vollständige docker-compose.yml anzeigen
services:

  # ── PostgreSQL ────────────────────────────────────────────
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER:     ${POSTGRES_USER:-wafpass}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-wafpass}
      POSTGRES_DB:       ${POSTGRES_DB:-wafpass}
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./keycloak/init.sql:/docker-entrypoint-initdb.d/01-keycloak-db.sql:ro
    ports:
      - "${POSTGRES_PORT:-5432}:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wafpass} -d ${POSTGRES_DB:-wafpass}"]
      interval: 5s
      timeout: 5s
      retries: 10

  # ── wafpass-server ────────────────────────────────────────
  wafpass-server:
    build:
      context: .
      dockerfile: wafpass-server/Dockerfile
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      DATABASE_URL:               postgresql+asyncpg://${POSTGRES_USER:-wafpass}:${POSTGRES_PASSWORD:-wafpass}@postgres:5432/${POSTGRES_DB:-wafpass}
      WAFPASS_ENV:                ${WAFPASS_ENV:-local}
      CORS_ORIGINS:               ${API_URL:-http://localhost:3000},http://wafpass-dashboard,http://cloud.waf2p
      WAFPASS_CONTROLS_DIR:       ${WAFPASS_CONTROLS_DIR:-/app/controls}
      WAFPASS_JWT_SECRET:         ${WAFPASS_JWT_SECRET:-change-me-in-production}
      WAFPASS_JWT_EXPIRE_MINUTES: ${WAFPASS_JWT_EXPIRE_MINUTES:-60}
      WAFPASS_JWT_REFRESH_DAYS:   ${WAFPASS_JWT_REFRESH_DAYS:-7}
      WAFPASS_ADMIN_USERNAME:     ${WAFPASS_ADMIN_USERNAME:-admin}
      WAFPASS_ADMIN_PASSWORD:     ${WAFPASS_ADMIN_PASSWORD:-admin}
      WAFPASS_ADMIN_ROLE:         ${WAFPASS_ADMIN_ROLE:-admin}
      WAFPASS_API_KEY:            ${WAFPASS_API_KEY:-key}
    ports:
      - "8000:8000"

  # ── Keycloak (SSO / IdP — dev mode) ──────────────────────
  keycloak:
    image: quay.io/keycloak/keycloak:26.1
    command: start-dev
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      KC_DB:                   postgres
      KC_DB_URL:               jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
      KC_DB_USERNAME:          ${KEYCLOAK_DB_USER:-keycloak}
      KC_DB_PASSWORD:          ${KEYCLOAK_DB_PASSWORD:-keycloak}
      KEYCLOAK_ADMIN:          ${KEYCLOAK_ADMIN_USER:-admin}
      KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
      KC_HTTP_ENABLED:         "true"
      KC_HOSTNAME_STRICT:      "false"
      KC_HEALTH_ENABLED:       "true"
    ports:
      - "${KEYCLOAK_PORT:-8080}:8080"
    healthcheck:
      test: ["CMD-SHELL", "curl -sf http://localhost:8080/health/ready || exit 1"]
      interval: 15s
      timeout: 5s
      retries: 20
      start_period: 60s

  # ── wafpass-dashboard ─────────────────────────────────────
  wafpass-dashboard:
    build:
      context: ./wafpass-dashboard
      dockerfile: Dockerfile
    restart: unless-stopped
    depends_on:
      - wafpass-server
    ports:
      - "3000:80"

volumes:
  postgres_data:
OPTION B — FLEXIBEL

Komponenten einzeln installieren

Installieren Sie nur das, was Sie benötigen. Beginnen Sie mit der CLI für sofortige CI/CD-Integration und fügen Sie Server und Dashboard hinzu, wenn Sie persistente Historie und visuelle Compliance-Exploration benötigen.

1

wafpass CLI installieren

Die Kern-Evaluierungsengine — IaC verarbeiten, Controls auswerten, Berichte erzeugen

Von PyPI (empfohlen)

bash
$ pip install wafpass-core
$ uv add wafpass-core # empfohlen für Python-Projekte

Aus Quellcode

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ uv pip install -e . # empfohlen
$ pip install -e ".[pdf]" # mit PDF-Berichtsunterstützung
$ pip install -e ".[dev]" # mit Dev-Abhängigkeiten

macOS (Apple M-Serie)

bash
$ brew install git python uv
$ git clone https://github.com/WAF2p/pass.git && cd pass
$ uv pip install -e .
$ wafpass --version # Installation prüfen
2

wafpass-server installieren

FastAPI-Persistenzschicht — speichert Läufe, Waivers, Secret-Funde und Audit-Events

Von PyPI (empfohlen)

bash
$ pip install wafpass-server
$ uv add wafpass-server # empfohlen für Python-Projekte

Konfigurieren & starten

bash
$ cp .env.example .env # DATABASE_URL und JWT-Secret setzen
$ alembic upgrade head # Datenbankmigrationen durchführen
$ uvicorn wafpass_server.main:app --reload --port 8000

API-Dokumentation unter http://localhost:8000/api/docs

3

wafpass-dashboard installieren

React-Webdashboard — 22+ Compliance-Ansichten, Evidenz-Export, RBAC

bash
$ git clone https://github.com/WAF2p/wafpass-dashboard.git
$ cd wafpass-dashboard
$ npm install
$ cp .env.example .env.local # VITE_API_URL setzen
$ npm run dev # Dev-Server unter http://localhost:5173
$ npm run build # Produktions-Build
PRE-COMMIT HOOK

Nicht-konforme Commits blockieren.

WAFPass enthält einen Pre-commit-Hook, der Compliance-Checks vor jedem git commit ausführt. Nicht-konforme Commits werden automatisch blockiert — kein Cloud-Aufruf, kein zusätzliches CI-Warten.

Funktioniert auf macOS, Linux und Windows (Git Bash / PowerShell).

Einmalige Einrichtung

bash
$ bash hooks/install.sh # macOS / Linux / Git Bash
$ .\hooks\install.ps1 # Windows PowerShell
NACH DER INSTALLATION

Jetzt loslegen.

Controls herunterladen, ersten Scan durchführen und das Dashboard öffnen, um Ihren Compliance-Status zu erkunden.

1. Controls herunterladen

WAF++-Controls werden separat veröffentlicht und bei Bedarf heruntergeladen.

  1. waf2p.dev/de/wafpass/ besuchen
  2. Controls herunterladen klicken
  3. In Ihr Controls-Verzeichnis extrahieren
bash
$ git clone https://github.com/WAF2p/framework.git
$ cp framework/modules/controls/controls/*.yml controls/

2. Erster Scan

WAFPass auf Ihren Terraform- oder CDK-Code zeigen und vollständigen Compliance-Bericht erhalten.

bash
$ wafpass check ./infra/
$ wafpass check ./infra/ --output pdf \
--pdf-out report.pdf

3. Dashboard öffnen

Compliance-Zustand erkunden, Waivers verwalten und Evidenzpakete exportieren.

  1. localhost:3000 (Docker) oder localhost:5173 (Dev) öffnen
  2. Mit Admin-Zugangsdaten aus .env einloggen
  3. Funde, Drift und Compliance-Matrix erkunden
FEHLERBEHEBUNG

Häufige Probleme & Lösungen.

Schnelle Antworten auf die häufigsten Einrichtungsprobleme.

Controls nicht gefunden

Wenn wafpass check "controls directory not found" meldet, zeigt die CLI automatisch Download-Anweisungen an. Folgen Sie den Post-Installations-Schritten oben.

Port bereits in Verwendung

Anderen Port für Server oder Dashboard verwenden:

$ uvicorn wafpass_server.main:app --port 8001
$ npm run dev -- --port 5174

Datenbankverbindungsfehler

Sicherstellen, dass PostgreSQL läuft und DATABASE_URL korrekt konfiguriert ist:

$ psql $DATABASE_URL -c "SELECT 1"

Docker-Build schlägt fehl

Sicherstellen, dass alle drei Repositories nebeneinander im selben Elternverzeichnis geklont sind:

$ ls -1
pass/
wafpass-server/
wafpass-dashboard/
NÄCHSTE SCHRITTE

Bereit, Ihre Infrastruktur zu validieren?

Laden Sie die WAF++-Controls herunter, führen Sie WAFPass gegen Ihren Terraform- oder CDK-Code aus und erhalten Sie in Minuten einen vollständigen Compliance-Bericht.

GDPR SOC 2 HIPAA BSI C5 ISO 27001 NIS2
KOMMT BALD · 12. MAI 2026
WAF++ 1.0
inkl. WAFPass 1.0

Die erste stabile Version des WAF++ Frameworks und der WAFPass CLI.

Veröffentlicht am Vorabend der Cloud Native Conference DE12. Mai 2026 · 20:00 CEST