Zinnector®

የዴቨሎፐር CLI ለ WordPress አስተናጋጅነት

Zinnector® ዶከር ወይም ማምፕ (MAMP) ሳይጫኑ ኖድ (Node) ብቻ በመጠቀም WordPress ን በአካባቢያዊ ኮምፒዩተር ላይ ይገነባል፤ ከዚያም ሊያሰማሩት ካሰቡበት የስተንግ (hosting) ማስቀመጫ ጋር ያወዳድረዋል፣ እና ከመግፋትዎ በፊት ምን የማይመሳሰል እንዳለ ይነግርዎታል። በ npm install -g zinnector በመጠቀም ይጫኑት። እሱ ነፃ፣ በኤምአይቲ (MIT) ፈቃድ የተሰጠው እና እዚህ ካሉት ሌሎች ነገሮች ሁሉ ጋር ተመሳሳይ በሆነ ይፋዊ (public) ኤፒአይ (API) ላይ የተገነባ ነው።

አምስት ትዕዛዞች፣ እና መካከለኛው ነጥቡ ነው

አብዛኛዎቹ የሆስቲንግ CLIዎች የሚጀምሩት በስራ ላይ በማዋል (deploy) ላይ ነው። Zinnector® ከዛ በፊት ይጀምራል — ከእርስዎ ጋር ጣቢያውን ይገነባል፣ ከዚያም ስራዎን ለመላክ ከዘጋጁበት ማሽን ጋር በማነጻጸር ያረጋግጣል። “በእኔ ላፕቶፕ ላይ ሰርቷል” እና “በሰርቨሩ ላይ ይሰራል” መካከል ያለው ልዩነት ከሰዓት በኋላ የሚባክንበት ሲሆን፣ ያ ልዩነት ደግሞ የሚለካ ነው።

አዲስ zinnector

ወዲያውኑ የሚነሳ ድረ-ገጽ፣ ፕለጊን ወይም የብሎክ ጭብጥ (theme) ያዘጋጁ። ምንም መያዣ ፋይሎች (placeholder files) የሉም፣ ምንም TODOs የሉም — ፕለጊኑ እንደተፈጠረ ወዲያውኑ ይነቃል እንዲሁም ጭብጡም ሊመረጥ ይችላል።

zinnector dev

በኮምፒውተርዎ ላይ በጥቂት ሰከንዶች ውስጥ ትክክለኛ WordPress፣ የራስዎን ፕለጊኖች እና ጭብጦች የሚያስተናግድ፣ ያለ Docker እና በ PATHዎ ላይ ያለ PHP። ለማልማት ከ 5.2 እስከ 8.5 ከሚገኙት ማናቸውም PHPዎች ይምረጡ።

የzinnector ማረጋገጫ

ከበረራ በፊት የሚደረግ ምርመራ። የገነቡትን ከ ሊለቁበት ካለው ቦታ ጋር በማነፃፀር ከመልቀቅዎ በፊት ማንኛውንም አለመጣጣም - እና ሊያደርጋቸው ያልቻላቸውን እያንዳንዱን ምርመራ - ይሰይማል።

የዚነክተር ግፊት

ከበረራ በፊት፣ የተደረጉ ለውጦችን (ኮሚቶች) ይጫኑ፣ ስራ ማሰማራቱን (ዲፕሎይመንት) ያስጀምሩ እና እስኪጠናቀቅ ድረስ ይከታተሉ። ካልተሳካ፣ የግንባታ መዝገብ (ሎግ) በአንድ ትዕዛዝ ብቻ ይቀራል።

ዚኔክተር ኤአይ

ፕሮጀክትዎን እና ሳይትዎን እንደ ዐውደ-ጽሑፍ በመጠቀም ረዳቱን ከተርሚናሉ ይጠይቁ። በመድረኩ ላይ በእርስዎ መለያ ላይ የሚሰራ ሲሆን፣ በኮምፒውተርዎ ላይ ምንም ዓይነት የሞዴል ቁልፍ (model key) አልተቀመጠም።

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 ዛፍ በአስር ሺዎች የሚቆጠሩ ትናንሽ ፋይሎች ያሉት ሲሆን፣ አንድ ድር ጣቢያ ከዲስክ ገደቡ በታች ሆኖ ሳለ የ inode ፍቃዱ ሊያልቅበት ይችላል። ሁለቱም ከዕቅዱ ጋር ሳይሆን በእውነቱ በስሎቱ ላይ በቀረው ነገር ላይ ተመስርተው ይረጋገጣሉ።

