Zinnector®

Το CLI προγραμματιστή για φιλοξενία WordPress

Το Zinnector® χτίζει το WordPress τοπικά χωρίς καμία άλλη εγκατάσταση εκτός από το Node —ούτε Docker, ούτε MAMP—, στη συνέχεια ελέγχει αυτό που φτιάξατε σε σύγκριση με τον χώρο φιλοξενίας στον οποίο πρόκειται να κάνετε ανάπτυξη και σας ενημερώνει τι δεν θα ταιριάζει, πριν κάνετε push. Εγκαταστήστε το με την εντολή npm install -g zinnector. Είναι δωρεάν, με άδεια MIT και βασίζεται στο ίδιο δημόσιο API με οτιδήποτε άλλο εδώ.

Πέντε εντολές, και η μεσαία είναι το ζητούμενο

Τα περισσότερα CLI φιλοξενίας ξεκινούν στην ανάπτυξη. Το Zinnector® ξεκινάει νωρίτερα — χτίζει τον ιστότοπο μαζί σας και, στη συνέχεια, ελέγχει τη δουλειά σας σε σχέση με το μηχάνημα στο οποίο πρόκειται να τον στείλετε. Το χάσμα μεταξύ «έτρεξε στον φορητό υπολογιστή μου» και «τρέχει στον διακομιστή» είναι ο χρόνος που χάνεται, και αυτό το χάσμα είναι μετρήσιμο.

νέο zinnector

Δημιουργήστε τη δομή ενός ιστότοπου, ενός πρόσθετου ή ενός θέματος μπλοκ που εκκινεί αμέσως. Κανένα αρχείο κράτησης θέσης, καμία εκκρεμότητα — το πρόσθετο ενεργοποιείται και το θέμα μπορεί να επιλεγεί τη στιγμή που θα δημιουργηθεί.

zinnector dev

Ένα πραγματικό WordPress στον υπολογιστή σας σε λίγα δευτερόλεπτα, που εξυπηρετεί τα δικά σας πρόσθετα και θέματα, χωρίς Docker και χωρίς PHP στη διαδρομή σας (PATH). Επιλέξτε οποιαδήποτε PHP από 5.2 έως 8.5 για την ανάπτυξή σας.

έλεγχος zinnector

Ο έλεγχος προ-αποστολής. Συγκρίνει αυτό που δημιουργήσατε με τη θέση στην οποία πρόκειται να κάνετε ανάπτυξη και επισημαίνει κάθε ανατιστοιχία —και κάθε έλεγχο που δεν μπόρεσε να πραγματοποιήσει— προτού προχωρήσετε σε δημοσίευση.

ώθηση zinnector

Προετοιμαστείτε, κάντε push τα commits σας, ενεργοποιήστε την ανάπτυξη (deploy) και παρακολουθήστε την μέχρι να ολοκληρωθεί. Εάν αποτύχει, το αρχείο καταγραφής της μεταγλώττισης (build log) απέχει μόλις μία εντολή.

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. Το slot εκτελεί την 8.1. Τίποτα δεν σας προειδοποιεί μέχρι ο ιστότοπος να βγάλει λευκή οθόνη. Αυτό είναι το πρόβλημα για το οποίο υπάρχει αυτή η ενέργεια, και είναι αυτό που ζήτησε ονομαστικά ο ιδιοκτήτης αυτής της πλατφόρμας. Το Zinnector® διαβάζει και τα δύο περιβάλλοντα και τα φέρνει δίπλα-δύπλατα — στη συνέχεια σας επιτρέπει να κάνετε deployment ούτως ή άλλως, επειδή μπορεί να έχετε κάποιο λόγο.

PHP, βαθμολογημένο με ειλικρίνεια

Ένα κενό κύριας έκδοσης επισημαίνεται ως υψηλής σοβαρότητας επειδή σταθερά προκαλεί βλάβη σε έναν ιστότοπο· ένα μικρότερο κενό επισημαίνεται χαμηλότερα. Η αξιολόγηση των πάντων ως κρίσιμων απλώς μαθαίνει στους ανθρώπους να αγνοούν την προειδοποίηση.

