Zinnector®

Интерфейс командной строки разработчика для хостинга WordPress

Zinnector® позволяет локально создавать сайты на WordPress, не устанавливая ничего, кроме Node (без Docker и MAMP), а затем сравнивает созданный сайт с тем слотом хостинга, на который вы собираетесь выполнить развертывание, и сообщает о возможных несоответствиях перед отправкой. Установите его с помощью команды npm install -g zinnector. Он бесплатен, распространяется под лицензией MIT и создан на основе того же публичного API, что и все остальное здесь.

Пять команд, и средняя из них — суть

Большинство интерфейсов командной строки хостинга начинают работу с развертывания. Zinnector® начинает ее раньше: он создает сайт вместе с вами, а затем проверяет вашу работу на соответствие машине, на которую вы собираетесь его отправить. Пропасть между фразами «оно работало на моем ноутбуке» и «оно работает на сервере» съедает целые дни, и эту пропасть можно измерить.

zinnector новый

Создайте каркас сайта, плагина или блочной темы, которые запускаются немедленно. Никаких файлов-заглушек, никаких задач «TODO» — плагин активируется, а тему можно выбрать в тот самый момент, когда она создана.

zinnector dev

Настоящий WordPress на вашем компьютере за считанные секунды, с поддержкой ваших собственных плагинов и тем, без Docker и без PHP в переменной PATH. Выберите любую версию PHP от 5.2 до 8.5 для разработки.

Проверка zinnector

Предполетная проверка. Сравнивает созданный вами сайт с выделенным для публикации слотом и указывает на каждое несоответствие — а также на все проверки, которые не удалось выполнить — перед отправкой.

синхронизация zinnector

Перед вылетом отправьте коммиты в репозиторий, запустить развертывание и дождитесь его завершения. Если что-то пойдет не так, журнал сборки доступен всего в одной команде.

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 состоит из десятков тысяч маленьких файлов, и сайт может исчерпать лимит инодов, даже если объем используемого диска значительно ниже тарифного плана. Оба показателя проверяются по реально оставшемуся пространству на слоте, а не по тарифу.

«Не удалось проверить» — это уже ответ

Проверка, не видящая своего объекта, сообщает о непроверенном и никогда не пройденном. Чистый запуск сообщает, сколько вещей он не смог проверить, потому что фальшивый зеленый свет — это то, на что никто не смотрит дважды.

Предупреждает, но не блокирует

Любое обнаружение можно переопределить с помощью --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 в слоте и применила ли его машина на самом деле, размер вашего проекта и количество файлов по сравнению с оставшимся дисковым пространством и лимитом инодов, версии WordPress с каждой стороны, завершено ли выделение ресурсов слота и подключен ли git-репозиторий для развертывания. Всё, что не удалось проверить, отображается как непроверенное, а не засчитывается как успешное прохождение.

Может ли это помешать мне выполнить развертывание?

Нет, и это сделано намеренно. Предполетная проверка выдает предупреждения и пропускает вас — параметр `--force` развертывает проект, игнорируя любые обнаруженные проблемы. Вы знаете о своем сайте то, чего проверка не знает, а инструмент, который отказывается выполнять деплой, — это инструмент, который пользователи удаляют.

Безопасен ли мой ключ API?

Ключ никогда не считывается из командной строки — только из запроса или через перенаправление ввода (stdin), поэтому он не может попасть в историю вашей оболочки или в список процессов. Он хранится в вашем собственном каталоге конфигурации с правами доступа 600, и Zinnector® повторно устанавливает эти права при каждой записи.

Могу ли я использовать это в CI?

Да. Установите `ZINNECTOR_TOKEN`, и каждая команда будет принимать флаг `--json`. Текст для пользователя выводится в stderr, а данные — в stdout, поэтому пайпы остаются чистыми. Команда `zinnector check` завершается с ненулевым кодом при обнаружении проблем, что позволяет использовать ее в качестве проверки в пайплайне, а флаг `--strict` также вызывает сбой, если сравнение выполнить не удалось.

Установите его и запустите сайт в следующую минуту

Запустите npm install -g zinnector или попробуйте один раз с npx zinnector new my-site. Бесплатно, под лицензией MIT и на базе публичного API. Создайте каркас проекта, запустите его локально без Docker и проведите предстартовую проверку перед развертыванием.

Читать документацию