Zinnector®

ממשק שורת הפקודה למפתחים עבור אחסון WordPress

Zinnector® בונה את WordPress באופן מקומי ללא שום התקנה מלבד Node — ללא Docker, ללא MAMP — לאחר מכן בודק את מה שבנית מול חלצת האחסון שאליה אתה עומד לבצע פריסה, ואומר לך מה לא יתאים, לפני שאתה מבצע דחיפה. התקן זאת באמצעות npm install -g zinnector. הכלי חינמי, מורשה תחת רישיון MIT ובנוי על גבי אותו API ציבורי כמו כל דבר אחר כאן.

חמש פקודות, והאמצעית היא העיקר

רוב ממשקי שורת הפקודה של אחסון מתחילים בפריסה. Zinnector® מתחיל לפני כן — הוא בונה את האתר יחד איתך, ולאחר מכן הוא בודק את העבודה שלך מול השרת שאליו אתה עומד לשלוח אותה. הפער בין "זה רץ על המחשב הנייד שלי" לבין "זה רץ על השרת" הוא המקום שבו מתבזבזים שעות אחר הצהריים, ופער זה ניתן למדידה.

zinnector חדש

צור שלד עבור אתר, תוסף או ערכת נושא של בלוקים המוזנקים מיד. ללא קובצי מציין מיקום וללא משימות לביצוע (TODOs) — התוסף מופעל וניתן לבחור את ערכת הנושא ברגע שהיא נוצרת.

zinnector dev

WordPress אמיתי על המחשב שלך בתוך שניות, המריץ את התוספים והערכות עיצוב שלך, ללא Docker וללא PHP ב-PATH שלך. בחר כל PHP מגרסה 5.2 ועד 8.5 לפיתוח לפיו.

בדיקת zinnector

הבדיקה המקדימה. היא משווה בין מה שבנית לבין ה-slot שאליו אתם עומדים לבצע פריסה, ומציינת כל אי-התאמה — וכל בדיקה שלא ניתן היה לבצע — לפני שאתם מבצעים Push.

דחיפת zinnector

לפני הטיסה, דחפו את הקומיטים שלכם, הפעילו את הפריסה ועקבו אחריה עד להשלמתה. אם היא נכשלת, יומן ה-build נמצא במרחק פקודה אחת.

זינקטור AI

שאל את העוזר מטרמינל הפקודה, כאשר הפרויקט והאתר שלך משמשים כהקשר. הוא פועל בפלטפורמה מול החשבון שלך, כך שאף מפתח מודל אינו מאוחסן אי פעם במחשב שלך.

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® בנוי על אותו API ציבורי כמו לוח הבקרה, כך שכל מה שהפאנל יכול לעשות, הוא יכול לעשות – וכל פקודה היא פעולה מתועדת במפרט ה-OpenAPI ולא נקודת קצה פרטית.

אתרים ופריסות

הצגת אתרים, קריאת כל המידע שהפלטפורמה יודעת על אתר מסוים, פריסה מחדש, וקריאת היסטוריית הפריסות ולוגי הבנייה.

דומיינים, DNS ודוא"ל

הצג דומיינים, קרא ושנה רשומות DNS עם הרשומה המוצגת לפני כתיבתה, וקרא את שירותי הדואר שלך.

PHP, מכסה, מסד נתונים ולוגים

החליפו גרסאות PHP, בדקו את ניצול הדיסק והאינוד מול מה שהתוכנית שלכם מעניקה, קבלו קישורים חד-פעמיים אל 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 המקומית שלך מול זו של הסלוט, האם הסלוט בכלל יכול לעבור לגרסה שעליה בנית, האם ה-PHP של הסלוט עבר את סוף מחזור החיים שלו והאם המכונה אכן החילה זאת, גודל הפרויקט שלך ומספר הקבצים מול מקום הדיסק ומרווח ה-inode שנותרו, גרסאות ה-WordPress משני הצדדים, האם הסלוט סיים את ההקצאה, והאם מאגר git מחובר לפריסה ממנו. כל מה שלא ניתן היה לבדיקה מדווח כלא נבדק במקום להיספר כהצלחה.

האם זה יכול לעצור אותי מלבצע פריסה?

לא, וזה נעשה בכוונה. בדיקת טרום-הטיסה מזהירה ומאפשרת לך להמשיך – `--force` מבצע פריסה חרף כל ממצא. אתה יודע דברים על האתר שלך שבדיקה אינה יודעת, וכלי שמסרב לבצע פריסה הוא כלי שאנשים מסירים.

האם מפתח ה-API שלי מאובטח?

המפתח לעולם אינו נקרא משורת הפקודה — אלא רק מהנחיה או מ-stdin מוזרם — כך שהוא אינו יכול להגיע להיסטוריה של מעטפת ה-shell שלכם או לרשימת תהליכים. הוא מאוחסן בספריית ההגדרות שלכם במצב קובץ 600, ו-Zinnector® אוכף מחדש הרשאות אלו בכל פעם שהוא כותב.

האם ניתן להשתמש בזה ב-CI?

כן. הגדר את `ZINNECTOR_TOKEN`, וכל פקודה מקבלת `--json`. פלט אנושי מנותב ל-stderr ונתונים ל-stdout, כך שצינורות (pipes) נשארים נקיים. הפקודה `zinnector check` יוצאת בערך שאינו אפס כאשר היא מוצאת משהו, כך שהיא פועלת כשער בצינור, וגם `--strict` נכשלת כאשר לא ניתן לבצע השוואה.

התקן אותו והפעל אתר בדקה הקרובה

הריצו npm install -g zinnector, או נסו זאת פעם אחת עם npx zinnector new my-site. חינמי, מבוסס על רישיון MIT ונבנה על גבי ה-API הציבורי. צרו פרויקט, הריצו אותו מקומית ללא Docker, ובדקו אותו לפני הפריסה.

קרא את המסמכים