“ማረጋገጥ አልተቻለም” የሚለው ራሱ ምላሽ ነው

ርዕሰ ጉዳዩን ማየት የማይችል ምርመራ ያልተመረመረ እንጂ ያለፈ መሆኑን በጭራሽ አያበስርም። የውሸት ስኬት ማንም ሁለተኛ የማይመለከተው በመሆኑ፣ ንጹህ ሂደት ማረጋገጥ ያልቻላቸውን ነገሮች ብዛት ይገልጻል።

ያስጠነቅቃል እንጂ ፈጽሞ አያገድድም

እያንዳንዱ ግኝት በ --force ሊሻሻል ይችላል፣ እና ማጠቃለያውም ይህንኑ ይገልጻል። በ CI ውስጥ ግን መውጫ ኮዱ (exit code) እንደ መቆጣጠሪያ ያገለግላል፣ ስለዚህም አንድ ሰው ቁጥጥሩን ሲይዝ የፓይፕላይን (pipeline) ሂደት ጥብቅ ሊሆን ይችላል።

ሁለት የሀገር ውስጥ የሩጫ ጊዜዎች፣ ሁለቱም እውነተኛ

የ WordPress Playground ነባሪው ነው፡ PHP ወደ WebAssembly ተሰብስቦ በ Node ውስጥ እየተኬደ፣ ስለዚህ በ Node ብቻ የተጫነ ላፕቶፕ ከምንም ወደ ስራ የገባ WordPress ለመድረስ ይህንን ዐረፍተ ነገር ለማንበብ ከሚወስደው ጊዜ ጋር በሚመሳሰል ጊዜ ውስጥ ይደርሳል።

ቤንችማርክ PHP የሚያስፈልግዎ ከሆነ — እንደ imagick ያለ ቅጥያ፣ እውነተኛ MySQL — --runtime docker ን ይጠቀሙ እና ፈንታው የ php-fpm እና MariaDB ኮንቴይነሮችን ያግኙ። ሁለቱም አንድ አይነት ፋይሎችን ከተመሳሳይ ፕሮጀክት ያገለግላሉ፣ ስለዚህ በሁለቱ መካከል መቀያየር ሞተሩን እንጂ ሌላ ምንም ነገር አይቀይርም።

በፓነሉ ውስጥ አስቀድመው የሚሠሯቸው ሌሎች ነገሮች ሁሉ

Zinnector® ከዳሽቦርዱ ጋር ባለ አንድ ዓይነት የህዝብ API ላይ የተገነባ ነው፣ ስለዚህ ፓነሉ ሊያደርገው የሚችለውን ሁሉ ማድረግ ይችላል—እና እያንዳንዱ ትዕዛዝ የግል መግቢያ ነጥብ (private endpoint) ሳይሆን በOpenAPI ዝርዝር ውስጥ የተመዘገበ ኦፕሬሽን ነው።

ጣቢያዎች እና ጅምሮች

ጣቢያዎችን ይዘርዝሩ፣ መድረኩ ስለ አንዱ የሚያውቀውን ሁሉ ያንብቡ፣ እንደገና ያሰማሩ፣ እና የስማራ ታሪክን እንዲሁም የግንባታ ምዝግቦችን ያንብቡ።

ዶሜኖች፣ ዲኤንኤስ እና ኢሜይል

ዶሜይኖችን ይዘርዝሩ፣ የዲኤንኤስ (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 key) የሚያስፈልገው ከእርስዎ አስተናጋጅ (ሆስቲንግ) ጋር ለሚነጋገሩ ትዕዛዞች ብቻ ነው።

ዶከር ይፈልጋል?

ለነባሪው የሩጫ ጊዜ (runtime) አይደለም። WordPress Playground ፒኤችፒን (PHP) ወደ ዌብአሴምብሊ (WebAssembly) በመለወጥ በኖድ (Node) ውስጥ ይሰራል፤ ስለዚህ `zinnector dev` ሌላ ምንም ነገር ሳይጫን ትክክለኛ ዋርድፕረስን (WordPress) በሰከንዶች ውስጥ ያስነሳል። እንደ imagick ወይም ionCube ያለ ቅጥያ ለመፈተሽ ተወላጅ ፒኤችፒ (native PHP) የሚያስፈልግዎ ከሆነ፣ `--runtime docker` በምትኩ የ php-fpm እና MariaDB ኮንቴይነሮችን ይሰጥዎታል። ሁለቱም ይደገፋሉ፤ አንዱም ምትክ (fallback) አይደለም።

