Zinnector®

واجهة سطر الأوامر الخاصة بالمطورين لاستضافة WordPress

يقوم Zinnector® بإنشاء مواقع WordPress محلياً دون تثبيت أي شيء سوى Node — بدون Docker أو MAMP — ثم يتحقق مما أنشأته مقابل مساحة الاستضافة التي على وشك النشر إليها ويخبرك بما لن يتطابق، قبل أن تقوم بالدفع. قم بتثبيته باستخدام npm install -g zinnector. وهو مجاني، ومرخص برخصة MIT، ومبني على نفس واجهة برمجة التطبيقات العامة مثل كل شيء آخر هنا.

أوامر خمسة، وأوسطها هو المقصود

تبدأ معظم واجهات أوامر الاستضافة عند النشر. يبدأ Zinnector® قبل ذلك بكثير — فهو يبنى الموقع معك، ثم يفحص عملك مقارنة بالجهاز الذي توشك على إرساله إليه. الفجوة بين "عمل على حاسوبي المحمول" و"يعمل على الخادم" هي حيث تضيع فترة الظهيرة، وتلك الفجوة قابلة للقياس.

zinnector جديد

أنشئ هيكلاً لموقع، أو إضافة، أو قالب كتل يبدأ تشغيله فوراً. لا توجد ملفات نائبقة ولا مهام معلقة (TODOs) — تنشط الإضافة ويمكن تحديد القالب بمجرد إنشائه.

مطور zinnector

نسخة WordPress حقيقية على جهازك في ثوانٍ، تشغل إضافاتك وقوالب الخاصة بك، بدون Docker وبدون PHP على مسار النظام PATH. اختر أي إصدار PHP من 5.2 إلى 8.5 للتطوير عليه.

فحص Zinnector®

فحص ما قبل الإطلاق. يقارن ما أنشأته بالموضع الذي توشك على النشر فيه ويحدد كل اختلاف — وكل فحص تعذر إجراؤه — قبل إرسال التغييرات.

دفع zinnector

قبل الإقلاع، ادفع عمليات الالتزام الخاصة بك، واشعل عملية النشر وراقبها حتى اكتمالها. وإذا فشلت، فإن سجل البناء على بعد أمر واحد فقط.

zinnector ai

اطرح أسئلة على المساعد من خلال وحدة الطرفية (Terminal)، مع جعل مشروعك وموقعك الإلكتروني في سياق الاستخدام. يعمل المساعد على المنصة باستخدام حسابك الشخصي، لذلك لا يتم تخزين أي مفتاح للنموذج على جهازك مطلقاً.

Test it works in two minutes, no account needed

Six commands, in order, and what success looks like at each one. Everything here runs on your own machine; an API key is only needed when you reach a hosting slot.

  1. Install it

    Run npm install -g zinnector on Node 24 or newer. If npm prints EBADENGINE, your Node is older than 24 — install the current LTS from nodejs.org and run the install again.

  2. Check the version

    zinnector --version prints a version number such as 0.1.2. On a Node older than 24 it prints a message saying Node 24 or newer is needed, and exits.

  3. Read the help

    zinnector --help lists every command below with a one-line purpose. Every command also takes --help of its own.

  4. Scaffold a site

    zinnector new my-site creates a project that boots immediately — a zinnector.json, a wp-content tree and a README — and prints the next commands to run.

  5. Run it

    cd my-site, then zinnector dev. The first run asks once to download the WordPress runtime (about 570 MB, kept in the CLI’s own cache, never in your project). Success looks like “running at http://127.0.0.1:9400”.

  6. Open it in a browser

    http://127.0.0.1:9400 is a fresh WordPress site; /wp-admin opens the dashboard already signed in. Drop a plugin into wp-content/plugins and it is there on the next reload.

  7. Then, with a hosting slot

    zinnector login, zinnector link, zinnector check, zinnector push — pre-flight what you built against the slot, then deploy and watch it finish.

الفحص السابق للإطلاق، بالتفصيل

لقد بنيت على PHP 8.3. الفتحة تشغل الإصدار 8.1. لا شيء يخبرك بذلك حتى تصبح الصفحة بيضاء. هذه هي المشكلة التي وُجد هذا الأمر من أجلها، وهي التي طلبها مالك هذه المنصة بالاسم. يقرأ Zinnector® البيئتين معاً ويضعهما جنباً إلى جنب - ثم يتيح لك نشر الموقع على أي حال، فقد يكون لديك سبب لذلك.

لغة PHP، تقييمٌ بأمانة

يتم تمييز الفجوة بين الإصدارات الرئيسية بدرجة عالية لأنها تؤدي قطعا إلى تعطل الموقع؛ بينما تُصنف الفجوة الفرعية بدرجة أقل. إن تصنيف كل شيء على أنه حرج يعلم المستخدمين فقط تجاهل التحذير.

مساحة القرص وعدد الملفات، بشكل منفصل

