Zinnector®

La CLI per sviluppatori per l'hosting WordPress

Zinnector® compila WordPress in locale senza installare altro che Node (niente Docker o MAMP), verifica ciò che hai creato rispetto allo spazio di hosting su cui stai per effettuare il deployment e ti segnala eventuali incompatibilità prima del push. Installalo con npm install -g zinnector. È gratuito, con licenza MIT e basato sulla stessa API pubblica di tutto il resto qui presente.

Cinque comandi, e quello centrale è il punto

La maggior parte delle CLI di hosting inizia al momento del deploy. Zinnector® inizia prima: crea il sito insieme a Lei e poi verifica il Suo lavoro confrontandolo con la macchina a cui sta per inviarlo. La distanza tra "ha funzionato sul mio computer portatile" e "funziona sul server" è il tempo che se ne va, e questa distanza è misurabile.

nuovo zinnector

Crea un sito, un plugin o un tema a blocchi che si avvia immediatamente. Nessun file segnaposto, nessun TODO: il plugin si attiva e il tema può essere selezionato nel momento stesso in cui viene creato.

zinnector dev

Un vero WordPress sulla Sua macchina in pochi secondi, per testare i Suoi plugin e temi, senza Docker e senza PHP nel Suo PATH. Scelga qualsiasi versione di PHP dalla 5.2 alla 8.5 per lo sviluppo.

controllo zinnector

Il controllo preliminare. Confronta ciò che hai creato con lo spazio in cui stai per effettuare il deployment e segnala ogni discrepanza, e ogni controllo che non è stato possibile eseguire, prima della pubblicazione.

push di zinnector

Prima del decollo, invii i Suoi commit, avvii il rilascio e ne segua il completamento fino alla fine. In caso di errore, il log di compilazione dista un solo comando.

zinnector ai

Interroga l'assistente dal terminale, avendo come contesto il Suo progetto e il Suo sito. Funziona sulla piattaforma con il Suo account, quindi nessuna chiave di modello viene mai memorizzata sul Suo computer.

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.

I dettagli del pre-volo

Hai creato su PHP 8.3. Lo slot esegue la versione 8.1. Nulla ti avvisa finché il sito diventa bianco. È il problema per cui esiste questo comando, ed è quello che il proprietario di questa piattaforma ha espressamente richiesto. Zinnector® legge entrambi gli ambienti e li confronta fianco a fianco, per poi permetterti comunque di effettuare il deployment, perché potresti avere un motivo per farlo.

PHP, valutato onestamente

Una differenza di versione principale è segnalata come grave perché interrompe sicuramente un sito; una differenza minore viene segnalata con un livello inferiore. Classificare tutto come critico serve solo a insegnare alle persone a ignorare l'avviso.

Spazio disco e numero di file, separatamente

Un albero WordPress è composto da decine di migliaia di piccoli file e un sito può esaurire il proprio limite di inode pur rimanendo ben al di sotto dello spazio su disco consentito. Entrambi vengono verificati rispetto a ciò che rimane effettivamente sullo slot, non rispetto al piano.

“Impossibile verificare” è già una risposta

Un controllo che non riesce a vedere il proprio soggetto risulta non controllato, mai superato. Un'esecuzione pulita indica quanti elementi non ha potuto verificare, perché un falso via libera è l'unico che nessuno guarda due volte.

Avvisa, non blocca mai

Ogni risultato è sostituibile con --force, e il riepilogo lo indica. Nelle CI il codice di uscita fa invece da sbarramento, così una pipeline può essere rigorosa mentre una persona mantiene il controllo.

Due runtime locali, entrambi reali

WordPress Playground è l'impostazione predefinita: PHP compilato in WebAssembly ed eseguito all'interno di Node, in modo che un computer portatile con nient'altro che Node installato passi da zero a un WordPress in esecuzione nel tempo necessario per leggere questa frase.

Quando hai bisogno di un PHP nativo — un'estensione come imagick, un vero MySQL — passa --runtime docker e ottieni invece container php-fpm e MariaDB. Entrambi servono gli stessi file dallo stesso progetto, quindi passare dall'uno all'altro cambia il motore e nient'altro.

