Zinnector®

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

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

עורך קוד בדפדפן, עם עץ קבצים לצד קובץ פתוח וסמן בתוכו.

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

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

zinnector חדש

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

zinnector dev

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

בדיקת zinnector

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

דחיפת zinnector

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

zinnector ai

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

בדקו שהוא עובד תוך שתי דקות, אין צורך בחשבון

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

  1. התקן אותו

    הפעל את npm install -g zinnector ב-Node 24 ומעלה. אם npm מדפיס EBADENGINE, גרסת ה-Node שברשותך ישנה מ-24 — התקן את גרסת ה-LTS הנוכחית מ-nodejs.org והפעל את ההתקנה שוב.

  2. בדוק את הגרסה

    הפקודה zinnector --version מדפיסה מספר גרסה כגון 0.1.2. בגרסת Node ישנה מ-24 היא מדפיסה הודעה שלפיה נדרשת גרסת Node 24 ומעלה, ויוצאת.

  3. קרא את העזרה

    הפקודה zinnector --help מפרטת כל פקודה להלן בצירוף תיאור מטרתה בשורה אחת. כל פקודה מקבלת גם אפשרות --help משלה.

  4. בנה שלד לאתר

    הפקודה zinnector new my-site יוצרת פרויקט שמופעל באופן מיידי — קובץ zinnector.json, עץ wp-content וקובץ README — ומדפיסה את הפקודות הבאות להרצה.

  5. הפעל

    הקלידו cd my-site, ולאחר מכן zinnector dev. ההפעלה הראשונה מבקשת פעם אחת להוריד את סביבת זמן הריצה של WordPress (כ-570 מגה-בייט, נשמר במטמון הייעודי של ה-CLI, לעולם לא בפרויקט שלכם). הצלחה תיראה כך: “running at http://127.0.0.1:9400”.

  6. פתחו אותו בדפדפן

    http://127.0.0.1:9400 הוא אתר WordPress חדש; /wp-admin פותח את לוח הבקרה כשאתם כבר מחוברים. גררו תוסף אל wp-content/plugins והוא יופיע שם בטעינה מחדש הבאה.

  7. לאחר מכן, עם חריץ אחסון

    zinnector login, zinnector link, zinnector check, zinnector push — בצעו בדיקה מקדימה למה שבניתם מול המשבצת, לאחר מכן פרסו וצפו בסיום התהליך.

בדיקת טרום-טיסה, בפירוט

בניתם על PHP 8.3. המשבצת מריצה את 8.1. שום דבר אינו מודיע לכם עד שהאתר נהיה לבן. זוהי הבעיה שלשמה פקודה זו קיימת, וזה מה שהבעלים של פלטפורמה זו ביקש במפורש. Zinnector® קורא את שתי הסביבות ומציג אותן זו לצד זו — ואז מאפשר לכם לפרוס בכל זאת, כי ייתכן שיש לכם סיבה לכך.

PHP, מדורג בהגינות

פער בגרסה ראשית מסומן ברמה גבוהה מכיוון שהוא בוודאות משבש את האתר; פער משני מסומן ברמה נמוכה יותר. דירוג של כל דבר כקריטי רק מלמד אנשים להתעלם מהאזהרה.

מספר דיסקים וקבצים, בנפרד

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

״לא ניתן היה לבדוק״ היא תשובה בפני עצמה

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

מתריע, אף פעם לא חוסם

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

שתי סביבות ריצה מקומיות, שתיהן אמיתיות

הברירת מחדל היא WordPress Playground: שפת PHP מהודרת ל-WebAssembly, ורצה בתוך Node, כך שמחשב נייד שמותקן עליו רק Node עובר מלא-כלום ל-WordPress פעיל בערך בזמן שלוקח לקרוא את המשפט הזה.

כאשר אתם זקוקים ל-PHP מקורי — הרחבה כמו imagick, MySQL אמיתי — העבירו את --runtime docker וקבלו במקום זאת קונטיינרים של php-fpm ו-MariaDB. שניהם משרתים את אותם הקבצים מאותו הפרויקט, כך שהחלפה ביניהם משנה את המנוע ותו לא.

כל שאר הדברים שאתם כבר עושים בלוח הבקרה

Zinnector® בנוי על אותו API ציבורי כמו לוח הבקרה, כך שכל מה שהלוח יכול לעשות, הוא יכול לעשות — וכל פקודה היא פעולה מתועדת במפרט OpenAPI ולא נקודת קצה פרטית.

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

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

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

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

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

החליפו גרסאות PHP, עיינו בניצול הדיסק וה-inodes מול ההקצאה בחבילה שלכם, קבלו קישורים חד-פעמיים ל-phpMyAdmin ועקבו בזמן אמת אחר יומני הגישה והשגיאות.

WP-CLI ופעולות מרובות

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

כל פקודה, בדיוק כפי שהיא מופיעה ב---help

