Zurück zu den Updates
New releaseJul 27, 2026

preflight v0.20.0

Go-basiertes CLI-Tool, das Codebasen auf Startbereitschaft durchsucht und fehlende Konfiguration, Probleme der Sicherheitshygiene, Geheimnislecks und Integrationslücken vor der Produktionsbereitstellung erkennt.

Teilen

Preflight.sh

Agent skill on skills.sh

Preflight.sh ist ein Kommandozeilen-Tool, das Ihre Codebasis auf Startbereitschaft überprüft. Es identifiziert fehlende Konfiguration, Integrationsprobleme, Sicherheitsbedenken, SEO-Metadaten-Lücken und andere häufige Fehler, bevor Sie in die Produktion deployen.

Blamieren Sie sich nicht in der Produktion. Führen Sie einfach den Befehl aus.

Installation

Homebrew (macOS/Linux)

brew install preflightsh/preflight/preflight

npm

npm install -g @preflightsh/preflight

Go

go install github.com/preflightsh/preflight@latest

Docker

docker pull ghcr.io/preflightsh/preflight

Shell-Skript

curl -sSL https://preflight.sh/install.sh | sh

Manueller Download

Laden Sie die neueste Version von GitHub Releases herunter.

Schnellstart

# In Ihrem Projektverzeichnis initialisieren
cd your-project
preflight init

# Alle Prüfungen ausführen
preflight scan

# Ein bestimmtes Verzeichnis scannen
preflight scan /path/to/project

# Mit ausführlicher Ausgabe ausführen (zeigt, welche Dateien zu welcher Prüfung gehören)
preflight scan --verbose
preflight scan -v  # Kurzform

# Im CI-Modus mit JSON-Ausgabe ausführen
preflight scan --ci --format json

# Nur bestimmte Prüfungen ausführen oder einige überspringen, für schnelle Iterationen
# (einmalig; ändert im Gegensatz zu `preflight ignore` nicht die preflight.yml)
preflight scan --only seoMeta,ogTwitter
preflight scan --skip vulnerability,secrets

# Eine Prüfung stummschalten
preflight ignore sitemap

# Stummschaltung einer Prüfung aufheben
preflight unignore sitemap

# Alle Prüfungs-IDs auflisten
preflight checks

Agent-Skill

Dieses Repository enthält eine skills.sh-kompatible Agent-Skill unter skills/preflight/SKILL.md. Sie gibt Coding-Agenten einen wiederholbaren Preflight-Workflow: preflight.yml prüfen, CI-sichere Scans ausführen, Ergebnisse sichten, unsichere Ignores vermeiden, Validierung erneut ausführen und das verbleibende Launch-Risiko berichten.

Skill aus diesem Repository auflisten:

# Mit Bun
bunx --yes skills add preflightsh/preflight --list

# Oder mit npm
npx --yes skills add preflightsh/preflight --list

Nur die Preflight-Skill installieren:

# Mit Bun
bunx --yes skills add preflightsh/preflight --skill preflight

# Oder mit npm
npx --yes skills add preflightsh/preflight --skill preflight

Dashboard & KI-Vorschläge

Preflight ist vollständig ohne Konto über die Kommandozeile nutzbar. Das optionale Dashboard unter app.preflight.sh bietet einen gehosteten Verlauf Ihrer Scans und KI-generierte Lösungsvorschläge für jeden Befund. Ihr Code verlässt nie Ihren Rechner: Das Scannen läuft lokal, und nur eine geschwärzte Zusammenfassung der Ergebnisse (Prüfungs-IDs, Status und Meldungen, niemals geheime Werte oder Dateiinhalte) wird gesendet, wenn Sie veröffentlichen.

Erstellen Sie ein kostenloses Konto und verbinden Sie dann die CLI:

preflight auth login    # öffnet Ihren Browser, um diese CLI zu autorisieren
preflight auth status   # zeigt an, mit wem Sie angemeldet sind
preflight auth logout   # entfernt gespeicherte Anmeldedaten

Veröffentlichen Sie einen Scan mit --publish in Ihrem Dashboard. Es wird ein Link zur Ansicht des Laufs ausgegeben. Das Veröffentlichen ist Best-Effort: Wenn Sie offline oder nicht angemeldet sind, läuft der Scan trotzdem und wird normal beendet.

preflight scan --publish

