À bord de · Votre premier chèque en 15 minutes

Commencez parWAFPass

Installez la pile de conformité WAF++ open-source et lancez votre première évaluation en cinq étapes. Pas d'identification cloud, pas de boîte noire — juste une analyse statique sur votre Infrastructure-as-Code.

v1.1.0
WAFPass CLI
8
Piliers
83+
Contrôles
Coq
Composez prêt
Apache 2.0
Licence de code
JEUNESSE

De zéro à votre première vérification en cinq étapes.

Suivez le chemin numéroté ci-dessous. Chaque étape se connecte à la section correspondante afin de ne jamais perdre l'orientation.

Démarrage rapide : votre premier WAF++ contrôle

Ce tutoriel vous donne un résultat garanti. Vous allez installer le WAFPass CLI, télécharger le WAF++ contrôle, crée un fichier Terraform minimal, et voir WAFPass drapeau une vraie découverte.

1

Choisissez votre chemin

Pour ce tutoriel, vous n'avez besoin que de l'ICL. Si vous voulez déjà le tableau de bord complet + serveur, sautez àComposez Dockeraprès le premier scan.

2

Installez le CLI

WAFPass est publié à PyPIwafpass-core. Python 3.11+ est recommandé.

bash
$ pip installer wafpass-core
$ wafpass --version
3

Obtenez les contrôles

Télécharger le catalogue de contrôle WAF++ et l'extraire dans uncontrols/dossier à côté de l'endroit où vous lancez des scans.

bash
$ dézip wafpp-controls.zip -d controls/
$ ls commandes / , tête -5
4

Créer un fichier Terraform minimal et le scanner

Gardez cet exemple délibérément imparfaitmain.tf. WAFPass devrait signaler au moins une recherche de sécurité.

provider "aws" {
  region = "eu-central-1"
}

resource "aws_s3_bucket" "public" {
  bucket = "wafpp-first-check-demo"
}

resource "aws_s3_bucket_public_access_block" "public" {
  bucket                  = aws_s3_bucket.public.id
  block_public_acls       = false
  block_public_policy     = false
  ignore_public_acls      = false
  restrict_public_buckets = false
}
bash
$ wafpass check . --output json-jq '.summary'
5

Voir les résultats

Dans le terminal, vous verrez un résumé comme celui-ci — un FAIL pour le seau public S3, groupé par pilier et contrôle.

{
  "total_controls": 83,
  "passed": 81,
  "failed": 2,
  "pillars": {
    "security": { "passed": 18, "failed": 2 }
  }
}

Pour explorer visuellement les résultats, lancez laPile Docker Composeet pousse le JSON àhttp://localhost:8000/runs.

LE POSTE

Trois composantes. Un travail de conformité.

Installez simplement le CLI pour les pipelines CI/CD, ou ajoutez le serveur et le tableau de bord pour l'historique persistant et l'exploration visuelle.

Wafpass CLI

Moteur d'évaluation de base. Parses Terraform et AWS CDK, fonctionnent dans n'importe quel pipeline CI/CD. Pas d'identifiants cloud nécessaires.

PyPI: wafpass-core
wafpass-serveur

API REST FastAPI avec PostgreSQL. Les magasins fonctionnent, les renonciations, les acceptations de risques, les constatations de secrets et les événements de vérification complets.

PyPI: serveur wafpass
wafpass-dashboard

Réagissez au tableau de bord web. 22+ pages d'exploration de la conformité, d'exportation de preuves prêtes à l'audit et de gestion du rôle du CCRA.

Réagir + Vit
OPTION A — RECOMMANDÉ

Composez Docker: Complet complet

Le WAF2p/pass monorepo expédie undocker-compose.yml. Clone une fois, configurer votre.env, et faire monter toute la pile en une seule commande.

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ cp .env.exemple .env
$ # Éditer .env — définir POSTGRES PASSWORD, WAFPASS JWT SECRET, etc.
$ Docker compose -d
Services URL Désignation des marchandises
wafpass-dashboard http://localhost:3000 Réagir au tableau de bord
wafpass-serveur http://localhost:8000 API REST FastAPI
Porte-clés (SSO) http://localhost:8080 Fournisseur d'identité (admin / admin)
postgres localhost:5432 Base de données PostgreSQLTM

Poussez votre premier résultat :

bash
$ wafpass check ./infra/ --output json
$ wafpass check ./infra/ --output json-
-H "Type de contenu: application/json" -d @-
Voir le fichier complet docker-compose.yml
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 — FLEXIBLE

Installer les composants individuellement