הרשימה המלאה, שורה אחת לכל אחד. חומר העזר המלא — כל דגל, דוגמה הניתנת להרצה ומה שכל פקודה מדפיסה — מופק מתוך ה-CLI עצמו ונמצא בתיעוד למפתחים ובמאגר הידע, כך שהוא אינו יכול להיות שונה מהכלי שהתקנתם.

zinnector חדש

צרו שלד לפרויקט WordPress שתוכלו להריץ באופן מיידי.

zinnector dev

הפעל פרויקט זה באופן מקומי — אין צורך ב-Docker.

כניסה ל-zinnector

התחברו באמצעות מפתח API של Zinn Digital®.

התנתקות מ-zinnector

שכח מפתח API שמור.

zinnector whoami

הצגת המשתמש שעבורו ממשק שורת הפקודה (CLI) מאומת.

אתרי zinnector

פרט את האתרים שמפתח זה יכול לראות.

סטטוס Zinnector®

כל מה שהפלטפורמה יודעת על אתר אחד.

שיתוף zinnector

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

שותפים של zinnector

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

ביטול שיתוף של zinnector

שלילת הגישה של אדם, באמצעות דוא"ל או מזהה הרשאה.

הזמנות ל-zinnector

ההזמנות שממתינות לך, וקבל אחת.

קישור zinnector

כוון פרויקט זה למשבצת אחסון (וחבר את המאגר שלו).

zinnector pull

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

סנכרון zinnector

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

zinnקטור MCP

גשר לשרת ה-MCP של Zinn Digital® עבור Claude Desktop ולקוחות AI אחרים שמפעילים שרתים מקומיים בלבד.

שכפול של zinnector

צור פרויקט מקומי מאתר מתארח בשלב אחד: שכפל את המאגר שלו או משוך את הקבצים שלו, כתוב את קובץ הפרויקט והיה מוכן להפעלת zinnector dev.

בדיקת zinnector

השווה פרויקט זה לחריץ שאליו אתה עומד לפרוס.

zinnector push

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

פריסת zinnector

פרוס מחדש את מה שכבר יש לפלטפורמה, ללא דחיפה.

zinnector פועל

היסטוריית הפריסות של האתר.

zinnector php

הצגה או החלפה של גרסת ה-PHP של אתר.

מכסת zinnector

שימוש בדיסק, בקבצים ובמסד הנתונים ביחס למה שמעניקה התוכנית.

zinnector db

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

יומני zinnector

עקוב בזמן אמת אחר יומני הגישה והשגיאות של אתר.

zinnector wp

הפעל פקודת WP-CLI מורשית באתר.

גיבוי zinnector

הצגה ויצירה של גיבויי האתר. פקודות משנה: list, now.

דומיינים של zinnector

פרט את הדומיינים שמפתח זה יכול לראות.

zinnector dns

קריאה ושינוי של רשומות DNS. פקודות משנה: list, add, rm.

דוא״ל zinnector

הצגת שירותי דואר.

zinnector בכמות גדולה

הפעלת פעולה אחת על פני אתרים מרובים (cache_purge, malware_scan, sitemap, block_ip).

zinnector ai

שאלו את העוזר של Zinn Digital®, כאשר פרויקט זה משמש כהקשר.

שאלות

האם עליי להיות לקוח של Zinn Digital® כדי להשתמש בו?

לא. `zinnector new` ו-`zinnector dev` אינם דורשים חשבון כלל — צרו שלד לתוסף, לערכת עיצוב או לאתר שלם והריצו אותו מקומית, בחינם, לתמיד. מפתח API נחוץ רק עבור הפקודות שמתקשרות עם האחסון שלכם.

האם נדרש Docker?

לא עבור סביבת הריצה המוגדרת כברירת מחדל. WordPress Playground מהדר PHP ל-WebAssembly ורץ בתוך Node, כך ש-`zinnector dev` מפעיל WordPress אמיתי בתוך שניות מבלי להתקין שום דבר אחר. אם דרוש לכם PHP טבעי — כדי לבדוק הרחבה כגון imagick או ionCube — הפקודה `--runtime docker` מספקת לכם במקום זאת מכלי php-fpm ו-MariaDB. שתי האפשרויות נתמכות; אף אחת מהן אינה ברירת מחדל חלופית (fallback).

מה בעצם משווה בדיקת הטרום-טיסה?

גרסת ה-PHP המקומית שלכם לעומת זו של ה-slot, האם ה-slot בכלל יכול לעבור לגרסה שעליה פיתחתם, האם ה-PHP של ה-slot עבר את סוף מחזור החיים שלו והאם המכונה אכן החילה אותו, גודל הפרויקט ומספר הקבצים שלכם לעומת שטח הדיסק ומכסת ה-inodes שנותרו, גרסאות ה-WordPress בכל צד, האם ה-slot סיים את תהליך ההקצאה (provisioning), והאם מחובר מאגר git לצורך פריסה. כל דבר שלא ניתן היה לבדוק מדווח ככזה שלא נבדק במקום להיספר כהצלחה.

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

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

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

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

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

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

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

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

קרא את התיעוד