Im Dashboard erhalten Sie die Pass/Warn/Fail-Aufschlüsselung jedes Laufs, die vollständige Liste der Befunde und einen projektbezogenen Verlauf, sodass Sie sehen können, was sich zwischen Deploys geändert hat.

Sie können diesen Verlauf auch im Terminal mit preflight history lesen:

preflight history                       # letzte Läufe über Ihre Projekte hinweg
preflight history --here                # nur die Läufe des aktuellen Projekts
preflight history <run-id>              # vollständige Prüfergebnisse eines Laufs
preflight history --here --format json  # maschinenlesbar, für Agents

Erfordert preflight auth login. --here ordnet Läufe dem aktuellen Repository über dessen Git-Remote zu – derselbe Schlüssel, der auch beim Veröffentlichen verwendet wird.

Öffnen Sie bei einem veröffentlichten Lauf eine fehlgeschlagene Prüfung oder Warnung, um eine schrittweise, auf Ihren erkannten Stack zugeschnittene Lösung mit kopierfertigen Befehlen und Code zu erzeugen.

  • Kostenlos umfasst 5 veröffentlichte Läufe pro Monat.
  • Bring your own key: Fügen Sie in den Dashboard-Einstellungen einen OpenAI- oder Anthropic-API-Schlüssel hinzu, und das Veröffentlichen bleibt kostenlos und unbegrenzt (Sie zahlen direkt an Ihren Anbieter).
  • Managed (5 $/Monat): Wir übernehmen die KI-Kosten, und die Läufe sind unbegrenzt – kein API-Schlüssel erforderlich.

Was geprüft wird

PrüfungBeschreibung
ENV-ParitätVergleicht .env und .env.example auf fehlende Variablen
Health-EndpunktPrüft, ob die Website erreichbar ist; erkennt automatisch /health, /healthz, /api/health oder fällt auf die Root-URL zurück
SchwachstellenscanPrüft auf Abhängigkeits-Schwachstellen (bundle audit, npm audit usw.)
SEO-MetadatenPrüft auf Titel, Beschreibung und Open-Graph-Tags
OG- & Twitter-CardsValidiert og:image, twitter:card und Social-Sharing-Metadaten
Kanonische URLPrüft, ob das kanonische Link-Tag vorhanden ist
ViewportPrüft auf ein korrektes Viewport-Meta-Tag für Mobilgeräte
Lang-AttributValidiert das html-lang-Attribut für Barrierefreiheit
Strukturierte DatenPrüft auf JSON-LD-Schema.org-Markup
Sicherheits-HeaderValidiert HSTS, CSP, X-Content-Type-Options sowohl auf Produktion als auch Staging
SSL-ZertifikatPrüft die SSL-Gültigkeit und warnt vor Ablauf
WWW-WeiterleitungPrüft, ob www/non-www auf die kanonische URL weiterleitet
E-Mail-AuthentifizierungPrüft SPF/DMARC-DNS-Einträge für die E-Mail-Zustellbarkeit (opt-in)
Secret-ScanningFindet durchgesickerte API-Schlüssel und Anmeldedaten im Code
Debug-AnweisungenErkennt console.log, var_dump, debugger im Code
FehlerseitenPrüft auf benutzerdefinierte 404/500-Fehlerseiten
BildoptimierungFindet große Bilder (>500 KB), die die Ladezeit beeinträchtigen
Rechtliche SeitenPrüft auf Datenschutzerklärung und Nutzungsbedingungen
Cookie-EinwilligungErkennt eine Lösung für Cookie-Einwilligungen (DSGVO/CCPA-Konformität)
Favicon & IconsPrüft auf Favicon, apple-touch-icon (.png, .webp, .svg) und Web-Manifest
robots.txtPrüft, ob robots.txt existiert und Inhalt hat
sitemap.xmlPrüft auf Sitemap oder Generator
llms.txtPrüft auf eine LLM-Crawler-Leitfaden-Datei
ads.txtValidiert ads.txt für werbefinanzierte Websites (opt-in)
humans.txtPrüft auf humans.txt zur Nennung des Teams (opt-in)
IndexNowPrüft die IndexNow-Key-Datei für schnellere Suchindizierung (opt-in)
LICENSEPrüft auf eine Lizenzdatei (opt-in, für Open-Source-Projekte)

Unterstützte Dienste (72)

Preflight erkennt und validiert automatisch die Konfiguration dieser Dienste:

