{"_id":"1panel-cli","_rev":"2-56544048c904cc6390756572cff27d84","name":"1panel-cli","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"1panel-cli","version":"1.0.1","keywords":["1Panel","Static Website","Deploy"],"author":{"url":"https://github.com/ruibaby","name":"Ryan Wang"},"license":"MIT","_id":"1panel-cli@1.0.1","maintainers":[{"name":"kalicyh","email":"kalicyh@qq.com"}],"homepage":"https://github.com/kalicyh/1Panel-rocket-cli","bugs":{"url":"https://github.com/kalicyh/1Panel-rocket-cli/issues"},"bin":{"1panel-cli":"bin/index.mjs"},"dist":{"shasum":"952335a98c750dff40715e7a971a901eb29587e1","tarball":"https://registry.npmjs.org/1panel-cli/-/1panel-cli-1.0.1.tgz","fileCount":6,"integrity":"sha512-kjUl/h8VjOtYkYyVlEarkVCIUeJtBBaqX4D7gpP5fXY4+V48bnMVtCLmXeFVeXs5Pt82QQvSBpVxgD600HMYAw==","signatures":[{"sig":"MEUCIF6cmGUhJV+y8AJzzOoXL5NuK4frBNK+NmaqltxOIMvJAiEA7Wu4cuG3DmoN4Fpz4yVM+sa/L0v8cwsMKEyB1enJdXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":794814},"main":"./bin/index.mjs","type":"module","engines":{"node":">=24 <26"},"gitHead":"b18d3c263803634374f253c079a0bc91516b8126","scripts":{"build":"ncc build src/index.mjs -o bin","check":"biome check src --fix --unsafe","prepublish":"pnpm run build","test:smoke":"node ./bin/index.mjs --help"},"_npmUser":{"name":"kalicyh","email":"kalicyh@qq.com"},"repository":{"url":"git+https://github.com/kalicyh/1Panel-rocket-cli.git","type":"git"},"_npmVersion":"10.9.3","description":"An AI-friendly CLI for deploying static websites to 1Panel.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.9.0","fs-extra":"^11.3.0","commander":"^13.1.0","form-data":"^4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.9.0","devDependencies":{"prompts":"^2.4.2","@vercel/ncc":"^0.38.3","@biomejs/biome":"1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/1panel-cli_1.0.1_1776137387566_0.038474567273676596","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"1panel-cli","version":"1.0.2","description":"An AI-friendly CLI for deploying static websites to 1Panel.","keywords":["1Panel","Static Website","Deploy"],"homepage":"https://github.com/kalicyh/1Panel-rocket-cli","bugs":{"url":"https://github.com/kalicyh/1Panel-rocket-cli/issues"},"repository":{"type":"git","url":"git+https://github.com/kalicyh/1Panel-rocket-cli.git"},"license":"MIT","author":{"name":"Ryan Wang","url":"https://github.com/ruibaby"},"type":"module","main":"./bin/index.mjs","bin":{"1panel-cli":"bin/index.mjs"},"publishConfig":{"access":"public"},"engines":{"node":">=24 <26"},"scripts":{"build":"ncc build src/index.mjs -o bin","check":"biome check src --fix --unsafe","prepublish":"pnpm run build","test:smoke":"node ./bin/index.mjs --help"},"dependencies":{"axios":"^1.9.0","commander":"^13.1.0","form-data":"^4.0.2","fs-extra":"^11.3.0"},"devDependencies":{"@biomejs/biome":"1.9.4","@vercel/ncc":"^0.38.3","prompts":"^2.4.2"},"packageManager":"pnpm@10.9.0","_id":"1panel-cli@1.0.2","gitHead":"7adcadf7bfeddfcc2b6cf04b9c709f7f835ac492","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-MhNI65qcaHhMP0YCSETbAl7pML84lo25cQ9ifvbC3BZVGwh4yzJepmiLoUESjvaf7+qoRTNkTJayNIpzd30IQQ==","shasum":"e6fbd1264ec72bfbc5b9ed178c7385cd3a1b40e3","tarball":"https://registry.npmjs.org/1panel-cli/-/1panel-cli-1.0.2.tgz","fileCount":6,"unpackedSize":795516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDOFA/J0rLPm/+APX7wvDVXfeT4t2P/SyCpYAFnq8O+7QIhAO6LGBNK1KYV3H7CnfUs50I+fxNQ8u9xjyxj23+AcqcT"}]},"_npmUser":{"name":"kalicyh","email":"kalicyh@qq.com"},"directories":{},"maintainers":[{"name":"kalicyh","email":"kalicyh@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1panel-cli_1.0.2_1776137878243_0.6504895672099"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-14T03:29:47.484Z","modified":"2026-04-14T03:37:58.579Z","1.0.1":"2026-04-14T03:29:47.726Z","1.0.2":"2026-04-14T03:37:58.443Z"},"bugs":{"url":"https://github.com/kalicyh/1Panel-rocket-cli/issues"},"author":{"name":"Ryan Wang","url":"https://github.com/ruibaby"},"license":"MIT","homepage":"https://github.com/kalicyh/1Panel-rocket-cli","keywords":["1Panel","Static Website","Deploy"],"repository":{"type":"git","url":"git+https://github.com/kalicyh/1Panel-rocket-cli.git"},"description":"An AI-friendly CLI for deploying static websites to 1Panel.","maintainers":[{"name":"kalicyh","email":"kalicyh@qq.com"}],"readme":"# 1Panel CLI\n\n一个用于将静态网站部署到 1Panel 面板的命令行工具。\n\n本项目最初基于 [ruibaby/1Panel-rocket-cli](https://github.com/ruibaby/1Panel-rocket-cli) 演进而来。\n\n[English Documentation](README.md)\n\n## 功能特点\n\n- 将静态网站部署到 1Panel 服务器\n- 如果网站不存在，自动创建\n- 带有重试机制的文件上传\n- 用于选择现有网站的交互模式\n- 易于与 CI/CD 工作流集成\n- 支持 AI 代理和 CI 的非交互模式\n- 支持机器可读的 JSON 输出\n- 支持通过 `list-websites` 发现网站\n- 兼容当前 1Panel API v2\n\n## 安装\n\n```bash\n# 使用 npm 全局安装\nnpm install -g 1panel-cli\n\n# 使用主推荐运行时\nnvm install 24\nnvm use 24\n\n# 可选兼容性验证\nnvm install 25\n```\n\n## 基本用法\n\n```bash\n# 部署静态网站\n1panel-cli -p ./dist -d example.com\n\n# 列出已有网站\n1panel-cli list-websites\n```\n\n## 命令行选项\n\n| 选项 | 简写 | 描述 | 环境变量 |\n|------|------|------|---------|\n| --baseUrl | -e | 1Panel API 的基础 URL | ONEPANEL_BASE_URL |\n| --apiKey | -a | 1Panel API 的 API 密钥 | ONEPANEL_API_KEY |\n| --path | -p | 静态网站构建目录的路径 | - |\n| --domain | -d | 网站的域名 | - |\n| --group-id | - | 自动建站时指定网站分组 ID | ONEPANEL_WEBSITE_GROUP_ID |\n| --alias | - | 自动建站时指定网站别名 | - |\n| --yes | -y | 跳过所有提示并使用默认值 | - |\n| --non-interactive | - | 遇到需要输入时直接失败而不是交互提示 | - |\n| --json | - | 输出机器可读的 JSON | - |\n| --create-if-missing | - | 网站不存在时自动创建 | - |\n\n## 使用示例\n\n```bash\n# 使用环境变量\nexport ONEPANEL_BASE_URL=\"http://your.1panel.com\"\nexport ONEPANEL_API_KEY=\"your_api_key\"\n1panel-cli -p ./dist -d example.com\n\n# 使用命令行参数\n1panel-cli -e \"http://your.1panel.com\" -a \"your_api_key\" -p ./dist -d example.com\n\n# 交互式模式（不指定域名）\n1panel-cli -e \"http://your.1panel.com\" -a \"your_api_key\" -p ./dist\n# 系统将提示您从 1Panel 服务器中选择一个网站\n\n# 适合 AI/CI 的部署方式\nONEPANEL_BASE_URL=\"http://your.1panel.com\" \\\nONEPANEL_API_KEY=\"your_api_key\" \\\n1panel-cli -p ./dist -d example.com --non-interactive --json\n\n# 适合 AI/CI 的自动建站部署\nONEPANEL_BASE_URL=\"http://your.1panel.com\" \\\nONEPANEL_API_KEY=\"your_api_key\" \\\n1panel-cli -p ./dist -d example.com --create-if-missing --non-interactive --json\n\n# 在自动化里显式指定网站分组\nONEPANEL_BASE_URL=\"http://your.1panel.com\" \\\nONEPANEL_API_KEY=\"your_api_key\" \\\nONEPANEL_WEBSITE_GROUP_ID=\"1\" \\\n1panel-cli -p ./dist -d example.com --create-if-missing --non-interactive --json\n\n# 自动化前先列出网站\nONEPANEL_BASE_URL=\"http://your.1panel.com\" \\\nONEPANEL_API_KEY=\"your_api_key\" \\\n1panel-cli list-websites --json\n\n# 不全局安装，直接用 npx 运行\nnpx --yes 1panel-cli -p ./dist -d example.com --non-interactive --json\n```\n\n## AI 自动化使用说明\n\n对于 AI 代理和 CI：\n\n- 默认优先使用 `--non-interactive --json`\n- 部署时显式传入 `--domain`\n- 如果还不知道目标域名，先执行 `list-websites --json`\n- 只有在允许自动创建站点时才使用 `--create-if-missing`\n- 如果希望自动建站行为稳定可预测，传入 `--group-id` 或 `ONEPANEL_WEBSITE_GROUP_ID`\n\n仓库内也附带了一个给代理使用的 skill：\n\n- `skills/1panel-cli-ai/SKILL.md`\n\n## Node 版本支持\n\n- 主支持版本：Node 24\n- 已验证兼容：Node 25\n- 推荐本地默认版本：`.nvmrc` 固定为 `24`\n\n## API 说明\n\n- CLI 现在对接当前 1Panel API 基础路径 `/api/v2`\n- 网站列表优先使用 `GET /websites/list`\n- 当列表响应里没有 `sitePath` 时，上传前会继续调用 `GET /websites/:id` 获取完整站点路径\n- 自动建站使用当前 `request.WebsiteCreate` 请求体结构\n- 文件上传使用 `POST /files/upload`，同时提交 `file` 和 `path`\n\n## 配置选项\n\n### 忽略文件\n\n默认情况下，以下文件和目录将被忽略，不会上传：\n\n- node_modules/\n- .git/\n- .vscode/\n- .env\n- .env.local\n\n## GitHub Actions 集成\n\n您可以轻松地将 1Panel CLI 与 GitHub Actions 集成，以自动部署您的静态网站。\n\n### 工作流示例\n\n在您的代码仓库中创建 `.github/workflows/deploy.yml` 文件：\n\n```yaml\nname: Build and Deploy\n\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n      \n      - name: Setup pnpm\n        uses: pnpm/action-setup@v6\n        with:\n          version: 10\n      \n      - name: Setup Node.js\n        uses: actions/setup-node@v6\n        with:\n          node-version: '24'\n          cache: 'pnpm'\n      \n      - name: Install dependencies\n        run: pnpm install\n      \n      - name: Build\n        run: pnpm build\n      \n      - name: Deploy to 1Panel\n        env:\n          ONEPANEL_BASE_URL: ${{ secrets.ONEPANEL_BASE_URL }}\n          ONEPANEL_API_KEY: ${{ secrets.ONEPANEL_API_KEY }}\n        run: |\n          npx --yes 1panel-cli -p ./dist -d example.com --non-interactive --json\n```\n\n### 配置密钥\n\n确保在您的 GitHub 仓库中添加这些密钥：\n\n1. 进入您的仓库 → Settings → Secrets and variables → Actions\n2. 添加以下密钥：\n   - `ONEPANEL_BASE_URL`：您的 1Panel 服务器的 URL\n   - `ONEPANEL_API_KEY`：您的 1Panel API 密钥\n\n## 开发\n\n### 设置环境\n\n```bash\n# 克隆仓库\ngit clone https://github.com/ruibaby/1panel-rocket-cli.git\ncd 1panel-rocket-cli\n\n# 安装依赖\nnvm use\npnpm install\n```\n\n### 本地开发\n\n```bash\n# 链接包到本地\nnpm link\n\n# 在开发模式下运行\n1panel-cli -p ./dist -d example.com\n```\n\n## 许可证\n\nMIT\n","readmeFilename":"README.zh.md"}