deploy-to-hosting 用于把已经存在的项目(在磁盘上或 Git 仓库中)发布到 Hostinger 网站的托管环境,并让其保持已部署状态。它不负责从提示词新建站点,这类需求属于 hostinger-headless 技能;本技能接收现成代码。
用途与目标网站:项目内 .hostinger/site.json 可复用域名和用户名(或 website_uid);否则通过 hosting_websites_list(Shared 和 Cloud,子串匹配需取精确条目)或 agency-hosting_websites_list-plan(Agency,保留 details.uid)查找域名。没有网站时,Shared 和 Cloud 需提供域名(用户自有或 hosting_domains_generate-free-subdomain)和 hosting_orders_list 返回的 order_id,再调用 hosting_websites_create;新套餐首个网站需要 datacenter_code,并轮询 hosting_websites_list-setups 直到 status 为 completed,此前上传和部署会返回 404 或 409。Agency 则用 agency-hosting_website-setups_create(flavor 为 php-fpm,构建前端可加 type 为 node-static),设置来自 agency-hosting_php_list-versions-for-order 的 php.version 和 agency-hosting_datacenters_list 的 datacenter_code,轮询状态直到完成并获得 website_uid。Node.js 应用仅在 Business 和 Cloud 套餐运行,其他套餐需本地构建后作为静态站点部署。
部署方式选择:错误的方法是常见失败原因,需根据磁盘上的项目判断。普通 HTML/CSS/JS 或框架静态构建产物用 hosting_deploy-static-website;含 build 或 server 的 package.json(Next.js、Nuxt、Express、Vite 等)用 hosting_deploy-js-application;无构建步骤的 PHP 代码用 hosting_deploy-static-website 原样解压;WordPress 插件或主题目录分别用 hosting_deploy-wordpress-plugin 和 hosting_deploy-wordpress-theme;整站迁移用 migrate-to-hosting 技能。Agency 上由网站类型决定:node-static 站点用 agency-hosting_deploy-node-static-website,有构建时会执行构建;其他站点用 agency-hosting_deploy-php-application 原样解压;插件和主题在 wp-admin 安装。压缩包需命名为 name_YYYYMMDD_HHMMSS.zip;静态包需先本地构建且 index.html 位于根目录;Node.js 源码包不含 node_modules、构建输出、.env* 和 .gitignore 匹配内容,最大 50 MB,可用 git archive 生成仅含已提交文件的包。Agency 部署是同步的,调用返回时站点已上线。这些部署操作读取本机压缩包,仅在本地 hostinger-api-mcp 服务器可用;托管服务器上搜索不到,需要用 hosting_files_generate-upload-url 或 agency-hosting_files_generate-upload-url 获取上传凭证,再按 TUS 协议逐文件上传,然后用 hosting_websites_deploy-static-site-archive、hosting_nodejs_build-settings-from-archive 与 hosting_nodejs_start-build、wordpress_plugins_deploy、wordpress_themes_deploy 或 agency-hosting_files_import-website-from-archive、agency-hosting_websites_build-nodejs-assets 等完成部署。
Node.js 构建:hosting_deploy-js-application 会把压缩包上传到文档根目录,从 package.json 检测设置并启动构建,可用 hosting_nodejs_list-builds 和 hosting_nodejs_build 轮询跟踪,构建可能耗时数分钟。构建失败可先运行 hosting_nodejs_analyse-failed-build(每次构建一次,每分钟 5 次调用),分析为空再查 hosting_nodejs_build-logs。若框架、输出目录或入口文件检测错误,可用显式参数调用 hosting_nodejs_start-build 并保存设置。
Git 自动部署:通过 hosting_git_list-installations 检查安装状态,无活跃安装时用户需在 hPanel 的 Websites → Manage → Advanced → Git 连接 GitHub 或 GitLab,此步骤无 API。随后列出仓库,用 hosting_git_update-auto-deployment-settings 设置安装、所有者、仓库、分支和可选目录。PHP 和静态站点会立即部署该分支并在每次推送时重新部署;Node.js 站点保存时不克隆,需用 source_type 为 git 的 hosting_nodejs_start-build 启动首次构建,之后的推送使用保存的设置。Agency 套餐站点没有 Git 操作,需部署压缩包。
环境变量与数据库:Node.js 用 hosting_nodejs_replace-environment-variables 整体替换环境变量,未发送的会被删除;应基于现有键加上新键并填入真实值,未知的现有值需询问用户,不要丢弃。构建期写入的值(如 NEXT_PUBLIC_、VITE_)需要重新构建。键名使用大写字母、数字和下划线,不要提交 .env 文件或回显密钥。Node.js 可用 hosting_databases_setup-website 创建 MySQL 数据库并写入连接环境变量后重启应用;若相关键已存在会返回 422,需先移除。PHP 用 hosting_databases_create 创建数据库并从 hosting_databases_list 读取带前缀的完整名称,应用从服务器上的配置文件读取凭证并连接 localhost 或 127.0.0.1;Agency 用 agency-hosting_databases_create-website。从外部连接才使用 srvNNNN.hstgr.io 主机,不要放入已部署应用。
验证与记录:用 curl 检查 HTTP 状态码并匹配项目实际渲染的文本,因为 200 可能只是占位页;新站点可能短暂显示默认页,可清除缓存后重试。最后在项目中写入 .hostinger/site.json 记录域名、用户名或 website_uid 以及类型(static、nodejs 或 php),供后续运行复用。每次部署会覆盖网站现有内容,首次部署到已有内容的网站前必须与用户确认目标域名。部分事实(如具体收费、价格)暂未提供。