Zahlungen

  • Stripe, PayPal, Braintree, Paddle, LemonSqueezy

Fehlerverfolgung & Monitoring

  • Sentry, Bugsnag, Rollbar, Honeybadger, Datadog, New Relic, LogRocket

E-Mail & Newsletter

  • Postmark, SendGrid, Mailgun, AWS SES, Resend, Mailchimp, Kit, Beehiiv, AWeber, ActiveCampaign, Campaign Monitor, Drip, Klaviyo, Buttondown

Analytics

  • Plausible, Fathom, Umami, Fullres Analytics, Datafa.st Analytics, Google Analytics, PostHog, Mixpanel, Amplitude, Segment, Hotjar

Authentifizierung

  • Auth0, Clerk, WorkOS

Chat

  • Intercom, Crisp

Benachrichtigungen

  • Slack, Discord, Twilio

Infrastruktur

  • Firebase, Supabase, Redis, Sidekiq, RabbitMQ, Elasticsearch, Convex

Speicher & CDN

  • AWS S3, Cloudinary, Cloudflare

Suche

  • Algolia

SEO

  • IndexNow

KI / LLMs

  • OpenAI, Anthropic Claude, Google AI (Gemini), Mistral, Cohere, Replicate, Hugging Face, Grok (X/Twitter), Perplexity, Together AI

Konfiguration

Preflight verwendet eine preflight.yml-Datei im Projektstamm:

projectName: my-app
stack: rails  # rails, next, react, vite, laravel, etc.

urls:
  staging: "https://staging.example.com"
  production: "https://example.com"

services:
  stripe:
    declared: true
  sentry:
    declared: true

checks:
  envParity:
    enabled: true
    envFile: ".env"
    exampleFile: ".env.example"

  healthEndpoint:
    enabled: true
    path: "/health"  # optional - auto-detects common paths if not set

  stripeWebhook:
    enabled: true
    url: "https://api.example.com/webhooks/stripe"

  seoMeta:
    enabled: true
    mainLayout: "app/views/layouts/application.html.erb"

  security:
    enabled: true

  secrets:
    enabled: true
    # Per-file allowlist for the secrets scan. Use this to suppress an
    # individual finding (e.g. a referrer-restricted public key) without
    # disabling the whole check.
    allowlist:
      - path: web/js/golden-hour.js
        fingerprint: "sha256:<hex>"   # recommended — pins to the exact secret
        reason: "HTTP-referrer-restricted Google Timezone key"
      - path: "web/tools/**/*.php"    # doublestar globs are supported

  indexNow:
    enabled: true
    key: "your32characterhexkeyhere00000"

  emailAuth:
    enabled: true  # opt-in, checks SPF/DMARC on production domain

  humansTxt:
    enabled: false  # opt-in, credits the team

  license:
    enabled: false  # opt-in, for open source projects

# Silence specific checks or services by ID
ignore:
  - sitemap
  - llmsTxt
  - google_analytics

Prüfungen & Dienste ignorieren

Stummschalten bestimmter Prüfungen oder Dienste mit preflight ignore <id>:

preflight ignore sitemap        # Sitemap-Prüfung ignorieren
preflight ignore sentry         # Sentry-Dienstvalidierung ignorieren
preflight unignore sitemap      # Sitemap-Prüfung wieder aktivieren
preflight checks                # Alle ignorierbaren IDs auflisten

Einzelnen Secret-Befund auf die Whitelist setzen

Bevorzugen Sie das Aufnehmen eines einzelnen Befunds gegenüber dem Stummschalten der gesamten secrets-Prüfung. Fügen Sie einmalige Ausnahmen über die Kommandozeile hinzu:

preflight ignore secrets web/js/golden-hour.js

Das hängt einen Pfad-Eintrag unter checks.secrets.allowlist in Ihrer preflight.yml an. Das Feld path ist ein doublestar-Glob (** passt über Verzeichnisse hinweg), aufgelöst gegen den projektrelativen Dateipfad.

Fingerprint festlegen. Eine reine Pfad-Whitelist akzeptiert stillschweigend jede zukünftige Secret, die in diese Datei gelangt. Bearbeiten Sie den Eintrag und fügen Sie ein fingerprint: "sha256:<hex>" hinzu – den SHA-256-Wert des erkannten Secret-Werts. Wenn der Schlüssel nun rotiert wird oder ein anderes Secret in derselben Datei auftaucht, meldet Preflight erneut.

