Weesify
المطوّرون

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استُخدم الأمر بشكل خاطئ