Tutto il resto lo fai già nel pannello

Zinnector® è basato sulla stessa API pubblica della dashboard, quindi tutto ciò che il pannello può fare, lo può fare anche lui: ogni comando è un'operazione documentata nella specifica OpenAPI anziché un endpoint privato.

Siti e distribuzioni

Elenca i siti, leggi tutto ciò che la piattaforma sa su uno di essi, ridistribuisci e leggi la cronologia dei rilasci e i log di compilazione.

Domini, DNS e posta

Elenca i domini, leggi e modifica i record DNS con il record mostrato prima che venga scritto e leggi i Suoi servizi di posta.

PHP, quota, database e log

Modifichi le versioni di PHP, controlli l'utilizzo del disco e degli inode rispetto a quanto previsto dal Suo piano, ottenga link monouso per phpMyAdmin e visualizzi in tempo reale i log degli accessi e degli errori.

WP-CLI e operazioni in blocco

Esegui comandi WP-CLI inclusi nell'elenco consentito su un sito e svuota le cache o avvia scansioni malware su un'intera selezione con una sola chiamata anziché una per sito.

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.

Domande

Devo essere cliente di Zinn Digital® per poterlo utilizzare?

No. `zinnector new` e `zinnector dev` non richiedono alcun account: crei la struttura di un plugin, di un tema o di un intero sito e lo esegui localmente, gratuitamente, per sempre. Una chiave API è necessaria solo per i comandi che comunicano con il Suo hosting.

Ha bisogno di Docker?

Non per il runtime predefinito. WordPress Playground compila PHP in WebAssembly e viene eseguito all'interno di Node, quindi `zinnector dev` avvia un vero WordPress in pochi secondi senza nient'altro installato. Se ti serve un PHP nativo — per testare un'estensione come imagick o ionCube — `--runtime docker` fornisce invece container php-fpm e MariaDB. Entrambi sono supportati; nessuno dei due è un ripiego.

Cosa confronta effettivamente il controllo preliminare?

La versione PHP locale rispetto a quella dello slot, se lo slot è in grado di passare alla versione su cui hai effettuato la compilazione, se il PHP dello slot ha superato il fine vita e se la macchina lo ha effettivamente applicato, le dimensioni del progetto e il conteggio dei file rispetto allo spazio disco e agli inode rimasti, le versioni di WordPress su entrambi i lati, se lo slot ha completato il provisioning e se è connesso un repository git da cui effettuare il deployment. Tutto ciò che non è stato possibile verificare viene segnalato come non verificato anziché essere considerato superato.

Può impedire la mia distribuzione?

No, e questa è una scelta deliberata. Il controllo pre-volo avvisa e consente di procedere: `--force` effettua il deployment ignorando qualsiasi segnalazione. Lei conosce sul proprio sito aspetti che un sistema di controllo non può conoscere, e uno strumento che si rifiuta di effettuare il deployment è uno strumento che gli utenti finiscono per disinstallare.

La mia chiave API è al sicuro?

La chiave non viene mai letta dalla riga di comando, bensì esclusivamente da un prompt o tramite input standard reindirizzato, in modo da evitare che finisca nella cronologia della shell o nell'elenco dei processi. Viene memorizzata nella vostra directory di configurazione con modalità file 600, e Zinnector® ripristina tali permessi a ogni scrittura.

Posso usarlo in CI?

Sì. Imposta `ZINNECTOR_TOKEN` e ogni comando accetta `--json`. L'output per gli utenti va su stderr e i dati su stdout, in modo che le pipe rimangano pulite. `zinnector check` termina con un codice diverso da zero quando trova qualcosa, quindi funziona come un blocco nella pipeline, e `--strict` restituisce un errore anche quando non è stato possibile effettuare un confronto.

Installalo e avvia un sito nel giro di un minuto

Esegui npm install -g zinnector, oppure prova una volta con npx zinnector new my-site. Gratuito, con licenza MIT e basato sulle API pubbliche. Crea la struttura di un progetto, eseguilo localmente senza Docker ed effettua un controllo preliminare prima di distribuirlo.

Leggi la documentazione