[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"navigation":3,"-docs-zh-getting-started-cli-create-zship":438,"-docs-zh-getting-started-cli-create-zship-description":852},[4],{"title":5,"path":6,"stem":7,"children":8,"page":437},"Docs","\u002Fdocs","docs",[9,222,230],{"title":10,"path":11,"stem":12,"children":13,"framework":15,"description":15,"icon":221},"Get Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,17,30,35,40,45,93,127,175,193],{"title":10,"path":11,"stem":12,"framework":15,"description":16},null,"ZShip overview: Cloudflare-native multi-tenant SaaS foundation for AI-powered sites.",{"title":18,"path":19,"stem":20,"children":21,"framework":15,"description":15,"icon":29},"Services","\u002Fdocs\u002Fgetting-started\u002Fservices","docs\u002F1.getting-started\u002F10.services\u002F1.index",[22,24],{"title":18,"path":19,"stem":20,"framework":15,"description":23},"Optional services: AI Provider. Purchasable separately.",{"title":25,"path":26,"stem":27,"framework":15,"description":28},"AI Provider","\u002Fdocs\u002Fgetting-started\u002Fservices\u002Fai-provider","docs\u002F1.getting-started\u002F10.services\u002F2.ai-provider","Unified KIE & WaveSpeed AI gateway with testing, task logs, analytics, public gallery, and security controls.","i-lucide-sparkles",{"title":31,"path":32,"stem":33,"framework":15,"description":34},"Important Notes","\u002Fdocs\u002Fgetting-started\u002Fimportant-notes","docs\u002F1.getting-started\u002F2.important-notes","Rules you must follow: do not modify official apps and backend services.",{"title":36,"path":37,"stem":38,"framework":15,"description":39},"Codebase","\u002Fdocs\u002Fgetting-started\u002Fcodebase","docs\u002F1.getting-started\u002F3.codebase","ZShip project structure: core apps and backend services.",{"title":41,"path":42,"stem":43,"framework":15,"description":44},"GitHub OAuth","\u002Fdocs\u002Fgetting-started\u002Fgithub-oauth","docs\u002F1.getting-started\u002F4.github-oauth","How to configure GitHub OAuth login for your ZShip project.",{"title":46,"path":47,"stem":48,"children":49,"framework":15,"description":15,"icon":92},"Deploy","\u002Fdocs\u002Fgetting-started\u002Fdeploy","docs\u002F1.getting-started\u002F5.deploy\u002F1.index",[50,52,57,62,67,72,77,82,87],{"title":46,"path":47,"stem":48,"framework":15,"description":51},"Deploy ZShip core: apps\u002Fweb-astro, apps\u002Fadmin, and 11 backend Workers.",{"title":53,"path":54,"stem":55,"framework":15,"description":56},"Dev Console","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fdev-console","docs\u002F1.getting-started\u002F5.deploy\u002F2.dev-console","Before deployment, get familiar with the built-in ZShip console so you remember fewer commands, switch folders less often, and miss fewer steps.",{"title":58,"path":59,"stem":60,"framework":15,"description":61},"Before You Start","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fbefore-start","docs\u002F1.getting-started\u002F5.deploy\u002F3.before-start","Preparation before deployment: accounts, source access strategy, local tools, and Wrangler login.",{"title":63,"path":64,"stem":65,"framework":15,"description":66},"Cloudflare","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fcloudflare","docs\u002F1.getting-started\u002F5.deploy\u002F4.cloudflare","One-click deployment: Dev Console creates D1\u002FKV\u002FR2, runs migrations, deploys Workers and frontend.",{"title":68,"path":69,"stem":70,"framework":15,"description":71},"Backend Workers","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fworkers","docs\u002F1.getting-started\u002F5.deploy\u002F5.workers","Use Dev Console to fill secrets, run remote migrations, and deploy the 11 backend Workers.",{"title":73,"path":74,"stem":75,"framework":15,"description":76},"Frontend Apps","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fpages","docs\u002F1.getting-started\u002F5.deploy\u002F6.pages","Use Dev Console to deploy apps\u002Fweb-astro as a Worker and apps\u002Fadmin as a Pages project.",{"title":78,"path":79,"stem":80,"framework":15,"description":81},"Domains & Env","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fdomains-env","docs\u002F1.getting-started\u002F5.deploy\u002F7.domains-env","Bind production domains, switch frontend variables to real online addresses, and understand how copied web apps should be wired.",{"title":83,"path":84,"stem":85,"framework":15,"description":86},"Initialize","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Finitialize","docs\u002F1.getting-started\u002F5.deploy\u002F8.initialize","Log in to the admin, create the first project, and finish the core configuration for payments, AI, and site content.",{"title":88,"path":89,"stem":90,"framework":15,"description":91},"Launch Checks","\u002Fdocs\u002Fgetting-started\u002Fdeploy\u002Fchecks","docs\u002F1.getting-started\u002F5.deploy\u002F9.checks","Go-live checklist and fixes: Observability, CDN\u002FR2, email & webhooks, bindings, D1\u002FKV\u002FR2, auth, payments, AI.","i-lucide-cloud-upload",{"title":94,"path":95,"stem":96,"children":97,"framework":15,"description":15,"icon":126},"CLI","\u002Fdocs\u002Fgetting-started\u002Fcli","docs\u002F1.getting-started\u002F6.cli\u002F1.index",[98,100,104,109,113,117,121],{"title":94,"path":95,"stem":96,"framework":15,"description":99},"Deploy ZShip with manual terminal commands.",{"title":58,"path":101,"stem":102,"framework":15,"description":103},"\u002Fdocs\u002Fgetting-started\u002Fcli\u002Fbefore-start","docs\u002F1.getting-started\u002F6.cli\u002F2.before-start","Prerequisites for the CLI path: accounts, source access, local tools, and Wrangler login.",{"title":105,"path":106,"stem":107,"framework":15,"description":108},"Local Development","\u002Fdocs\u002Fgetting-started\u002Fcli\u002Flocal-dev","docs\u002F1.getting-started\u002F6.cli\u002F3.local-dev","Set up local development environment with manual commands: install deps, migrate D1, start services.",{"title":63,"path":110,"stem":111,"framework":15,"description":112},"\u002Fdocs\u002Fgetting-started\u002Fcli\u002Fcloudflare","docs\u002F1.getting-started\u002F6.cli\u002F4.cloudflare","Create Workers, D1 databases, KV namespace, and R2 bucket in Cloudflare using wrangler commands.",{"title":68,"path":114,"stem":115,"framework":15,"description":116},"\u002Fdocs\u002Fgetting-started\u002Fcli\u002Fworkers","docs\u002F1.getting-started\u002F6.cli\u002F5.workers","Deploy backend Workers using wrangler deploy. Fill secrets first, run remote migrations, then deploy in order.",{"title":73,"path":118,"stem":119,"framework":15,"description":120},"\u002Fdocs\u002Fgetting-started\u002Fcli\u002Fpages","docs\u002F1.getting-started\u002F6.cli\u002F6.pages","Deploy apps\u002Fweb-astro as a Cloudflare Worker and apps\u002Fadmin as a Cloudflare Pages project.",{"title":122,"path":123,"stem":124,"framework":15,"description":125},"create-zship","\u002Fdocs\u002Fgetting-started\u002Fcli\u002Fcreate-zship","docs\u002F1.getting-started\u002F6.cli\u002F7.create-zship","Scaffold a standalone Nuxt tenant frontend that connects to an existing ZShip backend with one command.","i-lucide-terminal",{"title":128,"path":129,"stem":130,"children":131,"framework":15,"description":15,"icon":174},"Integrations","\u002Fdocs\u002Fgetting-started\u002Fintegrations","docs\u002F1.getting-started\u002F7.integrations\u002F1.index",[132,134,139,144,149,154,159,164,169],{"title":128,"path":129,"stem":130,"framework":15,"description":133},"Core ZShip product integrations and backend service capabilities.",{"title":135,"path":136,"stem":137,"framework":15,"description":138},"Authentication","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fauth","docs\u002F1.getting-started\u002F7.integrations\u002F2.auth","User auth, OAuth (Google, GitHub), API keys. Backend: node1-auth-service.",{"title":140,"path":141,"stem":142,"framework":15,"description":143},"Payment","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fpayment","docs\u002F1.getting-started\u002F7.integrations\u002F3.payment","Pay channels, price plans, Stripe catalog fetch, project bindings, and localized pricing copy.",{"title":145,"path":146,"stem":147,"framework":15,"description":148},"Email","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Femail","docs\u002F1.getting-started\u002F7.integrations\u002F4.email","Configure Resend and Cloudflare Email Service for ZShip, including sender domains, Workers, provider routing, testing, and rollback.",{"title":150,"path":151,"stem":152,"framework":15,"description":153},"Notify","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fnotify","docs\u002F1.getting-started\u002F7.integrations\u002F5.notify","Bark, Feishu, DingTalk. Backend: node4-notify-service.",{"title":155,"path":156,"stem":157,"framework":15,"description":158},"Storage","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fstorage","docs\u002F1.getting-started\u002F7.integrations\u002F6.storage","File upload, CDN. Backend: node6-cdn-service.",{"title":160,"path":161,"stem":162,"framework":15,"description":163},"AI","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fai","docs\u002F1.getting-started\u002F7.integrations\u002F7.ai","AI gateway, multi-model chat, sessions. Backend: node10-ai-service.",{"title":165,"path":166,"stem":167,"framework":15,"description":168},"Blog","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fblog","docs\u002F1.getting-started\u002F7.integrations\u002F8.blog","Blog CMS, posts, public API. Backend: node5-blog-service.",{"title":170,"path":171,"stem":172,"framework":15,"description":173},"Check-in","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcheckin","docs\u002F1.getting-started\u002F7.integrations\u002F9.checkin","Check-in rules, rewards, daily limits. Backend: node9-checkin-service.","i-lucide-blocks",{"title":176,"path":177,"stem":178,"children":179,"framework":15,"description":15,"icon":192},"Customize","\u002Fdocs\u002Fgetting-started\u002Fcustomize","docs\u002F1.getting-started\u002F8.customize\u002F1.index",[180,182,187],{"title":176,"path":177,"stem":178,"framework":15,"description":181},"Adapt ZShip branding and language for your own product.",{"title":183,"path":184,"stem":185,"framework":15,"description":186},"Branding","\u002Fdocs\u002Fgetting-started\u002Fcustomize\u002Fbranding","docs\u002F1.getting-started\u002F8.customize\u002F2.branding","Site name, logo, colors, SEO. Config files and overrides.",{"title":188,"path":189,"stem":190,"framework":15,"description":191},"i18n","\u002Fdocs\u002Fgetting-started\u002Fcustomize\u002Fi18n","docs\u002F1.getting-started\u002F8.customize\u002F3.i18n","Multi-language support. Translation files and locale config.","i-lucide-palette",{"title":194,"path":195,"stem":196,"children":197,"framework":15,"description":15,"icon":220},"Develop","\u002Fdocs\u002Fgetting-started\u002Fdevelopment","docs\u002F1.getting-started\u002F9.development\u002F1.index",[198,200,205,210,215],{"title":194,"path":195,"stem":196,"framework":15,"description":199},"Extend ZShip with custom apps, admin workflows, and development skills.",{"title":201,"path":202,"stem":203,"framework":15,"description":204},"Development Skills","\u002Fdocs\u002Fgetting-started\u002Fdevelopment\u002Fskills","docs\u002F1.getting-started\u002F9.development\u002F2.skills","ZShip development skills guide: AI-powered tools for common development tasks.",{"title":206,"path":207,"stem":208,"framework":15,"description":209},"Custom Admin","\u002Fdocs\u002Fgetting-started\u002Fdevelopment\u002Fcustom-admin","docs\u002F1.getting-started\u002F9.development\u002F3.custom-admin","Extend the official admin in apps\u002Fadmin with Nuxt layers—do not fork packages\u002Fnuxt-admin-layer—so upstream UI updates never conflict with your code.",{"title":211,"path":212,"stem":213,"framework":15,"description":214},"Admin RBAC","\u002Fdocs\u002Fgetting-started\u002Fdevelopment\u002Fadmin-rbac","docs\u002F1.getting-started\u002F9.development\u002F4.admin-rbac","How ZShip admin permissions work (legacy secret vs operators), passwordless login (magic link & demo links), platform settings, permission keys, and scoped admin accounts.",{"title":216,"path":217,"stem":218,"framework":15,"description":219},"app.zship.ai","\u002Fdocs\u002Fgetting-started\u002Fdevelopment\u002Fapp-zship","docs\u002F1.getting-started\u002F9.development\u002F5.app-zship","What you can do on app.zship.ai: orders, licensing, delivery, downloads, and support.","i-lucide-code-xml","i-lucide-square-play",{"title":223,"path":224,"stem":225,"children":226,"framework":15,"description":15,"icon":229},"Components","\u002Fdocs\u002Fcomponents","docs\u002F2.components\u002F1.index",[227],{"title":223,"path":224,"stem":225,"framework":15,"description":228},"ZShip component store status.","i-lucide-package",{"title":231,"path":232,"stem":233,"children":234,"page":437},"Zh","\u002Fdocs\u002Fzh","docs\u002F8.zh",[235,431],{"title":236,"path":237,"stem":238,"children":239,"framework":15,"description":15,"icon":221},"快速开始","\u002Fdocs\u002Fzh\u002Fgetting-started","docs\u002F8.zh\u002F1.getting-started\u002F1.index",[240,242,253,258,263,267,312,343,389,406],{"title":236,"path":237,"stem":238,"framework":15,"description":241},"ZShip 概览：Cloudflare 原生多租户 AI SaaS 基础架构。",{"title":243,"path":244,"stem":245,"children":246,"framework":15,"description":15,"icon":29},"服务","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fservices","docs\u002F8.zh\u002F1.getting-started\u002F10.services\u002F1.index",[247,249],{"title":243,"path":244,"stem":245,"framework":15,"description":248},"可单独购买的可选服务：AI 提供商服务等。",{"title":25,"path":250,"stem":251,"framework":15,"description":252},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fservices\u002Fai-provider","docs\u002F8.zh\u002F1.getting-started\u002F10.services\u002F2.ai-provider","统一接入 KIE、WaveSpeed AI；含测试、任务日志、统计、公开作品库与安全策略。",{"title":254,"path":255,"stem":256,"framework":15,"description":257},"注意事项","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fimportant-notes","docs\u002F8.zh\u002F1.getting-started\u002F2.important-notes","必须遵守的边界：不要直接改官方模板与官方后端服务。",{"title":259,"path":260,"stem":261,"framework":15,"description":262},"项目结构","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcodebase","docs\u002F8.zh\u002F1.getting-started\u002F3.codebase","ZShip 核心交付的目录与职责。",{"title":41,"path":264,"stem":265,"framework":15,"description":266},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fgithub-oauth","docs\u002F8.zh\u002F1.getting-started\u002F4.github-oauth","如何为 ZShip 项目配置 GitHub OAuth 登录。",{"title":268,"path":269,"stem":270,"children":271,"framework":15,"description":15,"icon":92},"部署","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F1.index",[272,274,278,283,287,292,297,302,307],{"title":268,"path":269,"stem":270,"framework":15,"description":273},"部署 ZShip 核心：apps\u002Fweb-astro、apps\u002Fadmin 及 11 个后端 Worker。",{"title":53,"path":275,"stem":276,"framework":15,"description":277},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fdev-console","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F2.dev-console","在开始部署之前，先认识 ZShip 自带的图形化控制台，帮你少记命令、少切目录、少漏步骤。",{"title":279,"path":280,"stem":281,"framework":15,"description":282},"开始之前","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fbefore-start","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F3.before-start","部署前的准备工作：账号准备、源码获取方式选择、本地工具安装和 Wrangler 登录。",{"title":63,"path":284,"stem":285,"framework":15,"description":286},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fcloudflare","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F4.cloudflare","一键部署：Dev Console 自动创建 D1\u002FKV\u002FR2、执行迁移、部署 Worker 和前端。",{"title":288,"path":289,"stem":290,"framework":15,"description":291},"后端 Workers","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fworkers","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F5.workers","使用 Dev Console 填写密钥、执行远程迁移并部署 11 个后端 Worker。",{"title":293,"path":294,"stem":295,"framework":15,"description":296},"前端应用","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fpages","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F6.pages","使用 Dev Console 将 apps\u002Fweb-astro 部署为 Worker，将 apps\u002Fadmin 部署为 Pages 项目。",{"title":298,"path":299,"stem":300,"framework":15,"description":301},"域名与环境变量","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fdomains-env","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F7.domains-env","为前端和后端绑定正式域名，理清 zship.app.json、服务环境变量与部署地址之间的关系。",{"title":303,"path":304,"stem":305,"framework":15,"description":306},"初始化","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Finitialize","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F8.initialize","登录后台，创建 demo 项目，配置支付、AI 和其他模块，完成系统首次初始化。",{"title":308,"path":309,"stem":310,"framework":15,"description":311},"上线检查","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdeploy\u002Fchecks","docs\u002F8.zh\u002F1.getting-started\u002F5.deploy\u002F9.checks","部署验收与排障：Observability、CDN\u002FR2、邮件与 Webhook、service binding、D1\u002FKV\u002FR2、登录、支付、AI 等。",{"title":94,"path":313,"stem":314,"children":315,"framework":15,"description":15,"icon":126},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F1.index",[316,318,322,327,331,335,339],{"title":94,"path":313,"stem":314,"framework":15,"description":317},"使用手动命令部署 ZShip。",{"title":279,"path":319,"stem":320,"framework":15,"description":321},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Fbefore-start","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F2.before-start","CLI 路径的前置条件：账号、源码获取方式、本地工具、Wrangler 登录。",{"title":323,"path":324,"stem":325,"framework":15,"description":326},"本地开发","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Flocal-dev","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F3.local-dev","用手动命令搭建本地开发环境：安装依赖、D1 迁移、启动服务。",{"title":63,"path":328,"stem":329,"framework":15,"description":330},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Fcloudflare","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F4.cloudflare","用 wrangler 命令在 Cloudflare 创建 Worker、D1 数据库、KV namespace 和 R2 bucket。",{"title":288,"path":332,"stem":333,"framework":15,"description":334},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Fworkers","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F5.workers","用 wrangler deploy 部署后端 Worker。先填 secrets、执行远程迁移，再按顺序部署。",{"title":293,"path":336,"stem":337,"framework":15,"description":338},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Fpages","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F6.pages","将 apps\u002Fweb-astro 部署为 Cloudflare Worker，将 apps\u002Fadmin 部署为 Cloudflare Pages 项目。",{"title":122,"path":340,"stem":341,"framework":15,"description":342},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcli\u002Fcreate-zship","docs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F7.create-zship","一条命令脚手架出一个独立的 Nuxt 租户前端，接入现有 ZShip 后端。",{"title":344,"path":345,"stem":346,"children":347,"framework":15,"description":15,"icon":174},"集成","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F1.index",[348,350,355,360,365,370,375,379,384],{"title":344,"path":345,"stem":346,"framework":15,"description":349},"ZShip 核心产品集成与后端服务能力。",{"title":351,"path":352,"stem":353,"framework":15,"description":354},"认证","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fauth","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F2.auth","用户认证、OAuth（Google、GitHub）、API Key。后端：node1-auth-service。",{"title":356,"path":357,"stem":358,"framework":15,"description":359},"支付","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fpayment","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F3.payment","支付渠道、价格方案、Stripe 拉取目录、项目绑定与多语言展示。",{"title":361,"path":362,"stem":363,"framework":15,"description":364},"邮件","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Femail","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F4.email","为 ZShip 配置 Resend 与 Cloudflare Email Service，包含发件域名、Worker、Provider 路由、测试和回滚。",{"title":366,"path":367,"stem":368,"framework":15,"description":369},"通知","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fnotify","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F5.notify","Bark、飞书、钉钉。后端：node4-notify-service。",{"title":371,"path":372,"stem":373,"framework":15,"description":374},"存储","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fstorage","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F6.storage","文件上传、CDN。后端：node6-cdn-service。",{"title":160,"path":376,"stem":377,"framework":15,"description":378},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fai","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F7.ai","AI 网关、多模型对话、会话。后端：node10-ai-service。",{"title":380,"path":381,"stem":382,"framework":15,"description":383},"博客","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fblog","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F8.blog","博客 CMS、文章、公开 API。后端：node5-blog-service。",{"title":385,"path":386,"stem":387,"framework":15,"description":388},"签到","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fintegrations\u002Fcheckin","docs\u002F8.zh\u002F1.getting-started\u002F7.integrations\u002F9.checkin","签到规则、奖励、每日限制。后端：node9-checkin-service。",{"title":390,"path":391,"stem":392,"children":393,"framework":15,"description":15,"icon":192},"定制","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcustomize","docs\u002F8.zh\u002F1.getting-started\u002F8.customize\u002F1.index",[394,396,401],{"title":390,"path":391,"stem":392,"framework":15,"description":395},"把 ZShip 调整为你的品牌和语言。",{"title":397,"path":398,"stem":399,"framework":15,"description":400},"品牌定制","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcustomize\u002Fbranding","docs\u002F8.zh\u002F1.getting-started\u002F8.customize\u002F2.branding","站点名称、Logo、颜色、SEO。配置文件与覆盖。",{"title":402,"path":403,"stem":404,"framework":15,"description":405},"多语言","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fcustomize\u002Fi18n","docs\u002F8.zh\u002F1.getting-started\u002F8.customize\u002F3.i18n","多语言支持。翻译文件与 locale 配置。",{"title":407,"path":408,"stem":409,"children":410,"framework":15,"description":15,"icon":220},"开发","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdevelopment","docs\u002F8.zh\u002F1.getting-started\u002F9.development\u002F1.index",[411,413,418,423,427],{"title":407,"path":408,"stem":409,"framework":15,"description":412},"扩展 ZShip 的应用、管理后台与开发技能。",{"title":414,"path":415,"stem":416,"framework":15,"description":417},"开发技能","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdevelopment\u002Fskills","docs\u002F8.zh\u002F1.getting-started\u002F9.development\u002F2.skills","ZShip 开发技能指南：用于常见开发任务的 AI 驱动工具。",{"title":419,"path":420,"stem":421,"framework":15,"description":422},"自定义管理后台","\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdevelopment\u002Fcustom-admin","docs\u002F8.zh\u002F1.getting-started\u002F9.development\u002F3.custom-admin","在 apps\u002Fadmin 中通过 Nuxt 层扩展官方管理端，请勿修改 packages\u002Fnuxt-admin-layer，以便上游 UI 更新与您的业务代码互不冲突。",{"title":211,"path":424,"stem":425,"framework":15,"description":426},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdevelopment\u002Fadmin-rbac","docs\u002F8.zh\u002F1.getting-started\u002F9.development\u002F4.admin-rbac","ZShip 管理端权限模型（密钥超级管理员 vs 操作员）、无密码登录（邮件魔法链接与客户演示链接）、管理平台设置、权限串说明与分级管理员账号。",{"title":216,"path":428,"stem":429,"framework":15,"description":430},"\u002Fdocs\u002Fzh\u002Fgetting-started\u002Fdevelopment\u002Fapp-zship","docs\u002F8.zh\u002F1.getting-started\u002F9.development\u002F5.app-zship","app.zship.ai 上可用的购后能力：订单、授权、交付、下载与支持。",{"title":223,"path":432,"stem":433,"children":434,"framework":15,"description":15,"icon":229},"\u002Fdocs\u002Fzh\u002Fcomponents","docs\u002F8.zh\u002F2.components\u002F1.index",[435],{"title":223,"path":432,"stem":433,"framework":15,"description":436},"ZShip 组件商店状态。",false,{"id":439,"title":122,"body":440,"description":342,"extension":847,"framework":15,"index":437,"links":15,"meta":848,"navigation":15,"path":340,"seo":850,"stem":341,"__hash__":851},"docs\u002Fdocs\u002F8.zh\u002F1.getting-started\u002F6.cli\u002F7.create-zship.md",{"type":441,"value":442,"toc":840},"minimark",[443,463,488,493,539,549,553,556,581,584,652,661,664,764,800,803,806,826,836],[444,445,446,449,450,454,455,458,459,462],"p",{},[447,448,122],"code",{}," 是官方脚手架 CLI。它生成一个",[451,452,453],"strong",{},"独立的 Nuxt 租户前端","——裁剪后的 monorepo（",[447,456,457],{},"apps\u002Fweb"," 及其 workspace 依赖包闭包），接入现有的多租户共享 ZShip 后端，数据按 ",[447,460,461],{},"app_key"," 隔离。",[464,465,468],"callout",{"color":466,"icon":467},"warning","i-lucide-triangle-alert",[444,469,470,473,474,477,478,481,482,487],{},[451,471,472],{},"尚未发布到 npm。"," ",[447,475,476],{},"pnpm create zship@latest"," 与 ",[447,479,480],{},"npx create-zship@latest"," 要等包发布后才会可用。下面的命令是发布后的入口，当前可用方式见",[483,484,486],"a",{"href":485},"#%E4%BB%8E-monorepo-%E4%BD%BF%E7%94%A8%E5%BD%93%E5%89%8D%E6%96%B9%E5%BC%8F","从 monorepo 使用","。",[489,490,492],"h2",{"id":491},"用法npm-发布后","用法（npm 发布后）",[494,495,500],"pre",{"className":496,"code":497,"language":498,"meta":499,"style":499},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm create zship@latest my-saas\n# 或\nnpx create-zship@latest my-saas\n","bash","",[447,501,502,521,528],{"__ignoreMap":499},[503,504,507,511,515,518],"span",{"class":505,"line":506},"line",1,[503,508,510],{"class":509},"sBMFI","pnpm",[503,512,514],{"class":513},"sfazB"," create",[503,516,517],{"class":513}," zship@latest",[503,519,520],{"class":513}," my-saas\n",[503,522,524],{"class":505,"line":523},2,[503,525,527],{"class":526},"sHwdD","# 或\n",[503,529,531,534,537],{"class":505,"line":530},3,[503,532,533],{"class":509},"npx",[503,535,536],{"class":513}," create-zship@latest",[503,538,520],{"class":513},[444,540,541,542,545,546,487],{},"交互式提问会询问 app key、站点名称和域名，然后生成项目、执行 ",[447,543,544],{},"pnpm install","，并可选 ",[447,547,548],{},"git init",[489,550,552],{"id":551},"从-monorepo-使用当前方式","从 monorepo 使用（当前方式）",[444,554,555],{},"在包发布之前，可在 ZShip monorepo 检出中直接运行 CLI：",[494,557,559],{"className":496,"code":558,"language":498,"meta":499,"style":499},"node packages\u002Fcreate-zship\u002Fbin\u002Fcreate-zship.js my-saas --yes --skip-install --skip-git\n",[447,560,561],{"__ignoreMap":499},[503,562,563,566,569,572,575,578],{"class":505,"line":506},[503,564,565],{"class":509},"node",[503,567,568],{"class":513}," packages\u002Fcreate-zship\u002Fbin\u002Fcreate-zship.js",[503,570,571],{"class":513}," my-saas",[503,573,574],{"class":513}," --yes",[503,576,577],{"class":513}," --skip-install",[503,579,580],{"class":513}," --skip-git\n",[489,582,583],{"id":583},"生成内容",[585,586,587,600],"table",{},[588,589,590],"thead",{},[591,592,593,597],"tr",{},[594,595,596],"th",{},"包含",[594,598,599],{},"不包含",[601,602,603,614,626,641],"tbody",{},[591,604,605,612],{},[606,607,608,609,611],"td",{},"Nuxt 应用（",[447,610,457],{},"）+ workspace 依赖包闭包",[606,613,288],{},[591,615,616,623],{},[606,617,618,619,622],{},"参数化的 ",[447,620,621],{},"appKey"," \u002F 品牌 \u002F wrangler 名称",[606,624,625],{},"Admin 租户注册",[591,627,628,638],{},[606,629,630,633,634,637],{},[447,631,632],{},".env.example","、",[447,635,636],{},"doctor","、README",[606,639,640],{},"Cloudflare 资源开通",[591,642,643,650],{},[606,644,645,647,648],{},[447,646,544],{}," + 可选 ",[447,649,548],{},[606,651,268],{},[444,653,654,655,658,659,462],{},"后端模式固定为 ",[451,656,657],{},"existing","：新前端接入共享的多租户 ZShip 服务，所有数据按 ",[447,660,461],{},[489,662,663],{"id":663},"参数",[494,665,667],{"className":496,"code":666,"language":498,"meta":499,"style":499},"create-zship my-saas \\\n  --template nuxt \\\n  --app-key my-saas \\\n  --site-name \"My SaaS\" \\\n  --domain my-saas.example \\\n  --backend existing \\\n  --port 4323 \\\n  --skip-install \\\n  --skip-git\n",[447,668,669,679,689,698,716,727,738,750,758],{"__ignoreMap":499},[503,670,671,673,675],{"class":505,"line":506},[503,672,122],{"class":509},[503,674,571],{"class":513},[503,676,678],{"class":677},"sTEyZ"," \\\n",[503,680,681,684,687],{"class":505,"line":523},[503,682,683],{"class":513},"  --template",[503,685,686],{"class":513}," nuxt",[503,688,678],{"class":677},[503,690,691,694,696],{"class":505,"line":530},[503,692,693],{"class":513},"  --app-key",[503,695,571],{"class":513},[503,697,678],{"class":677},[503,699,701,704,708,711,714],{"class":505,"line":700},4,[503,702,703],{"class":513},"  --site-name",[503,705,707],{"class":706},"sMK4o"," \"",[503,709,710],{"class":513},"My SaaS",[503,712,713],{"class":706},"\"",[503,715,678],{"class":677},[503,717,719,722,725],{"class":505,"line":718},5,[503,720,721],{"class":513},"  --domain",[503,723,724],{"class":513}," my-saas.example",[503,726,678],{"class":677},[503,728,730,733,736],{"class":505,"line":729},6,[503,731,732],{"class":513},"  --backend",[503,734,735],{"class":513}," existing",[503,737,678],{"class":677},[503,739,741,744,748],{"class":505,"line":740},7,[503,742,743],{"class":513},"  --port",[503,745,747],{"class":746},"sbssI"," 4323",[503,749,678],{"class":677},[503,751,753,756],{"class":505,"line":752},8,[503,754,755],{"class":513},"  --skip-install",[503,757,678],{"class":677},[503,759,761],{"class":505,"line":760},9,[503,762,763],{"class":513},"  --skip-git\n",[765,766,767,774,788,794],"ul",{},[768,769,770,773],"li",{},[447,771,772],{},"--yes"," — 接受默认值，跳过交互提问",[768,775,776,779,780,783,784,779,786],{},[447,777,778],{},"--skip-install"," \u002F ",[447,781,782],{},"--skip-git"," — 跳过 ",[447,785,544],{},[447,787,548],{},[768,789,790,793],{},[447,791,792],{},"--source-root \u003Cpath>"," — 从本地 ZShip monorepo 拷贝",[768,795,796,799],{},[447,797,798],{},"--template-dir \u003Cpath>"," — 从打包好的模板目录拷贝",[489,801,802],{"id":802},"后续步骤",[444,804,805],{},"脚手架只生成前端。要上线还需要：",[807,808,809,815,821],"ol",{},[768,810,811,812,814],{},"在 Admin Console 注册项目（",[447,813,461],{},"）",[768,816,817,818,820],{},"按 ",[447,819,632],{}," 配置环境变量",[768,822,823,824],{},"部署前端到 Cloudflare——见",[483,825,293],{"href":336},[444,827,828,829,832,833,487],{},"完整的租户开通流程见仓库指南 ",[447,830,831],{},"docs\u002FNEW_PROJECT_GUIDE.md","；CLI 内部结构与发布清单见 ",[447,834,835],{},"packages\u002Fcreate-zship\u002FREADME.md",[837,838,839],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":499,"searchDepth":523,"depth":523,"links":841},[842,843,844,845,846],{"id":491,"depth":523,"text":492},{"id":551,"depth":523,"text":552},{"id":583,"depth":523,"text":583},{"id":663,"depth":523,"text":663},{"id":802,"depth":523,"text":802},"md",{"lastUpdated":849},"2026-07-31",{"title":122,"description":342},"EfqAug5UdgVJc7QGpCw_luT-2ZPyNAwHEr8cxwl882Y",{"data":853,"body":854},{},{"type":855,"children":856},"root",[857],{"type":858,"tag":444,"props":859,"children":860},"element",{},[861],{"type":862,"value":342},"text",1785489848846]