
preflight v0.20.1
أداة سطر أوامر مبنية على Go تقوم بمسح قواعد الأكواد للتأكد من جاهزيتها للإطلاق، حيث تكتشف التكوينات المفقودة، مشكلات الأمان، تسريبات الأسرار، والفجوات في التكامل قبل النشر في الإنتاج.
Preflight.sh
Preflight.sh هي أداة سطر أوامر تفحص قاعدة الشيفرة البرمجية الخاصة بك للتأكد من جاهزيتها للإطلاق. تكتشف الإعدادات المفقودة، ومشاكل التكامل، والمخاوف الأمنية، والفجوات في بيانات SEO الوصفية، وغيرها من الأخطاء الشائعة قبل النشر إلى بيئة الإنتاج.
لا تُحرج نفسك في بيئة الإنتاج. فقط قم بتشغيل الأمر.
التثبيت
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
curl -sSL https://preflight.sh/install.sh | sh
التنزيل اليدوي
قم بتنزيل أحدث إصدار من GitHub Releases.
بدء سريع
# التهيئة في دليل مشروعك
cd your-project
preflight init
# تشغيل جميع الفحوصات
preflight scan
# فحص دليل محدد
preflight scan /path/to/project
# التشغيل مع مخرجات مفصلة (يعرض الملفات التي طابقت كل فحص)
preflight scan --verbose
preflight scan -v # صيغة مختصرة
# التشغيل في وضع CI مع مخرجات JSON
preflight scan --ci --format json
# تشغيل فحوصات محددة فقط، أو تخطي بعضها، للتكرار السريع
# (لمرة واحدة؛ على عكس `preflight ignore` لا يغير preflight.yml)
preflight scan --only seo_meta,og_twitter
preflight scan --skip vulnerability,secrets
# كتم فحص
preflight ignore sitemap
# إلغاء كتم فحص
preflight unignore sitemap
# قائمة بجميع معرفات الفحوصات
preflight checks
مهارة الوكيل
يتضمن هذا المستودع مهارة وكيل متوافقة مع skills.sh في skills/preflight/SKILL.md. تمنح وكلاء البرمجة سير عمل Preflight قابلاً للتكرار: فحص preflight.yml، وتشغيل عمليات الفحص الآمنة لـ CI، وفرز النتائج، وتجنب عمليات الكتم غير الآمنة، وإعادة تشغيل التحقق، والإبلاغ عن مخاطر الإطلاق المتبقية.
اعرض المهارة من هذا المستودع:
# باستخدام Bun
bunx --yes skills add preflightsh/preflight --list
# أو باستخدام npm
npx --yes skills add preflightsh/preflight --list
قم بتثبيت مهارة Preflight فقط:
# باستخدام Bun
bunx --yes skills add preflightsh/preflight --skill preflight
# أو باستخدام npm
npx --yes skills add preflightsh/preflight --skill preflight
لوحة المعلومات والاقتراحات بالذكاء الاصطناعي
Preflight قابلة للاستخدام بالكامل من سطر الأوامر دون الحاجة إلى حساب. تضيف لوحة المعلومات الاختيارية في app.preflight.sh سجلاً مستضافاً لعمليات الفحص واقتراحات إصلاح مولّدة بالذكاء الاصطناعي لكل نتيجة. لا تغادر شيفرتك البرمجية جهازك أبداً: يتم تشغيل الفحص محلياً، ويتم إرسال ملخص منقح فقط من النتائج (معرفات الفحوصات، والحالات، والرسائل، دون قيم سرية أو محتويات ملفات) عند النشر.
أنشئ حساباً مجانياً، ثم اربط CLI:
preflight auth login # يفتح متصفحك لتفويض هذا CLI
preflight auth status # يعرض المستخدم الذي سجلت الدخول به
preflight auth logout # يزيل بيانات الاعتماد المخزنة
انشر فحصاً إلى لوحة المعلومات الخاصة بك باستخدام --publish. يعرض رابطاً لعرض التشغيل. النشر بأفضل جهد: إذا كنت غير متصل أو لم تسجل الدخول، يستمر الفحص في العمل ويخرج بشكل طبيعي.
preflight scan --publish
في لوحة المعلومات تحصل على تفصيل نجاح/تحذير/فشل لكل تشغيل، والقائمة الكاملة للنتائج، وسجلاً لكل مشروع لترى ما تغير بين عمليات النشر.
يمكنك أيضاً قراءة هذا السجل من الطرفية باستخدام preflight history:
preflight history # التشغيلات الأخيرة عبر مشاريعك
preflight history --here # تشغيلات المشروع الحالي فقط
preflight history <run-id> # نتائج الفحص الكاملة لتشغيل واحد
preflight history --here --format json # قابل للقراءة آلياً، للوكلاء
يتطلب preflight auth login. يطابق --here التشغيلات مع المستودع الحالي عبر git remote الخاص به، وهو نفس المفتاح المستخدم عند النشر.
افتح أي فحص فاشل أو تحذيري في تشغيل منشور لتوليد إصلاح خطوة بخطوة مصمم خصيصاً لحزمتك التقنية المكتشفة، مع أوامر وشيفرات جاهزة للنسخ.
- مجاني يتضمن 5 عمليات نشر شهرياً.
- استخدم مفتاحك الخاص: أضف مفتاح API من OpenAI أو Anthropic في إعدادات لوحة المعلومات ويبقى النشر مجانياً وغير محدود (تدفع لمزود الخدمة مباشرة).
- مُدار (5 دولارات/شهرياً): نغطي تكاليف الذكاء الاصطناعي وتكون التشغيلات غير محدودة، دون الحاجة إلى مفتاح API.
ما يفحصه
| الفحص | الوصف |
|---|---|
| ENV Parity | يقارن .env و.env.example للمتغيرات المفقودة |
| Health Endpoint | يتحقق من إمكانية الوصول إلى الموقع؛ يكتشف تلقائياً /health أو /healthz أو /api/health أو يتراجع إلى الجذر |
| Vulnerability Scan | يفحص ثغرات التبعيات (bundle audit, npm audit, إلخ.) |
| SEO Metadata | يفحص العنوان والوصف ووسوم Open Graph |
| OG & Twitter Cards | يتحقق من og:image وtwitter:card وبيانات المشاركة الاجتماعية الوصفية |
| Canonical URL | يتحقق من وجود وسم الرابط الأساسي |
| Viewport | يفحص وسم viewport المناسب للجوال |
| Lang Attribute | يتحقق من سمة html lang لإمكانية الوصول |
| Structured Data | يفحص ترميز JSON-LD Schema.org |
| Security Headers | يتحقق من HSTS وCSP وX-Content-Type-Options على كل من بيئة الإنتاج والاختبار |
| SSL Certificate | يفحص صلاحية SSL ويحذر قبل انتهاء الصلاحية |
| WWW Redirect | يتحقق من إعادة توجيه www/غير www إلى الرابط الأساسي |
| Email Auth | يفحص سجلات DNS الخاصة بـ SPF/DMARC لإمكانية تسليم البريد الإلكتروني (اختياري) |
| Secret Scanning | يكتشف مفاتيح API وبيانات الاعتماد المسربة في الشيفرة |
| Debug Statements | يكتشف console.log وvar_dump وdebugger المتبقية في الشيفرة |
| Error Pages | يفحص صفحات الخطأ المخصصة 404/500 |
| Image Optimization | يكتشف الصور الكبيرة (أكبر من 500KB) التي تضر بأوقات التحميل |
| Legal Pages | يفحص صفحات سياسة الخصوصية وشروط الخدمة |
| Cookie Consent | يكتشف حل الموافقة على ملفات تعريف الارتباط (الامتثال لـ GDPR/CCPA) |
| Favicon & Icons | يفحص favicon وapple-touch-icon (.png و.webp و.svg) وweb manifest |
| robots.txt | يتحقق من وجود robots.txt وأنه يحتوي على محتوى |
| sitemap.xml | يفحص وجود sitemap أو المولد الخاص به |
| llms.txt | يفحص ملف إرشادات زاحف LLM |
| ads.txt | يتحقق من ads.txt للمواقع المدعومة بالإعلانات (اختياري) |
| humans.txt | يفحص humans.txt لنسب الفضل للفريق (اختياري) |
| IndexNow | يتحقق من ملف مفتاح IndexNow لفهرسة بحث أسرع (اختياري) |
| LICENSE | يفحص ملف الترخيص (اختياري، للمشاريع مفتوحة المصدر) |
الخدمات المدعومة (72)
يكتشف Preflight تلقائياً ويتحقق من إعدادات هذه الخدمات:
المدفوعات
- Stripe, PayPal, Braintree, Paddle, LemonSqueezy
تتبع الأخطاء والمراقبة
- Sentry, Bugsnag, Rollbar, Honeybadger, Datadog, New Relic, LogRocket
البريد الإلكتروني والنشرات الإخبارية
- Postmark, SendGrid, Mailgun, AWS SES, Resend, Mailchimp, Kit, Beehiiv, AWeber, ActiveCampaign, Campaign Monitor, Drip, Klaviyo, Buttondown
التحليلات
- Plausible, Fathom, Umami, Fullres Analytics, Datafa.st Analytics, Google Analytics, PostHog, Mixpanel, Amplitude, Segment, Hotjar
المصادقة
- Auth0, Clerk, WorkOS
الدردشة
- Intercom, Crisp
الإشعارات
- Slack, Discord, Twilio
البنية التحتية
- Firebase, Supabase, Redis, Sidekiq, RabbitMQ, Elasticsearch, Convex
التخزين وCDN
- AWS S3, Cloudinary, Cloudflare
البحث
- Algolia
SEO
- IndexNow
الذكاء الاصطناعي / نماذج اللغة الكبيرة
- OpenAI, Anthropic Claude, Google AI (Gemini), Mistral, Cohere, Replicate, Hugging Face, Grok (X/Twitter), Perplexity, Together AI
الإعدادات
يستخدم Preflight ملف preflight.yml في جذر مشروعك:
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"