Installez seulement ce dont vous avez besoin. Commencez par l'IDC pour l'intégration immédiate CI/CD, puis ajoutez le serveur et le tableau de bord lorsque vous êtes prêt pour l'exploration persistante de l'historique et de la conformité visuelle.

1
Installer wafpass CLI

Le moteur d'évaluation de base — analyse IaC, évaluation des contrôles, production de rapports

PyPI (recommandé)

bash
$ pip installer wafpass-core
$ uv ajouter wafpass-core # recommandé pour les projets Python

Source

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ uv pip install -e . # recommandé
$ pip install -e "[pdf]" # avec support de rapport PDF
$ pip install -e "[dev]" # avec dépendances de dev

macOS (Série Apple M)

bash
$ brasser installer git python uv
$ git clone https://github.com/WAF2p/pass.git && cd pass
$ uv pip install -e .
$ wafpass --version # vérifier l'installation
2
Installer le serveur wafpass

La couche de persistance FastAPI — les magasins fonctionnent, les renonciations, les conclusions de secrets et les événements de vérification

PyPI (recommandé)

bash
$ pip installer wafpass-server
$ uv ajouter wafpass-server # recommandé pour les projets Python

Configuration du démarrage de &

bash
$ cp .env.exemple .env # set DATABASE URL et JWT secret
$ Alembic mise à jour tête # appliquer les migrations de base de données
$ uvicorn wafpass server.main:app --reload --port 8000

Les documents API disponibles àhttp://localhost:8000/api/docs

3
Installer wafpass-dashboard

Réagir tableau de bord web — 22 + vues de conformité, exportation de preuves, RBAC

bash
$ git clone https://github.com/WAF2p/wafpass-dashboard.git
$ cd wafpass-dashboard
$ npm installation
$ cp .env.exemple .env.local # set VITE API URL
$ npm run dev # dev server à http://localhost:5173
$ npm run build # construction de production
HÔOK PRÉCOMMANDE

Bloquer les commits non conformes.

WAFPass expédie un crochet pré-engagement qui effectue des vérifications de conformité avant chaquegit commit. Les commits non conformes sont bloqués automatiquement — pas d'appel cloud, pas d'attente CI supplémentaire.

Fonctionne sur macOS, Linux et Windows (Git Bash / PowerShell).

Configuration unique

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

Lève-toi et cours.

Téléchargez les commandes, lancez votre premier scan et ouvrez le tableau de bord pour explorer votre posture de conformité.

1. Contrôles de téléchargement

Les commandes WAF++ sont publiées séparément et téléchargées sur demande.

  1. Visitewaf2p.dev/wafpass/
  2. Cliquez surTélécharger les contrôles
  3. Extraire dans votre répertoire de contrôles
bash
$ git clone https://github.com/WAF2p/framework.git
$ cp framework/modules/controls/controls/*.yml controls/
2. Exécutez votre premier balayage

Point WAFPass à votre code Terraform ou CDK et obtenir un rapport de conformité complet.

bash
$ vérification de l'eau libre ./infra/
$ wafpass check ./infra/ --output pdf \
--pdf-out report.pdf
3. Ouvrez le tableau de bord

Explorez votre posture de conformité, gérez les dispenses et exportez des trousses de preuves.

  1. Ouvrirlocalhost:3000oulocalhost:5173(dev)
  2. Connectez-vous avec les identifiants admin de votre.env
  3. Explorer les résultats, la dérive et la matrice de conformité
ÉCHANTILLONNAGE

Problèmes courants & corrige.

Réponses rapides aux problèmes de configuration les plus fréquents.

Contrôles non trouvés

Siwafpass checkrapports "régime de contrôle non trouvé", le CLI affichera automatiquement les instructions de téléchargement. Suivez laaprès l'installationpas plus haut.

Port déjà utilisé

Utilisez un port différent pour le serveur ou le tableau de bord :

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

Erreurs de connexion à la base de données

Verify PostgreSQLTM fonctionne et votreDATABASE_URLest correct:

$ psql $DATABASE URL -c "SELECT 1"

La construction de Docker échoue

Assurez-vous que les trois dépôts sont clonés côte à côte dans le même répertoire parent :

$ -1
réussir/
serveur wafpass/
wafpass-dashboard/
POURSUITE DE LA CROISSANCE

Tu as fait ton premier chèque. Et ensuite ?

Choisissez l'étape suivante qui correspond à votre rôle : approfondir les connaissances du cadre, transférer WAFPass dans CI/CD, ou explorer le tableau de bord visuel complet.