Zinnector®

Giao diện dòng lệnh (CLI) của nhà phát triển dành cho lưu trữ WordPress

Zinnector® xây dựng WordPress cục bộ mà không cần cài đặt gì ngoài Node — không Docker, không MAMP — sau đó kiểm tra những gì bạn đã xây dựng đối với gói lưu trữ mà bạn sắp triển khai và cho bạn biết điều gì sẽ không khớp, trước khi bạn đẩy lên. Hãy cài đặt nó bằng npm install -g zinnector. Nó miễn phí, được cấp phép theo MIT và được xây dựng trên cùng một API công khai như mọi thứ khác ở đây.

Năm lệnh và lệnh ở giữa mới là trọng tâm

Hầu hết các CLI lưu trữ bắt đầu từ việc triển khai. Zinnector® bắt đầu trước đó — nó xây dựng trang web cùng bạn, rồi kiểm tra công việc của bạn với cỗ máy mà bạn sắp chuyển nó tới. Khoảng cách giữa “nó chạy trên máy tính xách tay của tôi” và “nó chạy trên máy chủ” là nơi những buổi chiều trôi qua, và khoảng cách đó có thể đo lường được.

zinnector mới

Xây dựng khung một trang web, một plugin hoặc một block theme khởi chạy ngay lập tức. Không có tệp giữ chỗ, không có việc cần làm — plugin sẽ kích hoạt và theme có thể được chọn ngay khi nó được tạo.

zinnector dev

WordPress thực thụ trên máy của bạn chỉ trong vài giây, chạy các plugin và chủ đề của riêng bạn mà không cần Docker và không cần PHP trên PATH của bạn. Chọn bất kỳ phiên bản PHP nào từ 5.2 đến 8.5 để lập trình.

kiểm tra zinnector

Kiểm tra trước khi triển khai. So sánh những gì bạn đã xây dựng với vị trí bạn chuẩn bị triển khai và chỉ ra mọi điểm không khớp — cũng như mọi bước kiểm tra không thể thực hiện — trước khi bạn đẩy lên.

Đẩy zinnector

Trước khi xuất phát, hãy push các commit của bạn, kích hoạt quá trình triển khai và theo dõi cho đến khi hoàn tất. Nếu xảy ra lỗi, nhật ký bản dựng chỉ cách bạn một câu lệnh.

zinnector ai

Hỏi trợ lý từ terminal, với dự án và trang web của bạn làm ngữ cảnh. Nó chạy trên nền tảng dựa trên tài khoản của chính bạn, vì vậy không có khóa mô hình nào từng được lưu trữ trên máy của bạn.

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.

Chi tiết quá trình chuẩn bị

Bạn xây dựng trên PHP 8.3. Khe cắm chạy phiên bản 8.1. Không có gì báo cho bạn biết cho đến khi trang web chuyển sang màn hình trắng. Đó là vấn đề mà lệnh này ra đời để giải quyết, và đó cũng là điều mà chủ sở hữu của nền tảng này đã yêu cầu đích danh. Zinnector® đọc cả hai môi trường và đặt chúng cạnh nhau — sau đó vẫn cho phép bạn triển khai, bởi vì có thể bạn có lý do riêng.

PHP, đánh giá công tâm

Khoảng cách phiên bản chính được đánh dấu mức độ cao vì nó thực sự làm hỏng trang web; khoảng cách phiên bản phụ được đánh dấu thấp hơn. Xếp loại mọi thứ đều là quan trọng chỉ dạy mọi người cách bỏ qua cảnh báo.

Dung lượng đĩa và số lượng tệp, riêng biệt

Cây WordPress bao gồm hàng chục nghìn tệp nhỏ và một trang web có thể cạn kiệt hạn mức inode ngay cả khi dung lượng ổ đĩa vẫn còn rất nhiều. Cả hai đều được kiểm tra dựa trên dung lượng thực tế còn lại trên gói, chứ không phải dựa theo gói dịch vụ.

“Không thể kiểm tra” cũng là một câu trả lời

Một bài kiểm tra không thể nhìn thấy đối tượng của nó sẽ báo cáo là chưa kiểm tra, không bao giờ đạt. Một lần chạy sạch sẽ cho biết có bao nhiêu thứ nó không thể xác minh, bởi vì một tín hiệu an toàn giả là tín hiệu không ai nhìn lại lần thứ hai.

Cảnh báo, không bao giờ chặn

Mọi kết quả phát hiện đều có thể được ghi đè bằng --force, và phần tóm tắt sẽ thể hiện điều đó. Trong CI, mã thoát đóng vai trò là bộ lọc thay thế, nhờ đó một đường ống (pipeline) có thể được thiết lập nghiêm ngặt trong khi con người vẫn nắm quyền kiểm soát.

Hai môi trường thực thi cục bộ, đều là thật

WordPress Playground là mặc định: PHP được biên dịch thành WebAssembly, chạy bên trong Node, vì vậy một máy tính xách tay không có gì ngoài Node được cài đặt sẽ chuyển từ không có gì sang WordPress đang chạy trong khoảng thời gian đọc câu này.

Khi bạn cần một PHP tự nhiên — một tiện ích mở rộng như imagick, một MySQL thực sự — hãy chuyển --runtime docker và nhận các vùng chứa php-fpm và MariaDB thay thế. Cả hai đều phục vụ các tệp giống nhau từ cùng một dự án, vì vậy việc chuyển đổi giữa chúng sẽ thay đổi công cụ và không có gì khác.

