Zinnector®

WordPress ჰოსტინგის დეველოპერის CLI

Zinnector® აწყობს WordPress-ს ლოკალურად ისე, რომ არაფერია დაინსტალირებული Node-ის გარდა — არც Docker და არც MAMP — შემდეგ ამოწმებს თქვენს მიერ აგებულს იმ ჰოსტინგის სლოტთან მიმართებაში, რომელზეც აპირებთ განთავსებას, და სანამ ცვლილებას გაუშვებთ, გეუბნებათ, რა არ დაემთხვევა. დააინსტალირეთ ბრძანებით npm install -g zinnector. ის უფასოა, აქვს MIT ლიცენზია და აგებულია იმავე საჯარო API-ზე, როგორც აქ არსებული ყველაფერი.

ხუთი ბრძანება და შუა არის არსი

ჰოსტინგის ბრძანებათა ხაზების უმეტესობა დეპლოიდან იწყება. Zinnector® უფრო ადრე იწყებს — ის თქვენთან ერთად აწყობს საიტს, შემდეგ კი თქვენს ნამუშევარს ამოწმებს იმ მანქანასთან მიმართებით, რომელზეც მის გაგზავნას აპირებთ. უფსკრული „ჩემს ლეპტოპზე გაეშვა“ და „სერვერზე ეშვება“ შორის არის ის, რასაც მთელი დღეები ეწირება, და ეს უფსკრული გაზომვადია.

ახალი zinnector

შექმნით საიტი, მოდული ან ბლოკების თემა, რომელიც დაუყოვნებლივ იტვირთება. არანაირი დამცავი ფაილები, არანაირი TODO — მოდული აქტიურდება და თემის არჩევა შესაძლებელია მისი შექმნისთანავე.

zinnector dev

რეალური WordPress თქვენს კომპიუტერში წამებში, რომელიც ემსახურება თქვენს საკუთარ პლაგინებს და თემებს, Docker-ისა და თქვენს PATH-ში PHP-ს გარეშე. აირჩიეთ ნებისმიერი PHP 5.2-დან 8.5-მდე სამუშაოდ.

zinnector-ის შემოწმება

გაფრენამდელი შემოწმება. ადარებს იმას, რაც ააგეთ, იმ სლოტთან, რომელზეც განთავსებას აპირებთ, და გამოთქვამს თითოეულ შეუსაბამობას — და ყველა იმ შემოწმებას, რომლის განხორციელებაც ვერ მოხერხდა — გამოქვეყნებამდე.

zinnector push

გაიარეთ ფრენამდელი შემოწმება, გადაიტანეთ თქვენი ქომითები, გაუშვით დეპლოი და დააკვირდით მის დასრულებამდე. თუ ის ჩავარდა, აწყობის ჟურნალი ერთადერთი ბრძანების მანძილზეა.

zinnector 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-ის ხე ათასობით პატარა ფაილისგან შედგება და საიტმა შეიძლება ამოწუროს თავისი inode ლიმიტი მაშინაც კი, როდესაც დისკური სივრცის ლიმიტზე ბევრად დაბალ ნიშნულზეა. ორივე მათგანი მოწმდება სლოტზე რეალურად დარჩენილი რესურსის მიხედვით და არა გეგმის მიხედვით.

„შემოწმება ვერ მოხერხდა“ თავისთავად პასუხია

სუბიექტის დამნახავი შემოწმება შემოუწმებლად აცხადებს, რომ ის არასოდეს ყოფილა წარმატებული. სუფთა გაშვება აფიქსირებს იმ საგნების რაოდენობას, რომელთა გადამოწმებაც ვერ მოხერხდა, რადგან ყალბი წარმატებული შედეგი ერთადერთია, რომელსაც ორჯერ არავინ აკვირდება.

აფრთხილებს, არასდროს ბლოკავს

ყველა აღმოჩენის გადაფარვა შესაძლებელია --force-ით, რაზეც შეჯამებაც მიუთითებს. CI-ში ამის ნაცვლად გამოსვლის კოდი (exit code) წარმოადგენს ზღუდეს, რათა პაიპლაინი მკაცრი იყოს, ადამიანმა კი კონტროლი შეინარჩუნოს.

ორი ადგილობრივი გაშვების გარემო, ორივე რეალური

WordPress Playground არის ნაგულისხმები: PHP კომპილირებულია WebAssembly-ში და მუშაობს Node-ის შიგნით, ასე რომ, ლეპტოპი, რომელზეც მხოლოდ Node არის დაინსტალირებული, ნულოვანი წერტილიდან მუშა WordPress-მდე გადადის დაახლოებით იმ დროში, რაც ამ წინააღმდეგობის (ანუ წინადადების) წაკითხვას სჭირდება.

