Zinnector®

L'interface de ligne de commande développeur pour l'hébergement WordPress

Zinnector® crée des sites WordPress en local sans autre installation que Node (pas de Docker, pas de MAMP), puis compare votre création à l'espace d'hébergement sur lequel vous vous apprêtez à déployer et vous indique ce qui ne correspondra pas, avant votre envoi. Installez-le avec npm install -g zinnector. C'est gratuit, sous licence MIT et développé sur la même API publique que tout le reste ici.

Cinq commandes, et celle du milieu est la clé

La plupart des CLI d'hébergement commencent au déploiement. Zinnector® commence avant cela — il construit le site avec vous, puis il vérifie votre travail par rapport à la machine sur laquelle vous vous apprêtez à l'envoyer. L'écart entre « ça a fonctionné sur mon ordinateur portable » et « ça fonctionne sur le serveur » est là où s'envolent les après-midis, et cet écart est mesurable.

Nouveau zinnector

Créez un site, une extension ou un thème à blocs qui démarre immédiatement. Pas de fichiers factices, pas de TODOs : l'extension s'active et le thème peut être sélectionné dès sa création.

zinnector dev

Un véritable WordPress sur votre machine en quelques secondes, faisant fonctionner vos propres extensions et thèmes, sans Docker ni PHP dans votre variable PATH. Choisissez n'importe quelle version de PHP de 5.2 à 8.5 pour le développement.

Vérification zinnector

Le contrôle préalable. Compare ce que vous avez construit avec l'emplacement sur lequel vous vous apprêtez à déployer et identifie chaque divergence – ainsi que chaque vérification qu'il n'a pas pu effectuer – avant la publication.

Poussée zinnector

Avant le décollage, poussez vos commits, lancez le déploiement et suivez-le jusqu'à son terme. En cas d'échec, le journal de compilation n'est qu'à une commande de distance.

zinnector ai

Interrogez l'assistant depuis le terminal, avec votre projet et votre site comme contexte. Il s'exécute sur la plateforme avec votre propre compte, de sorte qu'aucune clé de modèle n'est jamais stockée sur votre machine.

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.

Le contrôle préalable, en détail

Vous avez développé sur PHP 8.3. L'emplacement utilise la version 8.1. Rien ne vous prévient jusqu'à ce que le site affiche une page blanche. C'est le problème pour lequel cette commande existe, et c'est celui que le propriétaire de cette plateforme a demandé explicitement. Zinnector® lit les deux environnements et les compare côte à côte, puis vous permet de déployer malgré tout, car vous pourriez avoir une raison de le faire.

PHP, évalué en toute objectivité

Un écart de version majeure est signalé comme critique car il casse immanquablement un site, tandis qu'un écart mineur l'est moins. Tout qualifier de critique ne fait qu'inciter les utilisateurs à ignorer l'avertissement.

Espace disque et nombre de fichiers, séparément

Un arbre WordPress se compose de dizaines de milliers de petits fichiers, et un site peut épuiser son quota d'inodes tout en restant bien en dessous de sa limite de disque. Les deux sont vérifiés par rapport à ce qui reste réellement sur l'espace alloué, et non par rapport au forfait.

Ne pas pouvoir vérifier est une réponse en soi

Une vérification qui ne peut voir son sujet se signale comme non vérifiée, jamais validée. Une exécution propre indique combien d'éléments elle n'a pas pu vérifier, car un faux sentiment de sécurité est le seul que personne ne remet en question.

Avertit, ne bloque jamais

Chaque anomalie peut être outrepassée avec --force, et le résumé le mentionne. Dans une CI, le code de sortie fait office de filtre à la place, ce qui permet à un pipeline d'être strict tout en laissant le contrôle à un opérateur.

Deux environnements d'exécution locaux, tous deux réels

WordPress Playground est la valeur par défaut : du PHP compilé en WebAssembly, s'exécutant dans Node, si bien qu'un ordinateur portable sur lequel seul Node est installé passe de rien à un WordPress opérationnel en environ le temps qu'il faut pour lire cette phrase.

Lorsque vous avez besoin d'un PHP natif — une extension telle que imagick, d'un véritable MySQL — passez --runtime docker et obtenez des conteneurs php-fpm et MariaDB à la place. Tous deux servent les mêmes fichiers à partir du même projet, de sorte que le passage de l'un à l'autre ne modifie que le moteur et rien d'autre.