Mọi thứ khác bạn đã làm trong bảng điều khiển

Zinnector® được xây dựng trên cùng một API công khai như bảng điều khiển, vì vậy bất kỳ tính năng nào bảng điều khiển có thể làm thì nó cũng làm được — và mọi lệnh đều là một thao tác được ghi chép trong đặc tả OpenAPI chứ không phải là một điểm cuối riêng tư.

Trang web và bản triển khai

Liệt kê các trang web, đọc tất cả những gì nền tảng biết về một trang web, triển khai lại, đồng thời đọc lịch sử triển khai và nhật ký bản dựng.

Tên miền, DNS và email

Liệt kê tên miền, đọc và thay đổi bản ghi DNS với bản ghi được hiển thị trước khi ghi, và đọc các dịch vụ thư điện tử của bạn.

PHP, hạn mức, cơ sở dữ liệu và nhật ký

Chuyển đổi phiên bản PHP, kiểm tra mức sử dụng đĩa và inode so với hạn mức của gói dịch vụ, nhận liên kết sử dụng một lần vào phpMyAdmin, và theo dõi nhật ký truy cập cũng như lỗi.

WP-CLI và thao tác hàng loạt

Chạy các lệnh WP-CLI nằm trong danh sách cho phép trên một trang web, đồng thời xóa bộ nhớ đệm hoặc bắt đầu quét phần mềm độc hại trên toàn bộ danh sách lựa chọn chỉ trong một lệnh gọi thay vì phải thực hiện trên từng trang web.

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.

Câu hỏi

Tôi có cần phải là khách hàng của Zinn Digital® để sử dụng tính năng này không?

Không. `zinnector new` và `zinnector dev` hoàn toàn không cần tài khoản — hãy tạo bộ khung cho plugin, giao diện hoặc toàn bộ trang web và chạy cục bộ, miễn phí, mãi mãi. Khóa API chỉ cần thiết cho các lệnh giao tiếp với dịch vụ lưu trữ của bạn.

Ứng dụng có cần Docker không?

Không dành cho môi trường chạy mặc định. WordPress Playground biên dịch PHP sang WebAssembly và chạy bên trong Node, vì vậy `zinnector dev` khởi động một trang WordPress thực tế chỉ trong vài giây mà không cần cài đặt gì thêm. Nếu bạn cần PHP nguyên bản — để kiểm tra một phần mở rộng như imagick hoặc ionCube — `--runtime docker` sẽ cung cấp các container php-fpm và MariaDB thay thế. Cả hai đều được hỗ trợ; không bên nào là phương án dự phòng.

Kiểm tra trước khi khởi chạy thực tế so sánh những gì?

Phiên bản PHP cục bộ của bạn so với phiên bản của khe, liệu khe đó có thể chuyển sang phiên bản bạn đã tạo hay không, liệu PHP của khe đã hết vòng đời hay chưa và máy đã thực sự áp dụng phiên bản đó chưa, dung lượng dự án và số lượng tệp của bạn so với dung lượng đĩa và inode còn lại, các phiên bản WordPress ở mỗi bên, liệu khe đã hoàn tất việc cấp phát hay chưa, và liệu có kho lưu trữ git nào được kết nối để triển khai hay không. Bất kỳ điều gì không thể kiểm tra sẽ được báo cáo là chưa kiểm tra thay vì được tính là đạt.

Nó có thể ngăn tôi triển khai không?

Không, và đó là ý đồ của chúng tôi. Pre-flight đưa ra cảnh báo và cho phép bạn tiếp tục — `--force` sẽ triển khai bất chấp mọi phát hiện. Bạn hiểu rõ trang web của mình hơn một công cụ kiểm tra, và một công cụ từ chối triển khai là công cụ sẽ bị người dùng gỡ cài đặt.

Khóa API của tôi có an toàn không?

Khóa này không bao giờ được đọc từ dòng lệnh — chỉ từ dấu nhắc hoặc stdin được chuyển ống — do đó nó không thể lọt vào lịch sử shell của bạn hoặc trong danh sách tiến trình. Nó được lưu trữ trong thư mục cấu hình của riêng bạn với chế độ tệp 600 và Zinnector® xác nhận lại các quyền đó mỗi khi nó ghi.

Tôi có thể sử dụng nó trong CI không?

Có. Hãy thiết lập `ZINNECTOR_TOKEN`, và mọi lệnh đều nhận `--json`. Kết quả dành cho người dùng xuất ra stderr và dữ liệu xuất ra stdout, do đó các ống dẫn (pipes) luôn sạch sẽ. `zinnector check` thoát với mã khác không khi phát hiện ra vấn đề, vì vậy nó hoạt động như một cổng kiểm tra trong đường ống, và `--strict` cũng sẽ thất bại khi không thể thực hiện so sánh.

Cài đặt và chạy trang web trong phút tiếp theo

Chạy lệnh npm install -g zinnector, hoặc thử chạy một lần với npx zinnector new my-site. Miễn phí, cấp phép theo MIT và được xây dựng dựa trên API công khai. Tạo khung dự án, chạy cục bộ mà không cần Docker và kiểm tra trước khi triển khai.

Đọc tài liệu