diff --git a/.computenest/README.md b/.computenest/README.md
new file mode 100644
index 0000000..8c6fc6b
--- /dev/null
+++ b/.computenest/README.md
@@ -0,0 +1,21 @@
+# 代码仓库结构
+
+## 文档目录说明:
+```
+.
+├── README.md - README
+├── docs - 服务文档相关文件
+│ └── index.md
+├── resources - 服务资源文件
+│ ├── icons
+│ │ └── service_logo.png - 服务logo
+│ └── artifact_resources - 部署物相关资源文件
+├── ros_templates - 服务ROS模板目录,支持多模板
+│ └── template.yaml - ROS模板,ROS模板引擎根据该模板会自动创建出所有的资源
+├── config.yaml - 服务配置文件,服务构建过程中会使用计算巢命令行工具computenest-cli,computenest-cli会基于该配置文件构建服务
+├── preset_parameters.yaml - (该文件只有托管版有)服务商预设参数,如VpcId,VSwitchId等,该ros模板内容会渲染为表单方便服务商填写
+```
+
+## 其他
+关于ROS模板,请参见 [资源编排](https://help.aliyun.com/zh/ros)。
+关于computenest-cli请参见 [computenest-cli](https://pypi.org/project/computenest-cli/)。
diff --git a/.computenest/config.yaml b/.computenest/config.yaml
new file mode 100644
index 0000000..f8694b5
--- /dev/null
+++ b/.computenest/config.yaml
@@ -0,0 +1,130 @@
+Service:
+ RegionId: cn-hangzhou
+ DeployType: ros
+ DeployMetadata:
+ ServiceInstanceNameRule:
+ Prefix: docker
+ SupplierDeployMetadata:
+ ArtifactRelation:
+ 'centos_7_9_x64_20G_alibase_20240403.vhd':
+ ArtifactId: ${Artifact.EcsImage.ArtifactId}
+ ArtifactVersion: ${Artifact.EcsImage.ArtifactVersion}
+ TemplateConfigs:
+ - Name: 选择ECS实例(仅Linux)
+ Url: 'ros_templates/template-select-ecs.yaml'
+ AllowedRegions:
+ - cn-qingdao
+ - cn-beijing
+ - cn-zhangjiakou
+ - cn-huhehaote
+ - cn-wulanchabu
+ - cn-hangzhou
+ - cn-shanghai
+ - cn-nanjing
+ - cn-shenzhen
+ - cn-heyuan
+ - cn-guangzhou
+ - cn-fuzhou
+ - cn-wuhan-lr
+ - cn-chengdu
+ - cn-hongkong
+ - ap-northeast-1
+ - ap-northeast-2
+ - ap-southeast-1
+ - ap-southeast-3
+ - ap-southeast-6
+ - ap-southeast-5
+ - ap-southeast-7
+ - us-east-1
+ - us-west-1
+ - eu-west-1
+ - me-east-1
+ - eu-central-1
+ - Name: 新建ECS实例
+ Url: 'ros_templates/template-create-ecs.yaml'
+ AllowedRegions:
+ - cn-qingdao
+ - cn-beijing
+ - cn-zhangjiakou
+ - cn-huhehaote
+ - cn-wulanchabu
+ - cn-hangzhou
+ - cn-shanghai
+ - cn-nanjing
+ - cn-shenzhen
+ - cn-heyuan
+ - cn-guangzhou
+ - cn-fuzhou
+ - cn-wuhan-lr
+ - cn-chengdu
+ - cn-hongkong
+ - ap-northeast-1
+ - ap-northeast-2
+ - ap-southeast-1
+ - ap-southeast-3
+ - ap-southeast-6
+ - ap-southeast-5
+ - ap-southeast-7
+ - us-east-1
+ - us-west-1
+ - eu-west-1
+ - me-east-1
+ - eu-central-1
+ ServiceType: private
+ ServiceInfo:
+ Locale: zh-CN
+ ShortDescription: docker deploy
+ Image: 'resources/icons/service_logo.png'
+Artifact:
+ EcsImage:
+ ArtifactType: EcsImage
+ ArtifactName: docker
+ Description: docker
+ ArtifactProperty:
+ RegionId: ${ImageBuilder.EcsImage.RegionId}
+ ImageId: ${ImageBuilder.EcsImage.SourceImageId}
+ SupportRegionIds:
+ - cn-qingdao
+ - cn-beijing
+ - cn-zhangjiakou
+ - cn-huhehaote
+ - cn-wulanchabu
+ - cn-hangzhou
+ - cn-shanghai
+ - cn-nanjing
+ - cn-shenzhen
+ - cn-heyuan
+ - cn-guangzhou
+ - cn-fuzhou
+ - cn-wuhan-lr
+ - cn-chengdu
+ - cn-hongkong
+ - ap-northeast-1
+ - ap-northeast-2
+ - ap-southeast-1
+ - ap-southeast-3
+ - ap-southeast-6
+ - ap-southeast-5
+ - ap-southeast-7
+ - us-east-1
+ - us-west-1
+ - eu-west-1
+ - me-east-1
+ - eu-central-1
+ImageBuilder:
+ EcsImage:
+ RegionId: ap-southeast-1
+ SourceImageId: centos_7_9_x64_20G_alibase_20240403.vhd
+ InstanceType: ecs.c6.large
+ InternetMaxBandwidthOut: 5
+ CommandType: RunShellScript
+ Timeout: 10800
+ Tags: [ ]
+ CommandContent: |-
+ #!/bin/bash
+ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
+ yum makecache fast
+ yum install -y git
+ yum -y install docker-ce jq
+ systemctl enable docker
+ systemctl start docker
\ No newline at end of file
diff --git a/.computenest/docs/architecture_ecs_single.png b/.computenest/docs/architecture_ecs_single.png
new file mode 100644
index 0000000..087d61f
Binary files /dev/null and b/.computenest/docs/architecture_ecs_single.png differ
diff --git a/.computenest/docs/index_ecs_single.md b/.computenest/docs/index_ecs_single.md
new file mode 100644
index 0000000..3f829f8
--- /dev/null
+++ b/.computenest/docs/index_ecs_single.md
@@ -0,0 +1,70 @@
+# 服务模板说明文档
+
+## 服务说明
+
+**简单描述服务的功能和用途。**
+例如:
+_(服务功能描述,如“WordPress 是一款免费开源的 CMS,适用于创建和管理各种类型的网站。”)_
+
+_(服务快速上手链接或文档,如果有的话)_
+
+## 服务架构
+
+此服务模板构建出的服务的部署架构为单机ecs部署。
+
+
+
+## 计费说明
+通过此服务模板构建服务不产生费用。
+用户部署构建出的服务时,资源费用主要涉及:
+- 所选ECS实例规格
+- 磁盘容量
+- 公网带宽
+
+计费方式包括:
+- 按量付费(小时)
+- 包年包月
+
+预估费用在部署前可实时看到。
+
+## RAM账号所需权限
+
+此服务模板构建出的服务需要对ECS、VPC等资源进行访问和创建操作,若使用RAM用户创建服务实例,需要在创建服务实例前,对使用的RAM用户的账号添加相应资源的权限。添加RAM权限的详细操作,请参见[为RAM用户授权](https://help.aliyun.com/document_detail/121945.html)。所需权限如下表所示:
+
+| 权限策略名称 | 备注 |
+|-------------------------------------|-------------------------------|
+| AliyunECSFullAccess | 管理云服务器服务(ECS)的权限 |
+| AliyunVPCFullAccess | 管理专有网络(VPC)的权限 |
+| AliyunROSFullAccess | 管理资源编排服务(ROS)的权限 |
+| AliyunComputeNestUserFullAccess | 管理计算巢服务(ComputeNest)的用户侧权限 |
+| AliyunComputeNestSupplierFullAccess | 管理计算巢服务(ComputeNest)的服务商侧权限 | |
+
+## 服务实例计费说明
+
+**详细说明服务实例的计费方式。**
+_(描述费用构成,例如所选 vCPU 和内存规格,系统盘类型和容量等)_
+
+_(列出计费方式,例如按量付费或包年包月)_
+
+## 服务实例部署流程
+
+### 部署参数说明
+
+| 参数组 | 参数项 | 说明 |
+|---------------------------------|--------|-------------------------------------------------------------------------|
+| 服务实例 | 服务实例名称 | 长度不超过64个字符,必须以英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)。 |
+| | 地域 | 服务实例部署的地域。 |
+| | 付费类型 | 资源的计费类型:按量付费和包年包月。 |
+| ECS实例配置 | 实例类型 | ECS实例规格配置。 |
+| | 实例密码 | 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*-+=|{}[]:;'<>,.?/ 中的特殊符号)。 |
+| 网络配置 | 可用区 | ECS实例所在可用区。 |
+
+### 部署步骤
+
+**简述如何一步步部署服务实例。**
+
+1. _(步骤1描述和相关链接或图片,如果有的话)_
+2. _(步骤2描述和相关链接或图片,如果有的话)_
+...
+
+[部署链接](部署链接地址)
\ No newline at end of file
diff --git a/.computenest/resources/artifact_resources/docker_compose/docker-compose.yaml b/.computenest/resources/artifact_resources/docker_compose/docker-compose.yaml
new file mode 100644
index 0000000..7e9e666
--- /dev/null
+++ b/.computenest/resources/artifact_resources/docker_compose/docker-compose.yaml
@@ -0,0 +1,49 @@
+version: "3"
+
+services:
+ halo:
+ image: registry.fit2cloud.com/halo/halo:2.17
+ restart: on-failure:3
+ depends_on:
+ halodb:
+ condition: service_healthy
+ networks:
+ halo_network:
+ volumes:
+ - ./halo2:/root/.halo2
+ ports:
+ - "8090:8090"
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
+ interval: 30s
+ timeout: 5s
+ retries: 5
+ start_period: 30s
+ command:
+ - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
+ - --spring.r2dbc.username=halo
+ # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
+ - --spring.r2dbc.password=openpostgresql
+ - --spring.sql.init.platform=postgresql
+ # 外部访问地址,请根据实际需要修改
+ - --halo.external-url=http://localhost:8090/
+ halodb:
+ image: postgres:15.4
+ restart: on-failure:3
+ networks:
+ halo_network:
+ volumes:
+ - ./db:/var/lib/postgresql/data
+ healthcheck:
+ test: [ "CMD", "pg_isready" ]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ environment:
+ - POSTGRES_PASSWORD=openpostgresql
+ - POSTGRES_USER=halo
+ - POSTGRES_DB=halo
+ - PGUSER=halo
+
+networks:
+ halo_network:
diff --git a/.computenest/resources/icons/service_logo.png b/.computenest/resources/icons/service_logo.png
new file mode 100644
index 0000000..6c37525
Binary files /dev/null and b/.computenest/resources/icons/service_logo.png differ
diff --git a/.computenest/ros_templates/template-create-ecs.yaml b/.computenest/ros_templates/template-create-ecs.yaml
new file mode 100644
index 0000000..5e0d252
--- /dev/null
+++ b/.computenest/ros_templates/template-create-ecs.yaml
@@ -0,0 +1,271 @@
+ROSTemplateFormatVersion: '2015-09-01'
+Description:
+ en: Deploy docker CE
+ zh-cn: 部署docker社区版
+Parameters:
+ ZoneId:
+ Type: String
+ AssociationProperty: ALIYUN::ECS::Instance::ZoneId
+ Label:
+ en: VSwitch Availability Zone
+ zh-cn: 交换机可用区
+ WhetherCreateVpc:
+ Type: Boolean
+ Label:
+ en: WhetherCreateVpc
+ zh-cn: 是否新建VPC
+ Default: false
+ VpcId:
+ Type: String
+ Label:
+ en: VPC ID
+ zh-cn: 专有网络VPC实例ID
+ Default: ''
+ AssociationProperty: ALIYUN::ECS::VPC::VPCId
+ AssociationPropertyMetadata:
+ Visible:
+ Condition:
+ Fn::Equals:
+ - ${WhetherCreateVpc}
+ - false
+ VSwitchId:
+ Type: String
+ Label:
+ en: VSwitch ID
+ zh-cn: 交换机实例ID
+ Default: ''
+ AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
+ AssociationPropertyMetadata:
+ VpcId: ${VpcId}
+ ZoneId: ${ZoneId}
+ Visible:
+ Condition:
+ Fn::Equals:
+ - ${WhetherCreateVpc}
+ - false
+ VpcCidrBlock:
+ Type: String
+ Label:
+ en: VPC CIDR IPv4 Block
+ zh-cn: 专有网络IPv4网段
+ Description:
+ zh-cn: VPC的ip地址段范围,
您可以使用以下的ip地址段或其子网:
[10.0.0.0/8]
[172.16.0.0/12]
[192.168.0.0/16]
+ en: 'The ip address range of the VPC in the CidrBlock form;
You can use the following ip address ranges and their subnets:
[10.0.0.0/8]
[172.16.0.0/12]
[192.168.0.0/16]'
+ Default: 192.168.0.0/16
+ AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
+ AssociationPropertyMetadata:
+ Visible:
+ Condition:
+ Fn::Equals:
+ - ${WhetherCreateVpc}
+ - true
+ VSwitchCidrBlock:
+ Type: String
+ Label:
+ en: VSwitch CIDR Block
+ zh-cn: 交换机子网网段
+ Description:
+ zh-cn: 必须属于VPC的子网段。
+ en: Must belong to the subnet segment of VPC.
+ Default: 192.168.1.0/24
+ AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
+ AssociationPropertyMetadata:
+ VpcCidrBlock: VpcCidrBlock
+ Visible:
+ Condition:
+ Fn::Equals:
+ - ${WhetherCreateVpc}
+ - true
+ EcsInstanceType:
+ Type: String
+ Label:
+ en: Instance Type
+ zh-cn: 实例类型
+ AssociationProperty: ALIYUN::ECS::Instance::InstanceType
+ AssociationPropertyMetadata:
+ ZoneId: ${ZoneId}
+ InstanceChargeType: ${InstanceChargeType}
+ InstancePassword:
+ NoEcho: true
+ Type: String
+ AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
+ Label:
+ en: Instance Password
+ zh-cn: 实例密码
+ ConstraintDescription:
+ en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)
+ zh-cn: 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
+ MinLength: 8
+ MaxLength: 30
+ AssociationProperty: ALIYUN::ECS::Instance::Password
+ PayType:
+ Type: String
+ Label:
+ en: ECS Instance Charge Type
+ zh-cn: 付费类型
+ Default: PostPaid
+ AllowedValues:
+ - PostPaid
+ - PrePaid
+ AssociationProperty: ChargeType
+ AssociationPropertyMetadata:
+ LocaleKey: InstanceChargeType
+ PayPeriodUnit:
+ Type: String
+ Description:
+ en: The long cycle of purchasing resources.
Week is a Week and Month is a Month.
The default value is month.
When ECS instance types are PrePaid valid
+ zh-cn: 购买资源时长的周期。
Week为周,Month为月
默认值为月
当ECS实例类型为PrePaid有效
+ Label:
+ en: Pay Period Unit
+ zh-cn: 购买资源时长周期
+ Default: Month
+ AllowedValues:
+ - Month
+ - Year
+ AssociationProperty: PayPeriodUnit
+ AssociationPropertyMetadata:
+ Visible:
+ Condition:
+ Fn::Not:
+ Fn::Equals:
+ - ${PayType}
+ - PostPaid
+ PayPeriod:
+ Type: Number
+ Label:
+ en: Period
+ zh-cn: 购买资源时长
+ Default: 1
+ AllowedValues:
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+ - 9
+ AssociationProperty: PayPeriod
+ AssociationPropertyMetadata:
+ Visible:
+ Condition:
+ Fn::Not:
+ Fn::Equals:
+ - ${PayType}
+ - PostPaid
+Mappings: {}
+Conditions:
+ CreateVpcConditions:
+ Fn::Equals:
+ - true
+ - Ref: WhetherCreateVpc
+Resources:
+ EcsVpc:
+ Type: ALIYUN::ECS::VPC
+ Condition: CreateVpcConditions
+ Properties:
+ CidrBlock:
+ Ref: VpcCidrBlock
+ VpcName:
+ Ref: ALIYUN::StackName
+ EcsVSwitch:
+ Type: ALIYUN::ECS::VSwitch
+ Condition: CreateVpcConditions
+ Properties:
+ VpcId:
+ Ref: EcsVpc
+ ZoneId:
+ Ref: ZoneId
+ CidrBlock:
+ Ref: VSwitchCidrBlock
+ EcsSecurityGroup:
+ Type: ALIYUN::ECS::SecurityGroup
+ Properties:
+ VpcId:
+ Fn::If:
+ - CreateVpcConditions
+ - Ref: EcsVpc
+ - Ref: VpcId
+ SecurityGroupIngress:
+ - Priority: 1
+ PortRange: 22/22
+ SourceCidrIp: 0.0.0.0/0
+ IpProtocol: tcp
+ EcsInstanceGroup:
+ Type: ALIYUN::ECS::InstanceGroup
+ Properties:
+ ZoneId:
+ Ref: ZoneId
+ IoOptimized: optimized
+ InstanceChargeType:
+ Ref: PayType
+ PeriodUnit:
+ Ref: PayPeriodUnit
+ Period:
+ Ref: PayPeriod
+ VpcId:
+ Fn::If:
+ - CreateVpcConditions
+ - Ref: EcsVpc
+ - Ref: VpcId
+ VSwitchId:
+ Fn::If:
+ - CreateVpcConditions
+ - Ref: EcsVSwitch
+ - Ref: VSwitchId
+ SecurityGroupId:
+ Ref: EcsSecurityGroup
+ SystemDiskCategory: cloud_essd
+ # 系统盘大小可以根据需要调整
+ SystemDiskSize: 100
+ # 数据盘配置
+ MaxAmount: 1
+ ImageId: centos_7
+ InstanceType:
+ Ref: EcsInstanceType
+ Password:
+ Ref: InstancePassword
+ # 公网带宽, 为0代表不开公网
+ InternetMaxBandwidthOut: 5
+ InstanceName:
+ Fn::Join:
+ - '-'
+ - - Ref: ALIYUN::StackName
+ - '[1,4]'
+Metadata:
+ ALIYUN::ROS::Interface:
+ ParameterGroups:
+ - Parameters:
+ - PayType
+ - PayPeriodUnit
+ - PayPeriod
+ Label:
+ default:
+ en: PayType Configuration
+ zh-cn: 付费类型配置
+ - Parameters:
+ - EcsInstanceType
+ - SystemDiskCategory
+ - SystemDiskSize
+ - InstancePassword
+ Label:
+ default:
+ zh-cn: ECS实例配置
+ en: ECS Instance Configuration
+ - Parameters:
+ - ZoneId
+ Label:
+ default:
+ zh-cn: 可用区配置
+ en: Zone Configuration
+ - Parameters:
+ - WhetherCreateVpc
+ - VpcCidrBlock
+ - VSwitchCidrBlock
+ - VpcId
+ - VSwitchId
+ Label:
+ default:
+ zh-cn: 选择已有基础资源配置
+ en: Choose existing Infrastructure Configuration
\ No newline at end of file
diff --git a/.computenest/ros_templates/template-select-ecs.yaml b/.computenest/ros_templates/template-select-ecs.yaml
new file mode 100644
index 0000000..9d1f779
--- /dev/null
+++ b/.computenest/ros_templates/template-select-ecs.yaml
@@ -0,0 +1,50 @@
+ROSTemplateFormatVersion: '2015-09-01'
+Description:
+ en: Deploy docker CE
+ zh-cn: 部署docker社区版
+Parameters:
+ InstanceId:
+ Type: String
+ Label:
+ en: Select Running Linux ECS Instance with public network access enabled
+ zh-cn: 选择公网Linux实例
+ Description:
+ en: Note:- ECS instances can access the public network
- ECS instance is running, wait a while if instance is just started
- Security group opens port 8888
- No other environments such as Apache/Nginx/php/MySQL have been installed, duplicate installation will fail< /li>
- System compatibility recommendation:Centos7.x/Alibaba Cloud Linux2 > Debian10 > Ubuntu 20.04 > Centos8 stream/Alibaba Cloud Linux3 > Ubuntu 18.04
+ zh-cn: 要求:- Linux操作系统(Alibaba Cloud Linux/CentOS/Ubuntu/Debian)
- 可以访问公网
- ECS实例在运行中,如实例刚启动请稍等片刻
- 安全组打开8888端口
- 没有装过其它环境如Apache/Nginx/php/MySQL
+ AssociationProperty: ALIYUN::ECS::Instance::InstanceId
+ AssociationPropertyMetadata:
+ OnlyShowSelector: true
+ RegionId: ${RegionId}
+ Status: Running
+ OSType: linux
+ NetworkType: vpc
+Resources:
+ Execution:
+ Type: 'ALIYUN::OOS::Execution'
+ Properties:
+ ResourceOptions:
+ CancelOnDelete: true
+ TemplateName: "ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL"
+ SafetyCheck: Skip
+ Parameters:
+ regionId:
+ Ref: ALIYUN::Region
+ action: "install"
+ packageName: "ACS-Extension-DockerCE-1853370294850618"
+ targets:
+ Type: ResourceIds
+ ResourceIds:
+ - Ref: InstanceId
+ RegionId:
+ Ref: ALIYUN::Region
+Outputs:
+ 部署日志:
+ Description:
+ zh-cn: 部署日志
+ Value:
+ Fn::Jq:
+ - First
+ - 'if .configurationOutput[0].InstanceResult[0].PackageResult == null then .commandOutput[0].InstanceResult[0].PackageResult else "N/A" end'
+ - Fn::GetAtt:
+ - Execution
+ - Outputs
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..4854332
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,22 @@
+
+name: build
+on:
+ push:
+ branches:
+ - main
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.x
+ - run: pip install mkdocs
+ - run: pip install mkdocs-aliyun-computenest
+ - run: mkdocs gh-deploy --force --clean --verbose
+ - run: |
+ full_repo_name="${{ github.repository }}"
+ repo_name=${full_repo_name#*/}
+ curl -X POST -H "Content-Type: application/json" -d "{"ServiceDocRepoNames":["${repo_name}"]}" "http://1119821156893882.eventbridge.ap-southeast-1.aliyuncs.com/webhook/putEvents?token=d7ae8f64e0ce42c7b757f9013e3bbd13920fe8ea7c2b4d2cb3d2e8e9dfbd4230afc9f9dfb37448448e416da1a85dc2fc81627b00fecd4909bb47e536833d1bae"
+
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3cd7569
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# quickstart-docker
\ No newline at end of file
diff --git a/docs/1.jpg b/docs/1.jpg
new file mode 100644
index 0000000..e3a0292
Binary files /dev/null and b/docs/1.jpg differ
diff --git a/docs/2.jpg b/docs/2.jpg
new file mode 100644
index 0000000..bd7ec75
Binary files /dev/null and b/docs/2.jpg differ
diff --git a/docs/3.jpg b/docs/3.jpg
new file mode 100644
index 0000000..96d449f
Binary files /dev/null and b/docs/3.jpg differ
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..6a9c1f1
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,35 @@
+# Halo 社区版快速部署
+
+## 概述
+Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。 详情请查看[Halo官网](https://docs.halo.run/)。
+
+
+## 计费说明
+Halo 社区版上的费用主要涉及:
+
+- 所选vCPU与内存规格
+- 系统盘类型及容量
+- 公网带宽
+
+
+## RAM账号所需权限
+部署Halo 社区版,需要对部分阿里云资源进行访问和创建操作。因此您的账号需要包含如下资源的权限。
+ **说明**:当您的账号是RAM账号时,才需要添加此权限。
+
+| 权限策略名称 | 备注 |
+|---------------------------------|------------------------------------|
+| AliyunECSFullAccess | 管理云服务器服务(ECS)的权限 |
+| AliyunVPCFullAccess | 管理专有网络(VPC)的权限 |
+| AliyunROSFullAccess | 管理资源编排服务(ROS)的权限 |
+| AliyunComputeNestUserFullAccess | 管理计算巢服务(ComputeNest)的用户侧权限 |
+
+## 部署流程
+
+1. 访问Halo 社区版服务[部署链接](https://computenest.console.aliyun.com/service/instance/create/cn-hangzhou?type=user&ServiceId=service-71b471d79c224520bba3),按提示填写部署参数:
+ ![image.png](1.jpg)
+
+2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
+3. 等待部署完成后进入服务实例管理, 在控制台找到Halo服务访问链接。
+ ![image.png](2.jpg)
+4. 单击链接访问服务。
+ ![image.png](3.jpg)
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..d8f8f8c
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,3 @@
+site_name: Aliyun 计算巢 x Demo
+theme:
+ name: aliyuncomputenest
\ No newline at end of file