تتكون شجرة WordPress من عشرات الآلاف من الملفات الصغيرة، ويمكن للموقع استنفاد حد الـ inodes المسموح به بينما يبقى أقل بكثير من الحد الأقصى المخصص لمساحة القرص. يتم التحقق من كلاهما مقابل ما تبقى فعلياً على الخانة، وليس مقابل الخطة.

"تعذر التحقق" هو إجابته بحد ذاته

تقرير الفحص الذي لا يستطيع رؤية موضوعه بأنه غير مفحوص، ولم يتم اجتيازه أبدًا. ويشير التشغيل النظيف إلى عدد الأشياء التي تعذر عليه التحقق منها، لأن الاعتقاد الخاطئ بأن كل شيء على ما يرام هو الأمر الذي لا يمعن أحد النظر فيه مرتين.

يحذر، ولا يحظر أبداً

يمكن تجاوز كل نتيجة باستخدام --force، ويوضح الملخص ذلك. في بيئة التكامل المستمر (CI)، يكون رمز الخروج هو الذي يحدد حالة التنفيذ بدلاً من ذلك، بحيث يظل مسار العمل صارماً مع إبقاء التحكم بيد المستخدم.

بيئتا تشغيل محليتان، وكلاهما حقيقيتان

WordPress Playground هو الوضع الافتراضي: PHP مُجمَّع إلى WebAssembly ويعمل داخل Node، بحيث يمكن لجهاز لاب توب لا يحتوي إلا على Node الانتقال من الصفر إلى WordPress قيد التشغيل في الوقت الذي يستغرقه تقريباً قراءة هذه الجملة.

عندما تحتاج إلى PHP أصلي — مثل ملحق imagick، أو MySQL حقيقي — مرر `--runtime docker` واحصل على حاويات php-fpm و MariaDB بدلاً من ذلك. تخدم الحاويات نفس الملفات من نفس المشروع، لذا فإن التبديل بينهما يغير المحرك ولا شيء غير ذلك.

كل ما تبقى تفعله بالفعل في اللوحة

تم تصميم Zinnector® بناءً على نفس واجهة برمجة التطبيقات العامة الخاصة بلوحة التحكم، لذا فإن أي شيء يمكن للوحة القيام به، يمكنه فعله — وكل أمر هو عملية موثقة في مواصفات OpenAPI بدلاً من كونها نقطة نهاية خاصة.

المواقع وعمليات النشر

اعرض المواقع، واقرأ كل ما تعرفه المنصة عن موقع واحد، وأعد نشر الموقع، واقرأ سجل النشر وسجلات البناء.

النطاقdomains، ونظام أسماء الدومينات (DNS)، والبريد الإلكتروني

اعرض النطاقات، واقرأ سجلات نظام أسماء النطاقات (DNS) وقم بتغييرها مع عرض السجل قبل كتابته، واقرأ خدمات البريد الخاصة بك.

PHP، حصة الاستخدام، قاعدة البيانات والسجلات

قم بالتبديل بين إصدارات PHP، واقرأ استخدام القرص والعقدة (inode) مقارنةً بما يمنحه لك خطتك، واحصل على روابط للاستخدام مرة واحدة في phpMyAdmin، وتتبع سجلات الوصول والأخطاء.

WP-CLI والعمليات المجمعة

قم بتنفيذ أوامر WP-CLI المدرجة في القائمة البيضاء على موقع، وقم بتفريغ التخزين المؤقت أو بدء فحوصات البرامج الضارة عبر مجموعة كاملة في استدعاء واحد بدلاً من استدعاء واحد لكل موقع.

Every command, exactly as --help lists it

The full list, one line each. The complete reference — every flag, a runnable example and what each command prints — is generated from the CLI itself and lives in the developer docs and the knowledge base, so it cannot drift from the tool you have installed.

zinnector new

Scaffold a WordPress project you can run immediately.

zinnector dev

Run this project locally — no Docker required.

zinnector login

Sign in with a Zinn Digital® API key.

zinnector logout

Forget a stored API key.

zinnector whoami

Show who this CLI is authenticated as.

zinnector sites

List the sites this key can see.

zinnector status

Everything the platform knows about one site.

zinnector share

Give one person access to a single site — a developer, a designer, a client — with a role and a reason.

zinnector collaborators

See who has been given access to a site, their role, and whether they have accepted yet.

zinnector unshare

Take a person's access back, by email or grant id.

zinnector invitations

The invitations waiting for you, and accept one.

zinnector link

Point this project at a hosting slot (and connect its repository).

zinnector pull

Pull a hosted site's files into this project for local development, and re-run to re-sync. Takes the fast path when the site syncs to its own repository, otherwise works from the latest backup.

zinnector clone

Make a local project from a hosted site in one step: clone its repository or pull its files, write the project file, and leave you ready to run zinnector dev.

zinnector check

