Prima scansione, in 2 minuti.
Installa la CLI open source di WOMBATpass, scarica i controlli Wombat e scansiona un file Terraform di esempio. Nessuna credenziale cloud, nessuna scatola nera: solo analisi statica della tua Infrastructure as Code.
Preferisci una riga sola? Lo script di installazione configura CLI e controlli per te.
$curl -fsSL https://wombat-cli.dev/install.sh | sh
$irm https://wombat-cli.dev/install.ps1 | iex
Un percorso chiaro per ogni caso d'uso.
Inizia con il quickstart della CLI da 2 minuti. Cambia scheda quando sei pronto per dashboard, CI o configurazione manuale.
Ottieni il tuo primo risultato in 2 minuti.
Segui i quattro passaggi qui sotto. Ogni comando è pensato per darti un risultato garantito e leggibile al primo tentativo.
Installa la CLI
WOMBATpass è pubblicato su PyPI come wafpass-core. Si consiglia Python 3.11+.
$pip install wafpass-core
$wombat --version
Scarica i controlli
Il catalogo dei controlli Wombat contiene le oltre 100 regole che WOMBATpass usa per valutare il tuo codice.
$git clone https://github.com/WAF2p/framework.git controls-src
$cp -r controls-src/modules/controls/controls ./controls
Consigliato: clona il repository dei controlli. In alternativa: scarica lo zip dei controlli dalla pagina di WOMBATpass ed estrailo in controls/.
Salva un file Terraform di esempio
Crea un main.tfminimo. Questo esempio lascia volutamente un bucket S3 pubblico, così WOMBATpass ha qualcosa da segnalare.
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
}
Esegui il tuo primo controllo
Punta WOMBATpass sulla directory corrente e stampa il riepilogo JSON.
$wombat check . --output json | jq '.summary'
Dovresti vedere un output simile a questo:
{
"total_controls": 100,
"passed": 98,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Lo stesso risultato, visualizzato, se in seguito aggiungi la dashboard:
Esegui la dashboard completa in locale.
Il monorepo WAF2p/pass include un docker-compose.ymlunificato. Avvia CLI, server, dashboard, PostgreSQL e Keycloak con un solo comando.
$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
| Servizio | URL | Descrizione |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | Dashboard React |
| wafpass-server | http://localhost:8000 | FastAPI REST API |
| Keycloak (SSO) | http://localhost:8080 | Identity provider (admin / admin) |
| postgres | localhost:5432 | Database PostgreSQL |
Quando i container sono in salute, popola la tua prima vista della dashboard con il comando demo o caricando un risultato di scansione:
$wombat demo # creates sample data and opens the dashboard
$open http://localhost:3000
Mostra il docker-compose.yml completo
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:
Aggiungi a CI / pre-commit.
Blocca l'infrastruttura non conforme prima che arrivi al branch principale. WOMBATpass lavora solo sui file del repository, quindi i controlli in CI sono rapidi e non richiedono segreti cloud.
Installa l'hook pre-commit
Esegui lo script di installazione dal repository WOMBATpass una volta per clone. Da quel momento ogni git commit viene controllato automaticamente.
$bash hooks/install.sh # macOS / Linux / Git Bash
$.\hooks\install.ps1 # Windows PowerShell
Aggiungi WOMBATpass a GitHub Actions
Usa la GitHub Action ufficiale di WOMBATpass per far fallire le pull request che introducono configurazioni errate. Funziona con repository pubblici e privati.
Configura WOMBATpass ActionConfigurazione avanzata / manuale.
Installa solo i componenti che ti servono. Inizia con la CLI per CI/CD, poi aggiungi server e dashboard quando ti servono persistenza ed esplorazione visiva.
Installa la CLI wafpass
Motore di valutazione principale: analizza l'IaC, valuta i controlli, genera report.
Da PyPI (consigliato)
$pip install wafpass-core
$uv add wafpass-core # recommended for Python projects
Dal sorgente
$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
Installa wafpass-server
Livello di persistenza FastAPI: archivia esecuzioni, deroghe, segreti individuati ed eventi di audit.
Da PyPI (consigliato)
$pip install wafpass-server
$uv add wafpass-server # recommended for Python projects
Configura e avvia
$cp .env.example .env # set DATABASE_URL and JWT secret
$alembic upgrade head # apply database migrations
$uvicorn wafpass_server.main:app --reload --port 8000
Documentazione API disponibile su http://localhost:8000/api/docs
Installa wafpass-dashboard
Dashboard web React: oltre 22 viste di conformità, esportazione delle evidenze, 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
Problemi comuni e soluzioni.
Risposte rapide se qualcosa non funziona al primo tentativo.
Controlli non trovati
Se wombat check segnala "controls directory not found", la CLI mostra automaticamente le istruzioni per il download. Assicurati che la cartella controls/ si trovi accanto al punto da cui esegui le scansioni.
Porta già in uso
Usa un'altra porta per il server o la dashboard:
$uvicorn wafpass_server.main:app --port 8001
$npm run dev -- --port 5174
Errori di connessione al database
Verifica che PostgreSQL sia in esecuzione e che la tua DATABASE_URL sia corretta:
$psql $DATABASE_URL -c "SELECT 1"
La build Docker fallisce
Quando compili dal sorgente, i tre repository devono essere clonati uno accanto all'altro nella stessa directory padre:
$ls -1
pass/
wafpass-server/
wafpass-dashboard/
Hai eseguito il tuo primo controllo. E adesso?
Scegli il passo successivo in base al tuo ruolo: approfondisci il framework, integra WOMBATpass in CI/CD o esplora la dashboard visiva completa.
Esplora gli 8 pilastri
Comprendi il framework Wombat e i controlli dietro ogni pilastro.
Scopri di più →Aggiungi a GitHub Actions
Blocca i merge non conformi prima che arrivino al branch principale.
Configura l'action →Leggi la documentazione
Riferimento CLI, API del server, configurazione e uso avanzato.
Apri la documentazione →