Χώρος δίσκου και πλήθος αρχείων, ξεχωριστά

Μια δομή WordPress αποτελείται από δεκάδες χιλιάδες μικρά αρχεία, και ένας ιστότοπος μπορεί να εξαντλήσει το όριο των inode του παρόλο που βρίσκεται πολύ κάτω από το όριο του δίσκου του. Και τα δύο ελέγχονται σε σχέση με ό,τι έχει απομείνει πραγματικά στον χώρο, και όχι σε σχέση με το πρόγραμμα.

«Δεν ήταν δυνατός ο έλεγχος» είναι η απάντησή του

Ένας έλεγχος που δεν μπορεί να δει το αντικείμενο του αναφέρεται ως μη ελεγμένος, ποτέ ως επιτυχημένος. Μια καθαρή εκτέλεση δηλώνει πόσα πράγματα δεν μπόρεσε να επαληθεύσει, επειδή μια ψευδής ένδειξη επιτυχίας είναι αυτή που κανείς δεν εξετάζει διπλά.

Προειδοποιεί, ποτέ δεν αποκλείει

Κάθε εύρημα μπορεί να παρακαμφθεί με την παράμετρο --force, και η σύνοψη το αναφέρει. Στο CI, ο κωδικός εξόδου αποτελεί τον έλεγχο, ώστε ένα pipeline να μπορεί να είναι αυστηρό ενώ ο χρήστης διατηρεί τον έλεγχο.

Δύο τοπικά runtimes, και τα δύο πραγματικά

Το WordPress Playground είναι η προεπιλογή: η PHP μεταγλωττισμένη σε WebAssembly, η οποία εκτελείται μέσα στο Node, οπότε ένας φορητός υπολογιστής χωρίς τίποτα άλλο εκτός από εγκατεστημένο το Node μεταβαίνει από το μηδέν σε ένα λειτουργικό WordPress στον χρόνο που χρειάζεται περίπου για να διαβάσετε αυτήν την πρόταση.

Όταν χρειάζεστε μια εγγενή PHP —μια επέκταση όπως το imagick, μια πραγματική MySQL— περάστε το --runtime docker και αποκτήστε αντίθετα κοντέινερ php-fpm και MariaDB. Και τα δύο εξυπηρετούν τα ίδια αρχεία από το ίδιο έργο, επομένως η εναλλαγή μεταξύ τους αλλάζει τη μηχανή και τίποτα άλλο.

Όλα τα υπόλοιπα τα κάνετε ήδη στον πίνακα ελέγχου

Το Zinnector® είναι βασισμένο στο ίδιο δημόσιο API με τον πίνακα ελέγχου, επομένως οτιδήποτε μπορεί να κάνει το πάνελ, μπορεί να το κάνει κι αυτό — και κάθε εντολή είναι μια τεκμηριωμένη λειτουργία στις προδιαγραφές OpenAPI και όχι ένα ιδιωτικό τελικό σημείο.

Ιστότοποι και αναπτύξεις

Καταχωρίστε ιστότοπους, διαβάστε όσα γνωρίζει η πλατφόρμα για έναν από αυτούς, επανεγκαταστήστε και διαβάστε το ιστορικό εγκατάστασης και τα αρχεία καταγραφής δόμησης.

Τομείς, DNS και αλληλογραφία

Καταχωρίστε domains, διαβάστε και αλλάξτε εγγραφές DNS με την εγγραφή να εμφανίζεται πριν γραφτεί, και διαβάστε τις υπηρεσίες αλληλογραφίας σας.

PHP, όριο, βάση δεδομένων και αρχεία καταγραφής

