back
loading skill details...
One-click deploy, publish, and update a local project or Git repository to Alibaba Cloud International (alibabacloud.com), producing an accessible online service with a public IP. Supports full-stack ROS orchestration, automatic cloud-resource provisioning, pre-deployment price confirmation, service
---
name: qwencloud-deploy
version: "2.2"
description: >-
One-click deploy, publish, and update a local project or Git repository to Alibaba Cloud
International (alibabacloud.com), producing an accessible online service with a public IP.
Supports full-stack ROS orchestration, automatic cloud-resource provisioning, pre-deployment
price confirmation, service health checks, deployment-state recording, hot updates, and
optional domain + HTTPS setup.
Use when: the user asks to deploy a project to the cloud, put an app online, publish a
website, generate an access URL, deploy a Git repo, or update an online version and has NOT
named a specific cloud platform; or the user mentions "Alibaba Cloud", "alibabacloud.com",
or the international site.
Do not use when: the user explicitly targets Aliyun China (aliyun.com), AWS, GCP, Azure, or
another specific cloud platform.
trigger: >-
Use when the user asks to deploy a project to the cloud, put an app online, publish a website,
generate an access URL, deploy a Git repo, or update an online version — and has NOT specified
a particular cloud platform. Also use when the user mentions "Alibaba Cloud", "alibabacloud.com",
or the international site.
skip: >-
Do NOT use when the user explicitly targets Aliyun China (aliyun.com), AWS, GCP, Azure,
or another specific cloud platform.
prerequisites:
- aliyun CLI 3.x configured with international-site credentials in OAuth mode
input: >-
A local project directory, Git URL, or an existing deployment state file (.qwencloud-deploy).
Optional: user preferences for instance type, region, database.
output: >-
A running cloud service with public IP (or domain + HTTPS), deployment state file
(.qwencloud-deploy), and success card with access URL, cost summary, and next-step guidance.
---
# Qwen Cloud Deploy
## Quick Path
1. **Route the task** — Match to one of 4 modes: Full-Stack Deploy · Hot Update · Delete · HTTPS Setup.
2. **Deploy (default)** — Execute steps 1→13 in order; each step has a reference doc.
3. **Confirm cost before creating anything** — Show hourly price in USD, get user confirmation.
4. **Record state** — On success write `.qwencloud-deploy`.
## Scope
| In Scope | Out of Scope |
|----------|--------------|
| Local project / Git → Alibaba Cloud International | China site → use `qianwenai-deploy` |
| Full-stack ROS, hot update, cleanup | AWS/GCP/Azure/other clouds |
| ECS + optional RDS + OSS + public IP | K8s/Serverless/container orchestration |
| OAuth/AK auth (no credential collection) | — |
## Assumptions
- `aliyun` CLI 3.x installed; when no valid credential, follow `reference/deploy/01_env_check.md`.
- Default region `ap-southeast-1` (Singapore).
---
## Task Routing
| Signal | Mode |
|--------|------|
| `.qwencloud-deploy` exists + user says "update" | **Hot Update** |
| `.qwencloud-deploy` exists + "delete"/"cleanup" | **Delete** |
| "bind domain"/"HTTPS"/"SSL" (deployment exists) | **HTTPS Setup** |
| Git URL or local project (no existing deployment) | **Full-Stack Deploy** |
On trigger, display welcome message first (see `reference/rules/rule_interaction.md`).
---
## Full-Stack Deploy (Steps 1–13)
### Phase 1 · Preparation
| Step | Action | Reference |
|------|--------|-----------|
| 1 | Environment check | `reference/deploy/01_env_check.md` |
| 2 | Git clone (if Git URL) | `reference/deploy/02_git_clone.md` |
| 3 | Project analysis | `reference/deploy/03_analyze_project.md` |
### Phase 2 · Resource Planning
| Step | Action | Reference |
|------|--------|-----------|
| 4 | Existing deployment scan | `reference/deploy/04_check_existing.md` |
| 5 | Database identification | `reference/deploy/05_database.md` |
| 6 | ECS instance type selection | `reference/deploy/06_instance_type.md` |
| 7 | Generate ROS template | `reference/deploy/07_generate_template.md` |
| 8 | Stock check | `reference/deploy/08_check_stock.md` |
| 9 | Template validation + cost estimate | `reference/deploy/09_estimate_cost.md` |
### Phase 3 · Execution
| Step | Action | Reference |
|------|--------|-----------|
| 10 | Upload artifacts + regenerate template | `reference/deploy/10_upload_artifacts.md` |
| 11 | Create stack | `reference/deploy/11_create_stack.md` |
| 12 | Wait for terminal state + health check | `reference/deploy/12_wait_stack.md` |
| 13 | Record state | `reference/deploy/13_record_state.md` |
---
## Hot Update
**Trigger**: `.qwencloud-deploy` exists + user wants to update code. IP unchanged.
| Step | Action | Reference |
|------|--------|-----------|
| U1 | Build + upload new artifacts | `reference/deploy/10_upload_artifacts.md` |
| U2 | Deliver update (Cloud Assistant) | `reference/hotfix/update_app.md` |
| U3 | Health check + update state | `reference/hotfix/update_app.md` |
Update script template: `reference/hotfix/update_recipe.md`.
---
## Delete / Cleanup
**Trigger**: User says "delete", "cleanup", "release resources".
> ⚠️ Irreversible — confirm twice. With RDS: warn about data loss.
> 🚫 Never manually delete individual resources — only use `delete_stack.sh`.
See `reference/cleanup/delete_stack.md`.
---
## HTTPS Setup (Optional)
**Trigger**: User says "bind domain" / "HTTPS" / "SSL" after deployment exists.
See `reference/https/https_setup.md`.
---
## Key Constraints
| Constraint | Rule |
|------------|------|
| Currency | Always USD |
| Auth | OAuth (recommended) or AK/SK; never collect credentials via chat |
| Template upload | Must use `--TemplateURL` (WAF blocks TemplateBody) |
| Stack name retry | Reuse — never regenerate |
| Resource deletion | Always via `delete_stack.sh` |
| Region default | `ap-southeast-1` |
| Commands to user | Never show underlying commands |
---
## File Layout
```
scripts/
generate_template.py upload_artifacts.py
create_stack.sh record_state.py
delete_stack.sh update_app.sh
wait_and_probe.py setup_domain.sh
reference/
deploy/
01_env_check.md ~ 13_record_state.md
hotfix/
update_app.md update_recipe.md
cleanup/
delete_stack.md
https/
https_setup.md
rules/
rule_interaction.md rule_error_handling.md
templates/
ros_single[_rds].yaml
userdata/{systemd,docker,nginx_proxy,nginx_static,nginx_static_proxy}.sh
```
don't have the plugin yet? install it then click "run inline in claude" again.