የቅድመ-በረራ ምርመራው በእርግጥ ምንን ያወዳድራል?

የእርስዎ አካባቢያዊ የPHP ስሪት ከስሎቱ ስሪት ጋር ሲወዳደር፣ ስሎቱ ወደገነቡበት ስሪት መቀየር ይችል እንደሆነ፣ የስሎቱ PHP የአገልግሎት ዘመኑ ማብቂያን ያለፈ መሆን አለመሆኑ እና ማሽኑ በእርግጥ ተግባራዊ አድርጎታል ወይ የሚለው፣ የፕሮጀክትዎ መጠን እና የፋይል ብዛት ከቀረው የዲስክ እና የኢኖድ (inode) መጠን ጋር ሲወዳደር፣ በሁለቱም በኩል ያሉት የWordPress ስሪቶች፣ ስሎቱ ማዋቀሩን ጨርሶ እንደሆነ፣ እና ከየት እንደሚሰማራ የጊት (git) ማከማቻ (repository) ተገናኝቶ እንደሆነ። ሊፈትሻቸው ያልቻላቸው ነገሮች እንደ ተፈተሹ ከማሳየት ይልቅ ሳይፈተሹ እንደቀሩ ሪፖርት ይደረጋሉ።

ማሰማራት እንዳላደርግ ሊያቆመኝ ይችላል?

አይ፣ እና ያ ሐሳብ የተደረገበት ነው። የቅድመ-በረራ (Pre-flight) ማስጠንቀቂያዎችን ይሰጣል እና እንዲያልፉ ይፈቅድልዎታል— `--force` ማንኛውንም ግኝት አልፎ ማሰማራት (deploy) ያደርጋል። ፈታኙ የማያውቃቸውን ስለራስዎ ድረ-ገጽ የሚያውቋቸው ነገሮች አሉ፣ እና ማሰማራትን የሚከለክል መሳሪያ ሰዎች ከኮምፒውተራቸው የሚያስወግዱት መሳሪያ ነው።

የእኔ ኤፒአይ ቁልፍ (API key) ደህንነቱ የተጠበቀ ነው?

ቁልፉ ከትዕዛዝ መስመር ፈጽሞ አይነበብም — ከጥያቄ መጠየቂያ (ፕሮምፕት) ወይም በቧንቧ ከተላለፈ ግቤት (stdin) ብቻ ነው — ስለዚህ በሼል ታሪክዎ ውስጥም ሆነ በሂደት ዝርዝር ውስጥ ሊገባ አይችልም። የሚቀመጠው ፋይል ሁነታ (file mode) 600 ባለው የራስዎ ውቅር ማውጫ ውስጥ ሲሆን፣ Zinnector® በሚጽፍበት ጊዜ ሁሉ እነዚያን ፈቃዶች እንደገና ያረጋግጣል።

በ CI ውስጥ ሊጠቀምበት እችላለሁ?

አዎ። `ZINNECTOR_TOKEN`ን ያዘጋጁ፣ እና እያንዳንዱ ትዕዛዝ `--json`ን ይወስዳል። የሰዎች ውፅዓት ወደ stderr እና መረጃ ወደ stdout ይሄዳል፣ ስለዚህ ፓይፖች ንጹህ ሆኖ ይቆያል። `zinnector check` የሆነ ነገር ሲያገኝ ከዜሮ ውጪ በሆነ ቁጥር ይወጣል፣ ስለዚህ እንደ ፓይፕላይን ጌት ሆኖ ይሰራል፣ እና `--strict` ደግሞ ንፅፅር ማድረግ በማይቻልበት ጊዜም ይወድቃል።

ይጫኑት እና በሚቀጥለው ደቂቃ ውስጥ ድረ-ገጽ ያስኪዱ

npm install -g zinnector የሚለውን ያሂዱ፣ ወይም በ npx zinnector new my-site አንዴ ይሞክሩት። ነጻ፣ በ MIT ፈቃድ የተሰጠው እና በይፋዊው ኤፒአይ (public API) ላይ የተገነባ ነው። ፕሮጀክት ይፍጠሩ፣ ያለ ዶከር (Docker) በአካባቢያዊ (locally) ያሂዱት፣ እና ከማሰማራትዎ በፊት ቅድመ-በረራ ያድርጉት።

ሰነዶቹን አንብብ