Zinnector®

CLI разработчика для хостинга WordPress

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

Редактор кода в браузере с деревом файлов рядом с открытым файлом и курсором в нем.

Пять команд, и средняя является ключевой

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

zinnector new

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

zinnector dev

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

Проверка zinnector

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

zinnector push

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

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

Двусторонняя синхронизация между актуальными файлами размещенного сайта и его репозиторием: проверяйте статус, включайте синхронизацию, фиксируйте изменения сайта или выбирайте приоритетную сторону.

zinnector 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 mail

Вывести список почтовых служб.

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. Поддерживаются оба варианта; ни один из них не является резервным.

Что именно сравнивает предварительная проверка?

Ваша локальная версия PHP по сравнению с версией слота, возможность слота переключиться на версию, на которой велась разработка, истек ли срок поддержки PHP в слоте и применила ли его машина фактически, размер вашего проекта и количество файлов по отношению к оставшемуся ресурсу диска и inode, версии WordPress на каждой стороне, завершено ли выделение ресурсов слота и подключен ли репозиторий git для развертывания. Все, что не удалось проверить, отмечается как непроверенное, а не считается успешным.

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

Нет, и это сделано намеренно. Pre-flight предупреждает и пропускает вас дальше — `--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 и выполните предварительную проверку перед развертыванием.

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