Weesify CLI
انشر مجلدًا إلى موقع HTML الخاص بك بأمر واحد، واسحبه مجددًا، وتحقق مما تغيّر، وتراجع. ملف واحد بلا حزم للتثبيت: يحتاج فقط إلى Node.js 18 أو أحدث.
تثبيت
نزّل الملف وشغّله باستخدام Node.js. لا يوجد شيء آخر للتثبيت، ولا يدخل في ذلك npx أو سجل حزم.
macOS وLinux
curl -fsSLo weesify.mjs https://weesify.com/developers/cli/weesify.mjs && node weesify.mjs login
Windows (PowerShell)
Invoke-WebRequest https://weesify.com/developers/cli/weesify.mjs -OutFile weesify.mjs; node weesify.mjs login
لكتابة "weesify" فقط في أي مكان، ضعه في PATH (macOS وLinux):
chmod +x weesify.mjs && sudo mv weesify.mjs /usr/local/bin/weesify
weesify --version
يطلب تسجيل الدخول رمز API مميّزًا. أنشئ واحدًا في مساحة عملك ضمن الإعدادات ← المطورون بالصلاحيات sites:read وsites:write وsites:deploy. يُحفظ في ~/.config/weesify/credentials.json، ولا يقرأه سواك، وليس في مجلد مشروعك أبدًا.
تحقق من الملف
الإصدار 1.0.0، 44 كيلوبايت. قارن SHA-256 الخاص به بهذا قبل تشغيله:
e98494277685934e20bdfb05c7f9fe5087db5db66d80b2365a4d3f74ed51c8af
shasum -a 256 weesify.mjs # macOS
sha256sum weesify.mjs # Linux
Get-FileHash weesify.mjs # Windows
أول نشر
cd my-site
weesify init # ربط هذا المجلد بموقع (أو إنشاء موقع)
weesify deploy -m "الإصدار الأول"
weesify status # المباشر مقابل المسودة مقابل هذا المجلد
يضغط deploy المجلد بصيغة ZIP على حاسوبك، ويرفعه، ويجعل الموقع مطابقًا لهذا المجلد تمامًا، وينشره. تبقى النسخة السابقة على بُعد أمر weesify rollback واحد. أضف --draft لتحديث المسودة فقط والنشر لاحقًا من المحرر.
تُستثنى تلقائيًا: node_modules/ و.git/ و.env و*.log وملفات النظام. أضف أنماطك الخاصة إلى .weesifyignore (بالصيغة نفسها لـ .gitignore). لا تُنشر أبدًا شيفرة الخادم مثل .php.
الأوامر
| الأمر | ما يفعله |
|---|---|
weesify login | حفظ رمز API مميّز (أو قراءته من --stdin) |
weesify whoami | مساحة العمل واسم الرمز المميّز والصلاحيات المستخدمة |
weesify sites | عرض مواقعك |
weesify init [--site ID | --name NAME] | ربط مجلد بموقع؛ يكتب weesify.json (بلا أسرار فيه) |
weesify deploy [dir] [-m MSG] [--draft] | رفع المجلد ونشره، أو تحديث المسودة فقط |
weesify pull [dir] [--live | --deployment ID] | تنزيل المسودة أو الموقع المباشر أو أحد عمليات النشر |
weesify status | آخر عملية نشر، وتغييرات المسودة، ومجلدك مقابل الموقع المباشر، والنطاقات |
weesify deployments | سجل عمليات النشر |
weesify rollback [ID or #N] | إعادة عملية نشر سابقة إلى الوضع المباشر (الافتراضي: التي قبلها) |
weesify domains [list | add | verify | remove] HOST | ربط النطاقات المخصصة والتحقق منها |
weesify open | فتح الموقع في متصفحك |
يقبل كل أمر --json لمخرجات قابلة للقراءة آليًا، و--site لاختيار موقع، و--host لـ Weesify مستضاف ذاتيًا.
CI والأتمتة
في CI، عيّن الرمز المميّز كسرّ باسم WEESIFY_TOKEN؛ ولا حاجة إلى خطوة تسجيل دخول. يرسل كل نشر Idempotency-Key خاصًا به، فلا يُنشر الرفع المُعاد محاولته مرتين أبدًا.
# GitHub Actions
- run: curl -fsSLo weesify.mjs https://weesify.com/developers/cli/weesify.mjs
- run: echo "e98494277685934e20bdfb05c7f9fe5087db5db66d80b2365a4d3f74ed51c8af weesify.mjs" | sha256sum -c -
- run: node weesify.mjs deploy dist --site ${{ vars.WEESIFY_SITE }} -m "Build ${{ github.sha }}"
env:
WEESIFY_TOKEN: ${{ secrets.WEESIFY_TOKEN }}
لا يمكن لرمز مميّز نشر موقع يحتاج إلى موافقة العميل حتى تتم الموافقة على المسودة الحالية؛ ويتوقف النشر حينها برمز الخروج 2.
رموز الخروج
| الرمز | يعني |
|---|---|
| 0 | تم (بالنسبة إلى deploy: الموقع مباشر) |
| 1 | حدث خطأ ما |
| 2 | الموافقة مطلوبة قبل النشر |
| 3 | فشل النشر؛ تبقى النسخة السابقة مباشرة |
| 4 | لم يتم تسجيل الدخول، أو الرمز المميّز غير مسموح له بذلك |
| 5 | غير موجود في مساحة العمل هذه |
| 6 | مشكلة في الشبكة أو الخادم أو حد المعدل: آمن إعادة المحاولة |
| 64 | استُخدم الأمر بشكل خاطئ |