Premier scan, en 2 minutes.
Installez la CLI open source de WOMBATpass, téléchargez les contrôles Wombat et analysez un fichier Terraform d'exemple. Aucun identifiant cloud, aucune boîte noire : uniquement de l'analyse statique de votre Infrastructure as Code.
Vous préférez une seule ligne ? L'installateur configure la CLI et les contrôles pour vous.
$curl -fsSL https://wombat-cli.dev/install.sh | sh
$irm https://wombat-cli.dev/install.ps1 | iex
Un parcours clair pour chaque usage.
Commencez par le quickstart CLI de 2 minutes. Changez d'onglet quand vous êtes prêt pour le tableau de bord, 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 garanti et lisible dès le premier essai.
Installer la CLI
WOMBATpass est publié sur PyPI sous le nom wafpass-core. Python 3.11+ est recommandé.
$pip install wafpass-core
$wombat --version
Télécharger les contrôles
Le catalogue des contrôles Wombat contient les plus de 100 règles qu'utilise WOMBATpass pour évaluer votre code.
$git clone https://github.com/WAF2p/framework.git controls-src
$cp -r controls-src/modules/controls/controls ./controls
Recommandé : clonez le dépôt des contrôles. Sinon : téléchargez l'archive zip des contrôles depuis la page WOMBATpass et extrayez-la dans controls/.
Enregistrer un fichier Terraform d'exemple
Créez un main.tfminimal. Cet exemple laisse volontairement un bucket S3 public pour que WOMBATpass 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
}
Lancer votre premier contrôle
Pointez WOMBATpass sur le répertoire courant et affichez le résumé JSON.
$wombat check . --output json | jq '.summary'
Vous devriez obtenir une sortie de ce type :
{
"total_controls": 100,
"passed": 98,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Le même résultat, visualisé, si vous ajoutez le tableau de bord plus tard :
Lancez le tableau de bord complet en local.
Le monorepo WAF2p/pass fournit un docker-compose.ymlunifié. Il démarre la CLI, le serveur, le tableau de bord, PostgreSQL et Keycloak en une seule commande.
$git clone https://github.com/WAF2p/pass.git
$cd pass
$cp .env.example .env
$# Edit .env, set POSTGRES_PASSWORD, WAFPASS_JWT_SECRET, etc.
$docker compose up -d
| Service | URL | Description |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | Tableau de bord React |
| wafpass-server | http://localhost:8000 | FastAPI REST API |
| Keycloak (SSO) | http://localhost:8080 | Fournisseur d'identité (admin / admin) |
| postgres | localhost:5432 | Base de données PostgreSQL |
Une fois les conteneurs opérationnels, alimentez votre première vue du tableau de bord avec la commande demo ou en envoyant un résultat de scan :
$wombat demo # creates sample data and opens the dashboard
$open http://localhost:3000
Afficher 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 / au pre-commit.
Bloquez l'infrastructure non conforme avant qu'elle n'atteigne votre branche principale. WOMBATpass travaille uniquement sur les fichiers du dépôt : les vérifications CI sont rapides et ne demandent aucun secret cloud.
Installer le hook pre-commit
Lancez le script d'installation du dépôt WOMBATpass une fois par clone. Ensuite, chaque git commit est vérifié automatiquement.
$bash hooks/install.sh # macOS / Linux / Git Bash
$.\hooks\install.ps1 # Windows PowerShell
Ajouter WOMBATpass à GitHub Actions
Utilisez la GitHub Action officielle de WOMBATpass pour faire échouer les pull requests qui introduisent des erreurs de configuration. Fonctionne avec les dépôts publics et privés.
Configurer WOMBATpass ActionInstallation avancée / manuelle.
N'installez que les composants dont vous avez besoin. Commencez par la CLI pour la CI/CD, puis ajoutez le serveur et le tableau de bord quand vous avez besoin de persistance et d'exploration visuelle.
Installer la CLI wafpass
Moteur d'évaluation principal : analyse l'IaC, évalue les contrôles, génère des rapports.
Depuis PyPI (recommandé)
$pip install wafpass-core
$uv add wafpass-core # recommended for Python projects
Depuis les sources
$git clone https://github.com/WAF2p/pass.git
$cd pass
$uv pip install -e . # recommended
$pip install -e ".[pdf]" # with PDF report support
macOS (Apple M-series)
$brew install git python uv
$git clone https://github.com/WAF2p/pass.git && cd pass
$uv pip install -e .
$wombat --version # verify installation
Installer wafpass-server
Couche de persistance FastAPI : stocke les exécutions, dérogations, secrets détectés et événements d'audit.
Depuis PyPI (recommandé)
$pip install wafpass-server
$uv add wafpass-server # recommended for Python projects
Configurer et démarrer
$cp .env.example .env # set DATABASE_URL and JWT secret
$alembic upgrade head # apply database migrations
$uvicorn wafpass_server.main:app --reload --port 8000
Documentation de l'API disponible sur http://localhost:8000/api/docs
Installer wafpass-dashboard
Tableau de bord web React : plus de 22 vues de conformité, export de preuves, RBAC.
$git clone https://github.com/WAF2p/wafpass-dashboard.git
$cd wafpass-dashboard
$npm install
$cp .env.example .env.local # set VITE_API_URL
$npm run dev # dev server at http://localhost:5173
Problèmes fréquents et solutions.
Des réponses rapides si quelque chose ne fonctionne pas du premier coup.
Contrôles introuvables
Si wombat check signale « controls directory not found », la CLI affiche automatiquement les instructions de téléchargement. Vérifiez que le dossier controls/ se trouve à côté de l'endroit où vous lancez les scans.
Port déjà utilisé
Utilisez un autre port 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
Vérifiez que PostgreSQL tourne et que votre DATABASE_URL est correcte :
$psql $DATABASE_URL -c "SELECT 1"
Échec du build Docker
Pour un build depuis les sources, les trois dépôts doivent être clonés côte à côte dans le même répertoire parent :
$ls -1
pass/
wafpass-server/
wafpass-dashboard/
Votre premier contrôle est fait. Et ensuite ?
Choisissez l'étape suivante selon votre rôle : approfondir le framework, intégrer WOMBATpass à la CI/CD ou explorer le tableau de bord visuel complet.
Explorer les 8 piliers
Comprenez le framework Wombat et les contrôles derrière chaque pilier.
En savoir plus →Ajouter à GitHub Actions
Bloquez les merges non conformes avant qu'ils n'atteignent votre branche principale.
Configurer l'action →Lire la documentation
Référence CLI, API du serveur, configuration et usage avancé.
Ouvrir la documentation →