Obtenez votre premier résultat de scan WAFPass aujourd'hui.
Installez le CLI WAFPass open source, téléchargez les contrôles WAF++ et scannez un fichier Terraform d'exemple. Pas d'identifiants cloud, pas de boîte noire — juste une analyse statique sur votre Infrastructure-as-Code.
Vous préférez une ligne de commande ? L’installateur configure le CLI et les contrôles pour vous.
curl -fsSL https://waf2p.dev/install.sh | sh
irm https://waf2p.dev/install.ps1 | iex
Un parcours clair pour chaque cas d'usage.
Commencez par le quickstart CLI de 2 minutes. Changez d'onglet quand vous serez prêt pour le dashboard, la CI ou l'installation manuelle.
Obtenez votre premier résultat en 2 minutes
Suivez les quatre étapes ci-dessous. Chaque commande est conçue pour vous donner un résultat lisible et garanti dès la première tentative.
Installez le CLI
WAFPass est publié sur PyPI sous le nom wafpass-core. Python 3.11+ est recommandé.
Téléchargez les contrôles
Le catalogue de contrôles WAF++ contient les 83+ règles que WAFPass utilise pour évaluer votre code.
Recommandé : clonez le dépôt de contrôles. Alternative : téléchargez le zip des contrôles depuis la page WAFPass et extrayez-le dans controls/.
Enregistrez un fichier Terraform d'exemple
Créez un main.tf minimal. Cet exemple laisse intentionnellement un bucket S3 public pour que WAFPass ait quelque chose à signaler.
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
}
Lancez votre première vérification
Pointez WAFPass sur le répertoire courant et affichez le résumé JSON.
Vous devriez voir un résultat comme celui-ci :
{
"total_controls": 83,
"passed": 81,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Exécutez le dashboard complet en local
Le monorepo WAF2p/pass fournit un docker-compose.yml unifié. Il démarre le CLI, le serveur, le dashboard, PostgreSQL et Keycloak en une seule commande.
| Service | URL | Description |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | Dashboard React |
| wafpass-server | http://localhost:8000 | API REST FastAPI |
| Keycloak (SSO) | http://localhost:8080 | Fournisseur d'identité (admin / admin) |
| postgres | localhost:5432 | Base de données PostgreSQL |
Une fois les conteneurs sains, peuplez votre première vue du dashboard avec la commande de démo ou en poussant un résultat de scan :
Voir le docker-compose.yml complet
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:
Ajouter à la CI / pre-commit
Bloquez les infrastructures non conformes avant qu'elles n'atteignent votre branche principale. WAFPass s'exécute entièrement sur les fichiers du dépôt, donc les vérifications CI sont rapides et ne nécessitent aucun secret cloud.
Installez le hook pre-commit
Exécutez le script d'installation du dépôt WAFPass une fois par clone. Ensuite, chaque git commit est vérifié automatiquement.
Ajoutez WAFPass à GitHub Actions
Utilisez l'action GitHub officielle WAFPass pour échouer les pulls qui introduisent des mauvaises configurations. Fonctionne avec les dépôts publics et privés.
Configuration avancée / manuelle
Installez uniquement les composants dont vous avez besoin. Commencez par le CLI pour la CI/CD, puis ajoutez le serveur et le dashboard quand vous avez besoin de persistance et d'exploration visuelle.
Moteur d'évaluation principal — analyse l'IaC, évalue les contrôles, génère les rapports
Depuis PyPI (recommandé)
Depuis les sources
macOS (Apple M-series)
Couche de persistance FastAPI — stocke les exécutions, dérogations, secrets findings et événements d'audit
Depuis PyPI (recommandé)
Configurer et démarrer
Documentation de l'API disponible sur http://localhost:8000/api/docs
Dashboard web React — 22+ vues de conformité, export d'evidence, RBAC
Problèmes courants et corrections.
Réponses rapides si quelque chose ne fonctionne pas du premier coup.
Contrôles non trouvés
Si wafpass check signale que le répertoire de contrôles est introuvable, le CLI affichera automatiquement les instructions de téléchargement. Assurez-vous que le dossier controls/ se trouve à côté de l'endroit où vous lancez les scans.
Port déjà utilisé
Utilisez un port différent pour le serveur ou le dashboard :
Erreurs de connexion à la base de données
Vérifiez que PostgreSQL est en cours d'exécution et que votre DATABASE_URL est correct :
Le build Docker échoue
Assurez-vous que les trois dépôts sont clonés côte à côte dans le même répertoire parent lors d'un build depuis les sources :
Vous avez lancé votre première vérification. Et maintenant ?
Choisissez la prochaine étape qui correspond à votre rôle : approfondissez la connaissance du framework, intégrez WAFPass dans la CI/CD, ou explorez le dashboard visuel complet.
Explorer les 8 piliers
Comprenez le framework WAF++ et les contrôles derrière chaque pilier.
En savoir plus → 02Ajouter à GitHub Actions
Bloquez les fusions non conformes avant qu'elles n'atteignent votre branche principale.
Configurer l'action → 03Lire la documentation
Référence CLI, API serveur, configuration et usage avancé.
Ouvrir la doc →