Befunde werden nach Pfad + Fingerprint abgeglichen, nicht dateiweit. Ein auf der Whitelist stehender Fingerprint in einer Datei unterdrückt nicht andere Secrets in anderen Zeilen derselben Datei.

Ignorierbare Prüfungs-IDs

SEO & Social: seoMeta, canonical, structured_data, indexNow (opt-in), ogTwitter, viewport, lang

Sicherheit & Infrastruktur: securityHeaders, ssl, www_redirect, email_auth (opt-in), secrets

Umgebung & Gesundheit: envParity, healthEndpoint

Codequalität & Leistung: vulnerability, debug_statements, error_pages, image_optimization

Rechtliches & Compliance: legal_pages

Standard-Webdateien: favicon, robotsTxt, sitemap, llmsTxt, adsTxt (opt-in), humansTxt (opt-in), license (opt-in)

Ignorierbare Dienst-IDs

Alle Dienste haben Validierungsprüfungen, die eine korrekte Integration verifizieren (Umgebungsvariablen, SDK-Muster, Konfigurationsdateien):

Zahlungen: stripe, paypal, braintree, paddle, lemonsqueezy

Fehlerverfolgung: sentry, bugsnag, rollbar, honeybadger, datadog, newrelic, logrocket

Transaktions-E-Mails: postmark, sendgrid, mailgun, aws_ses, resend

E-Mail-Marketing: mailchimp, convertkit, beehiiv, aweber, activecampaign, campaignmonitor, drip, klaviyo, buttondown

Analytics: plausible, fathom, google_analytics, fullres, datafast, posthog, mixpanel, amplitude, segment, hotjar

Authentifizierung: auth0, clerk, workos, firebase, supabase

Kommunikation: twilio, slack, discord, intercom, crisp

Infrastruktur: redis, sidekiq, rabbitmq, elasticsearch, convex

Speicher & CDN: aws_s3, cloudinary, cloudflare

Suche: algolia

KI: openai, anthropic, google_ai, mistral, cohere, replicate, huggingface, grok, perplexity, together_ai

SEO: indexNow

Cookie-Einwilligung: cookieconsent, cookiebot, onetrust, termly, cookieyes, iubenda

Exit-Codes

CodeBedeutung
0Alle Prüfungen bestanden
1Nur Warnungen
2Fehler gefunden
64Preflight konnte nicht ausgeführt werden (ungültiger Pfad, nicht lesbare Konfiguration, unbekannte Prüfungs-ID)
130Scan abgebrochen (Ctrl-C / SIGTERM)

Die Codes 1 und 2 bedeuten, dass der Scan ausgeführt wurde und etwas gemeldet hat. Code 64 bedeutet, dass es nie so weit kam, sodass CI „dieses Projekt hat Probleme" von „dieser Aufruf war falsch" unterscheiden kann.

Shell-Vervollständigung

Tab-Vervollständigung für Befehle, Flags und Prüfungs-IDs (einschließlich --only- und --skip-Werte):

# bash (zu ~/.bashrc hinzufügen)
source <(preflight completion bash)

# zsh (zu ~/.zshrc hinzufügen)
source <(preflight completion zsh)

# fish
preflight completion fish | source

Die Ausgabe respektiert außerdem die NO_COLOR-Umgebungsvariable.

Unterstützte Stacks

Backend-Frameworks

  • Ruby on Rails, Laravel, PHP, Go, Python/Django, Rust, Node.js

Frontend-Frameworks

  • Next.js, Nuxt, Remix, React, Vue.js, Vite, Svelte, Angular

Traditionelle CMS

  • WordPress, Craft CMS, Drupal, Ghost

Statische Site-Generatoren

  • Hugo, Jekyll, Gatsby, Eleventy (11ty), Astro

Headless-CMS

  • Strapi, Sanity, Contentful, Prismic

Sonstiges

  • Statische Websites

CI-Integration

# GitHub Actions-Beispiel (curl)
- name: Run Preflight
  run: |
    curl -sSL https://preflight.sh/install.sh | sh
    preflight scan --ci --format json
# GitHub Actions-Beispiel (Docker)
- name: Run Preflight
  run: docker run -v ${{ github.workspace }}:/app ghcr.io/preflightsh/preflight scan --ci --format json

Lizenz

MIT

Kategorien