Compare this project against the slot you are about to deploy to.

zinnector push

Pre-flight, push your commits, and deploy.

zinnector deploy

Redeploy what the platform already has, without pushing.

zinnector deploys

A site's deploy history.

zinnector php

Show or switch a site's PHP version.

zinnector quota

Disk, files and database usage against what the plan grants.

zinnector db

Database size, and single-use links into phpMyAdmin and the file manager.

zinnector logs

Tail a site's access and error logs.

zinnector wp

Run an allow-listed WP-CLI command on a site.

zinnector backup

List and take site backups. Subcommands: list, now.

zinnector domains

List the domains this key can see.

zinnector dns

Read and change DNS records. Subcommands: list, add, rm.

zinnector mail

List mail services.

zinnector bulk

Run one operation across many sites (cache_purge, malware_scan, sitemap, block_ip).

zinnector ai

Ask the Zinn Digital® assistant, with this project as context.

الأسئلة

هل يجب أن أكون عميلاً لـ Zinn Digital® لاستخدامه؟

لا. لا تتطلب الأوامر `zinnector new` و `zinnector dev` أي حساب على الإطلاق؛ قم بإنشاء هيكل مكون إضافي، أو قالب، أو موقع كامل وتشغيله محلياً، مجاناً، للأبد. مفتاح API مطلوب فقط للأوامر التي تتواصل مع استضافتك.

هل يحتاج إلى Docker؟

ليست لبيئة التشغيل الافتراضية. يقوم WordPress Playground بترجمة PHP إلى WebAssembly ويعمل داخل Node، لذا يقوم الأمر `zinnector dev` بتشغيل موقع WordPress حقيقي في ثوانٍ معدودة دون تثبيت أي شيء آخر. إذا كنت بحاجة إلى بيئة PHP أصلية - لاختبار امتداد مثل imagick أو ionCube - فإن الخيار `--runtime docker` يمنحك حاويات php-fpm و MariaDB بدلاً من ذلك. كلا الخيارين مدعوم؛ ولا يُعد أي منهما بديلاً مؤقتاً.

ما الذي يقارنه فحص ما قبل الإقلاع فعلياً؟

إصدار PHP المحلي الخاص بك مقابل إصدار الفتحة (slot)، وما إذا كان يمكن للفتح الانتقال من الأساس إلى الإصدار الذي بنيت عليه، وما إذا كان إصدار PHP الخاص بالفتحة قد تجاوز فترة الدعم وما إذا كان الجهاز قد طبقه بالفعل، وحجم مشروعك وعدد ملفاته مقابل مساحة القرص المتبقية وحدود الـ inodes، وإصدارات WordPress على كل جانب، وما إذا كانت الفتحة قد انتهت من عملية التوفير (provisioning)، وما إذا كان مستودع git متصلاً للنشر منه. أي شيء لم يتمكن من التحقق منه يتم الإبلاغ عنه كغير مفحوص بدلاً من احتسابه كاجتياز.

هل يمكنه منعني من نشر التطبيق؟

لا، وهذا مقصود. يحذرك الفحص المسبق ويسمح لك بالمرور — وينشر الأمر `--force` متخطياً أي نتيجة. أنت تعرف عن موقعك أموراً لا يعرفها المدقق، والأداة التي ترفض النشر هي أداة يقوم المستخدمون بإلغاء تثبيتها.

هل مفتاح واجهة برمجة التطبيقات الخاص بي آمن؟

لا يتم قراءة المفتاح أبدًا من سطر الأوامر - بل فقط من موجه أو مدخلات قياسية موجهة (stdin) - لذلك لا يمكن أن ينتهي به المطاف في سجل الصدفة (shell history) الخاص بك أو في قائمة العمليات. يتم تخزينه في دليل التكوين الخاص بك بوضع ملف 600، ويقوم Zinnector® بإعادة تأكيد تلك الأذونات في كل مرة يكتب فيها.

هل يمكنني استخدامه في التكامل المستمر؟

نعم. قم بتعيين `ZINNECTOR_TOKEN`، وسيتقبل كل أمر `--json`. يتم توجيه المخرجات البشرية إلى `stderr` والبيانات إلى `stdout`، لتبقى الأنابيب نظيفة. يخرج `zinnector check` برمز خطأ غير صفري عند اكتشاف أي شيء، لذا فهو يعمل كبوابة للأنابيب، كما يفشل الوسيط `--strict` أيضاً عندما تعذر إجراء المقارنة.

ثبّته وقم بتشغيل موقع في الدقيقة القادمة

قم بتشغيل npm install -g zinnector، أو جربه مرة واحدة باستخدام npx zinnector new my-site. مجاني، مرخص برخصة MIT، ومبني على واجهة برمجة التطبيقات العامة. قم بإنشاء هيكل المشروع، وتشغيله محلياً بدون Docker، واختباره مسبقاً قبل النشر.

اقرأ الوثائق