deploy_website
Deploy static websites to 1Panel servers by specifying domain and build directory for automated hosting setup.
Instructions
Deploy website to 1Panel server
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Website domain | |
| buildDir | Yes | Build directory name (e.g. /Users/username/project/dist, /Users/username/project/build) |
Implementation Reference
- operations/deploy-website.js:4-67 (handler)The handler function for the deploy_website tool. It deploys static website files from a build directory to a domain on 1Panel, creating the site if necessary, and returns deployment status.export async function deployWebsite(buildDirPath, domain = "") { if (!fs.existsSync(buildDirPath)) { return { content: [ { type: "text", text: `Build directory ${buildDir} does not exist`, }, ], isError: true, }; } console.log(`Start deploying directory ${buildDirPath} to 1Panel`); const onePanelAPI = new OnePanelAPI({ baseURL: process.env.ONEPANEL_BASE_URL, apiKey: process.env.ONEPANEL_API_KEY, version: process.env.ONEPANEL_API_VERSION || "v2", languageCode: process.env.ONEPANEL_LANGUAGE || "zh", }); const siteConfig = { domain: domain, }; let website = await onePanelAPI.getWebsiteDetail(domain); if (!website) { website = await onePanelAPI.createWebsite(siteConfig); console.log(`Create website: domain: ${domain}`); } else { console.log(`Website already exists: domain: ${domain}`); } console.log("Upload files to website"); const uploadResult = await onePanelAPI.uploadStaticFiles( domain, buildDirPath ); return { content: [ { type: "text", text: JSON.stringify( { domain: domain, url: `http://${domain}`, status: "success", uploadStats: { totalFiles: uploadResult.totalFiles, successCount: uploadResult.successCount, failCount: uploadResult.failCount, }, }, null, 2 ), }, ], }; }