Pierwszy skan w 2 minuty.
Zainstaluj open source'owe CLI WOMBATpass, pobierz kontrole Wombat i przeskanuj przykładowy plik Terraform. Bez poświadczeń chmurowych, bez czarnej skrzynki — tylko analiza statyczna Twojego Infrastructure as Code.
Wolisz jedną linijkę? Instalator skonfiguruje CLI i kontrole za Ciebie.
$curl -fsSL https://wombat-cli.dev/install.sh | sh
$irm https://wombat-cli.dev/install.ps1 | iex
Jasna ścieżka dla każdego zastosowania.
Zacznij od 2-minutowego quickstartu CLI. Przełącz kartę, gdy będziesz gotowy na dashboard, CI lub ręczną konfigurację.
Pierwszy wynik w 2 minuty.
Wykonaj cztery poniższe kroki. Każde polecenie zaprojektowano tak, by już za pierwszym razem dawało pewny i czytelny wynik.
Zainstaluj CLI
WOMBATpass jest opublikowany w PyPI jako wafpass-core. Zalecany jest Python 3.11+.
$pip install wafpass-core
$wombat --version
Pobierz kontrole
Katalog kontroli Wombat zawiera ponad 100 reguł, według których WOMBATpass ocenia Twój kod.
$git clone https://github.com/WAF2p/framework.git controls-src
$cp -r controls-src/modules/controls/controls ./controls
Zalecane: sklonuj repozytorium kontroli. Alternatywnie: pobierz archiwum zip z kontrolami ze strony WOMBATpass i rozpakuj je do controls/.
Zapisz przykładowy plik Terraform
Utwórz minimalny plik main.tf. Ten przykład celowo zostawia publiczny bucket S3, żeby WOMBATpass miał co zgłosić.
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
}
Uruchom pierwsze sprawdzenie
Wskaż WOMBATpass bieżący katalog i wypisz podsumowanie w JSON.
$wombat check . --output json | jq '.summary'
Powinieneś zobaczyć wynik podobny do tego:
{
"total_controls": 100,
"passed": 98,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Ten sam wynik w formie wizualnej, jeśli później dodasz dashboard:
Uruchom pełny dashboard lokalnie.
Monorepo WAF2p/pass zawiera ujednolicony plik docker-compose.yml. Uruchamia CLI, serwer, dashboard, PostgreSQL i Keycloak jednym poleceniem.
$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
| Usługa | URL | Opis |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | Dashboard w React |
| wafpass-server | http://localhost:8000 | FastAPI REST API |
| Keycloak (SSO) | http://localhost:8080 | Dostawca tożsamości (admin / admin) |
| postgres | localhost:5432 | Baza danych PostgreSQL |
Gdy kontenery będą zdrowe, wypełnij pierwszy widok dashboardu poleceniem demo lub wysyłając wynik skanu:
$wombat demo # creates sample data and opens the dashboard
$open http://localhost:3000
Pokaż pełny 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:
Dodaj do CI / pre-commit.
Zatrzymuj niezgodną infrastrukturę, zanim trafi do głównej gałęzi. WOMBATpass działa wyłącznie na plikach w repozytorium, więc sprawdzenia w CI są szybkie i nie wymagają sekretów chmurowych.
Zainstaluj hook pre-commit
Uruchom skrypt instalacyjny z repozytorium WOMBATpass raz na każdy klon. Od tej pory każdy git commit jest sprawdzany automatycznie.
$bash hooks/install.sh # macOS / Linux / Git Bash
$.\hooks\install.ps1 # Windows PowerShell
Dodaj WOMBATpass do GitHub Actions
Użyj oficjalnej GitHub Action WOMBATpass, aby odrzucać pull requesty wprowadzające błędne konfiguracje. Działa z repozytoriami publicznymi i prywatnymi.
Skonfiguruj WOMBATpass ActionKonfiguracja zaawansowana / ręczna.
Instaluj tylko potrzebne komponenty. Zacznij od CLI dla CI/CD, a serwer i dashboard dodaj, gdy potrzebujesz trwałości danych i wizualnej analizy.
Zainstaluj CLI wafpass
Główny silnik oceny: parsowanie IaC, ocena kontroli, generowanie raportów.
Z PyPI (zalecane)
$pip install wafpass-core
$uv add wafpass-core # recommended for Python projects
Ze źródeł
$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
Zainstaluj wafpass-server
Warstwa trwałości oparta na FastAPI: przechowuje przebiegi, wyjątki, wykryte sekrety i zdarzenia audytowe.
Z PyPI (zalecane)
$pip install wafpass-server
$uv add wafpass-server # recommended for Python projects
Konfiguracja i uruchomienie
$cp .env.example .env # set DATABASE_URL and JWT secret
$alembic upgrade head # apply database migrations
$uvicorn wafpass_server.main:app --reload --port 8000
Dokumentacja API dostępna pod adresem http://localhost:8000/api/docs
Zainstaluj wafpass-dashboard
Webowy dashboard w React: ponad 22 widoki zgodności, eksport dowodów, 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
Typowe problemy i rozwiązania.
Szybkie odpowiedzi, jeśli coś nie zadziała za pierwszym razem.
Nie znaleziono kontroli
Jeśli wombat check zgłasza „controls directory not found”, CLI automatycznie wyświetli instrukcje pobierania. Upewnij się, że folder controls/ znajduje się obok miejsca, z którego uruchamiasz skany.
Port jest już zajęty
Użyj innego portu dla serwera lub dashboardu:
$uvicorn wafpass_server.main:app --port 8001
$npm run dev -- --port 5174
Błędy połączenia z bazą danych
Sprawdź, czy PostgreSQL działa i czy Twój DATABASE_URL jest poprawny:
$psql $DATABASE_URL -c "SELECT 1"
Build Dockera kończy się błędem
Przy budowaniu ze źródeł wszystkie trzy repozytoria muszą być sklonowane obok siebie w tym samym katalogu nadrzędnym:
$ls -1
pass/
wafpass-server/
wafpass-dashboard/
Pierwsze sprawdzenie za Tobą. Co dalej?
Wybierz kolejny krok pasujący do Twojej roli: pogłęb wiedzę o frameworku, podłącz WOMBATpass do CI/CD lub poznaj pełny wizualny dashboard.
Poznaj 8 filarów
Zrozum framework Wombat i kontrole stojące za każdym filarem.
Czytaj dalej →Dodaj do GitHub Actions
Zatrzymuj niezgodne merge, zanim trafią do głównej gałęzi.
Skonfiguruj action →Przeczytaj dokumentację
Dokumentacja CLI, API serwera, konfiguracja i zaawansowane użycie.
Otwórz dokumentację →