როდესაც გჭირდებათ მკობი PHP — ისეთი გაფართოება, როგორიცაა imagick, ან ნამდვილი MySQL — გადაეცით --runtime docker და მის ნაცვლად მიიღებთ php-fpm და MariaDB კონტეინერებს. ორივე იმავე პროექტიდან ერთსა და იმავე ფაილებს ამუშავებს, ამიტომ მათ შორის გადართვა ცვლის მხოლოდ ძრავს და მეტს არაფერს.

დანარჩენი ყველაფერი უკვე პანელში ხდება

Zinnector® აებულია მართვის პანელის იდენტურ საჯარო API-ზე, ამიტომ ყველაფერი, რისი გაკეთებაც პანელს შეუძლია, მასაც ძალუძს — და თითოეული ბრძანება OpenAPI სპეციფიკაციის დოკუმენტირებული ოპერაციაა და არა პირადი საბოლოო წერტილი.

საიტები და განთავსებები

სიტების სია, პლატფორმის მიერ თითოეულის შესახებ არსებული ინფორმაციის წაკითხვა, ხელახლა განთავსება, განთავსების ისტორიისა და აგების ჟურნალების წაკითხვა.

დომენები, DNS და ფოსტა

დომენების სია, DNS ჩანაწერების წაკითხვა და შეცვლა ჩანაწერის ჩაწერამდე ჩვენებით, და საფოსტო სერვისების წაკითხვა.

PHP, კვოტა, მონაცემთა ბაზა და ჟურნალები

PHP ვერსიების შეცვლა, დისკისა და ინოდების გამოყენების შემოწმება თქვენი ტარიფის ლიმიტებთან მიმართებაში, phpMyAdmin-ში ერთჯერადი ბმულების მიღება და access და error ლოგების რეალურ დროში თვალყურის დევნება.

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-ის მხარდაჭერის ვადა (end of life) და რეალურად აამოქმედა თუ არა ის სერვერმა, თქვენი პროექტის ზომა და ფაილების რაოდენობა დისკზე და inode-ებზე დარჩენილ თავისუფალ ადგილთან შედარებით, WordPress-ის ვერსიები თითოეულ მხარეს, დაასრულა თუ არა სლოტმა კონფიგურირება (provisioning) და არის თუ არა დაკავშირებული git რეპოზიტორია დეპლოისთვის. ყველაფერი, რისი შემოწმებაც ვერ მოხერხდა, აღინიშნება როგორც შეუმოწმებელი და არ ჩაითვლება წარმატებულად.

შეუძლია თუ არა მას ჩემი განთავსების შეჩერება?

არა, და ეს განზრახ არის. Pre-flight გაფრთხილებთ და გატარებთ — `--force` ნებისმიერ აღმოჩენილ პრობლემას გვერდს უვლის და ისე აქვეყნებს. თქვენს საიტზე ისეთ რაღაცებს იცნობთ, რასაც შემოწმების ინსტრუმენტი ვერ ხვდება, ხოლო ინსტრუმენტი, რომელიც გამოქვეყნებაზე უარს ამბობს, არის ინსტრუმენტი, რომელსაც მომხმარებლები შლიან.

ჩmanioლი ჩემი API გასაღები უსაფრთხოდ?

გაღებადი არასდროს იკითხება ბრძანების სტრიქონიდან — მხოლოდ მოთხოვნიდან ან მილსადენით მიწოდებული სტანდარტული შეყვანიდან (stdin) — ამიტომ ის ვერ მოხვდება თქვენი გარსის (shell) ისტორიაში ან პროცესების სიაში. ის ინახება თქვენს საკუთარ კონფიგურაციის დირექტორიაში, ფაილის რეჟიმით 600, და Zinnector® ყოველ ჯერზე, როცა წერს, კვლავ ამტკიცებს ამ უფლებებს.

შეგიძლიათ გამოიყენოთ ის CI-ში?

დიახ. დააყენეთ `ZINNECTOR_TOKEN` და ყველა ბრძანება მიიღებს `--json`-ს. ადამიანისთვის განკუთვნილი გამოტანა მიდის stderr-ში, ხოლო მონაცემები — stdout-ში, ამიტომ კონვეიერები სუფთა რჩება. `zinnector check` აბრუნებს არანულოვან გამოსვლის კოდს, როდესაც რაღაცას პოულობს, ამიტომ ის მუშაობს როგორც კონვეიერის კარიბჭე, ხოლო `--strict` ასევე აფიქსირებს წარუმატებლობას, როდესაც შედარება ვერ ხერხდება.

დააინსტალირეთ და გაუშვით საიტი შემდეგი ერთი წუთის განმავლობაში

გაუშვით npm install -g zinnector ან სცადეთ ერთხელ ბრძანებით npx zinnector new my-site. უფასოა, აქვს MIT ლიცენზია და აგებულია საჯარო API-ზე. ააწყვეთ პროექტი, გაუშვით ის ლოკალურად Docker-ის გარეშე და შეამოწმეთ განთავსებამდე.

დოკუმენტაციის წაკითხვა