Tout le reste se fait déjà dans le panneau

Zinnector® repose sur la même API publique que le tableau de bord, ce qui lui permet de réaliser toutes les actions du panneau. De plus, chaque commande correspond à une opération documentée dans la spécification OpenAPI plutôt qu'à un point de terminaison privé.

Sites et déploiements

Lister les sites, lire tout ce que la plateforme sait sur l'un d'eux, redéployer et consulter l'historique des déploiements ainsi que les journaux de build.

Domaines, DNS et messagerie

Lister les domaines, consulter et modifier les enregistrements DNS avec l'enregistrement affiché avant son écriture, et consulter vos services de messagerie.

PHP, quota, base de données et journaux

Changez de version de PHP, consultez l'utilisation du disque et des inodes par rapport aux limites de votre forfait, obtenez des liens à usage unique vers phpMyAdmin et suivez les journaux d'accès et d'erreurs en temps réel.

WP-CLI et opérations en lot

Exécutez des commandes WP-CLI figurant sur liste blanche sur un site, et purgez les caches ou lancez des analyses de logiciels malveillants sur toute une sélection en un seul appel plutôt qu'un par un.

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.

Questions

Dois-je être client de Zinn Digital® pour l'utiliser ?

Non. `zinnector new` et `zinnector dev` ne nécessitent aucun compte : créez la structure d'un plugin, d'un thème ou d'un site complet et exécutez-le localement, gratuitement et indéfiniment. Une clé API n'est requise que pour les commandes qui communiquent avec votre hébergement.

Avez-vous besoin de Docker ?

Non pour le runtime par défaut. WordPress Playground compile PHP en WebAssembly et s'exécute dans Node, donc `zinnector dev` lance un vrai WordPress en quelques secondes sans rien installer d'autre. Si vous avez besoin d'un PHP natif — pour tester une extension telle que imagick ou ionCube — `--runtime docker` fournit à la place des conteneurs php-fpm et MariaDB. Les deux sont pris en charge ; aucun n'est un plan B.

Que compare réellement la vérification préalable ?

Votre version PHP locale par rapport à celle de l'emplacement, si l'emplacement peut même passer à la version sur laquelle vous avez construit, si le PHP de l'emplacement a dépassé sa fin de vie et si la machine l'a réellement appliqué, la taille de votre projet et le nombre de fichiers par rapport à la marge de disque et d'inodes restante, les versions de WordPress de chaque côté, si l'emplacement a terminé son provisionnement, et si un dépôt git est connecté pour le déploiement. Tout ce qui n'a pas pu être vérifié est signalé comme non vérifié plutôt que d'être compté comme réussi.

Est-ce que cela peut empêcher mon déploiement ?

Non, et c'est un choix délibéré. Pre-flight prévient et vous laisse passer — `--force` déploie malgré toutes les anomalies trouvées. Vous connaissez des choses sur votre propre site qu'un vérificateur ignore, et un outil qui refuse de déployer est un outil que l'on désinstalle.

Ma clé d'API est-elle en sécurité ?

La clé n'est jamais lue depuis la ligne de commande — uniquement à partir d'une invite ou d'une entrée standard acheminée — afin qu'elle ne puisse pas se retrouver dans l'historique de votre shell ou dans une liste de processus. Elle est stockée dans votre propre répertoire de configuration avec le mode de fichier 600, et Zinnector® réaffirme ces permissions à chaque écriture.

Puis-je l'utiliser en CI ?

Oui. Définissez `ZINNECTOR_TOKEN`, et chaque commande accepte `--json`. Les messages textuels vont vers stderr et les données vers stdout, ce qui permet de garder les tubes propres. `zinnector check` renvoie un code de sortie non nul lorsqu'il trouve quelque chose, il fonctionne donc comme un filtre de pipeline, et `--strict` échoue également lorsqu'une comparaison n'a pas pu être effectuée.

Installez-le et lancez un site dans la minute qui suit

Exécutez npm install -g zinnector, ou essayez-le une fois avec npx zinnector new my-site. Gratuit, sous licence MIT et construit sur l'API publique. Générez un projet, exécutez-le localement sans Docker, et effectuez un contrôle préalable avant de le déployer.

Consulter la documentation