Αλλάξτε εκδόσεις PHP, ελέγξτε τη χρήση δίσκου και inode σε σχέση με όσα επιτρέπει το πρόγραμμά σας, αποκτήστε συνδέσμους μίας χρήσης στο phpMyAdmin και παρακολουθήστε τα αρχεία καταγραφής πρόσβασης και σφαλμάτων (access και error logs).

WP-CLI και μαζικές ενέργειες

Εκτελέστε εντολές WP-CLI που περιλαμβάνονται στη λίστα επιτρεπόμενων σε έναν ιστότοπο και εκκαθαρίστε τις κρυφές μνήμες (caches) ή ξεκινήστε σαρώσεις κακόβουλου λογισμικού σε μια ολόκληρη επιλογή με μία μόνο κλήση αντί για μία ανά ιστότοπο.

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 σε σύγκριση με εκείνη του slot, το αν το slot μπορεί καν να μεταβεί στην έκδοση που χρησιμοποιήσατε, το αν η PHP του slot έχει λήξει και το αν το μηχάνημα την έχει όντως εφαρμόσει, το μέγεθος του έργου σας και ο αριθμός των αρχείων σε σχέση με τον διαθέσιμο χώρο σε δίσκο και inodes, οι εκδόσεις του WordPress σε κάθε πλευρά, το αν το slot έχει ολοκληρώσει την προετοιμασία και το αν υπάρχει συνδεδεμένο αποθετήριο git για την ανάπτυξη. Οτιδήποτε δεν μπόρεσε να ελεγχθεί αναφέρεται ως μη ελεγμένο αντί να θεωρηθεί επιτυχές.

Μπορεί να με εμποδίσει να κάνω ανάπτυξη;

Όχι, και αυτό είναι εσκεμμένο. Ο έλεγχος προ-πτήσης προειδοποιεί και σας επιτρέπει να προχωρήσετε — η παράμετρος `--force` πραγματοποιεί ανάπτυξη παρακάμπτοντας οποιοδήποτε εύρημα. Γνωρίζετε πράγματα για τον ιστότοπό σας που ένας έλεγχος δεν γνωρίζει, και ένα εργαλείο που αρνείται να πραγματοποιήσει ανάπτυξη είναι ένα εργαλείο που οι χρήστες απεγκαθistΟΥΝ.

Είναι ασφαλές το κλειδί API μου;

Το κλειδί δεν διαβάζεται ποτέ από τη γραμμή εντολών —μόνο από προτροπή (prompt) ή διοχετευμένη είσοδο (piped stdin)— επομένως δεν μπορεί να καταλήξει στο ιστορικό του κελύφους σας ή σε μια λίστα διεργασιών. Αποθηκεύεται στον δικό σας κατάλογο ρυθμίσεων με δικαιώματα αρχείου 600, και το Zinnector® επιβάλλει εκ νέου αυτά τα δικαιώματα κάθε φορά που γράφει.

Μπορώ να το χρησιμοποιήσω στο CI;

Ναι. Ορίστε το `ZINNECTOR_TOKEN` και κάθε εντολή δέχεται το `--json`. Η έξοδος για ανθρώπους πηγαίνει στο stderr και τα δεδομένα στο stdout, ώστε οι σωληνώσεις (pipes) να παραμένουν καθαρές. Το `zinnector check` εξέρχεται με μη μηδενικό κωδικό όταν εντοπίζει κάτι, οπότε λειτουργεί ως πύλη σωλήνωσης, και το `--strict` αποτυγχάνει επίσης όταν δεν ήταν δυνατή η σύγκριση.

Εγκαταστήστε το και εκτελέστε έναν ιστότοπο το επόμενο λεπτό

Εκτελέστε npm install -g zinnector ή δοκιμάστε το μία φορά με npx zinnector new my-site. Δωρεάν, με άδεια MIT και βασισμένο στο δημόσιο API. Δημιουργήστε τη δομή ενός έργου, εκτελέστε το τοπικά χωρίς Docker και ελέγξτε το πριν το αναπτύξετε.

Διαβάστε την τεκμηρίωση