+
+## 计费说明
+通过此服务模板构建服务不产生费用。
+用户部署构建出的服务时,资源费用主要涉及:
+- 所选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/file/hanans426_one-api.tar.gz b/.computenest/resources/artifact_resources/file/hanans426_one-api.tar.gz
new file mode 100644
index 00000000..ac13201f
Binary files /dev/null and b/.computenest/resources/artifact_resources/file/hanans426_one-api.tar.gz differ
diff --git a/.computenest/resources/icons/service_logo.png b/.computenest/resources/icons/service_logo.png
new file mode 100644
index 00000000..6c37525c
Binary files /dev/null and b/.computenest/resources/icons/service_logo.png differ
diff --git a/.computenest/ros_templates/template.yaml b/.computenest/ros_templates/template.yaml
new file mode 100644
index 00000000..dfb5165a
--- /dev/null
+++ b/.computenest/ros_templates/template.yaml
@@ -0,0 +1,218 @@
+ROSTemplateFormatVersion: '2015-09-01'
+Description:
+ en: Source Code Service Ros Template
+ zh-cn: 源代码服务模板
+Parameters:
+ PayType:
+ Type: String
+ Label:
+ en: ECS Instance Charge Type
+ zh-cn: 付费类型
+ Default: PostPaid
+ AllowedValues:
+ - PostPaid
+ - PrePaid
+ AssociationProperty: ChargeType
+ AssociationPropertyMetadata:
+ LocaleKey: InstanceChargeType
+ PayPeriodUnit:
+ Type: String
+ 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
+ EcsInstanceType:
+ Type: String
+ Label:
+ en: Instance Type
+ zh-cn: 实例类型
+ AssociationProperty: ALIYUN::ECS::Instance::InstanceType
+ AssociationPropertyMetadata:
+ InstanceChargeType: ${PayType}
+ Constraints:
+ InstanceTypeFamily:
+ - ecs.u1
+ - ecs.e
+ InstancePassword:
+ NoEcho: true
+ Type: String
+ Description:
+ en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)
+ zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
+ AllowedPattern: '^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$'
+ 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
+ ZoneId:
+ Type: String
+ Label:
+ en: Zone ID
+ zh-cn: 可用区ID
+ AssociationProperty: ALIYUN::ECS::Instance::ZoneId
+ VpcId:
+ Type: String
+ Label:
+ en: VPC ID
+ zh-cn: 专有网络VPC实例ID
+ AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
+ VSwitchId:
+ Type: String
+ Label:
+ en: VSwitch ID
+ zh-cn: 交换机实例ID
+ Default: ''
+ AssociationProperty: 'ALIYUN::ECS::VSwitch::VSwitchId'
+ AssociationPropertyMetadata:
+ VpcId: VpcId
+ ZoneId: ZoneId
+ AdminPassword:
+ Type: String
+ AssociationProperty: ALIYUN::ECS::Instance::Password
+ Label: 管理员密码
+ NoEcho: True
+Resources:
+ SecurityGroup:
+ Type: ALIYUN::ECS::SecurityGroup
+ Properties:
+ SecurityGroupName:
+ Ref: ALIYUN::StackName
+ VpcId:
+ Ref: VpcId
+ SecurityGroupIngress:
+ - PortRange: 80/80
+ Priority: 1
+ SourceCidrIp: 0.0.0.0/0
+ IpProtocol: tcp
+ NicType: internet
+ InstanceGroup:
+ Type: ALIYUN::ECS::InstanceGroup
+ Properties:
+ # 付费类型
+ InstanceChargeType:
+ Ref: PayType
+ PeriodUnit:
+ Ref: PayPeriodUnit
+ Period:
+ Ref: PayPeriod
+ VpcId:
+ Ref: VpcId
+ VSwitchId:
+ Ref: VSwitchId
+ ZoneId:
+ Ref: ZoneId
+ SecurityGroupId:
+ Ref: SecurityGroup
+ ImageId: centos_7_9_x64_20G_alibase_20230613.vhd
+ Password:
+ Ref: InstancePassword
+ InstanceType:
+ Ref: EcsInstanceType
+ SystemDiskCategory: cloud_essd
+ SystemDiskSize: 200
+ InternetMaxBandwidthOut: 5
+ IoOptimized: optimized
+ MaxAmount: 1
+ RunInstallCommand:
+ Type: ALIYUN::ECS::RunCommand
+ Properties:
+ InstanceIds:
+ Fn::GetAtt:
+ - InstanceGroup
+ - InstanceIds
+ Type: RunShellScript
+ Sync: true
+ Timeout: 3600
+ CommandContent:
+ Fn::Sub:
+ - |
+ #!/bin/bash
+ # 源代码通过computenest-cli被打包为tar.gz包,并发布为部署物
+ wget '{{ computenest::file::hanans426_one-api }}' -O hanans426_one-api.tar.gz > /var/log/download.log
+ tar -zxvf hanans426_one-api.tar.gz && cd "$(tar -tzf hanans426_one-api.tar.gz | head -1 | awk -F'/' '{print $1}')"
+ echo "start run command"
+ echo "${AdminPassword}"
+
+ ARGUS_VERSION=3.5.7 /bin/bash -c "$(curl -sS https://cms-agent-${RegionId}.oss-${RegionId}-internal.aliyuncs.com/Argus/agent_install_ecs-1.7.sh)" >> /root/install_cms_agent.log 2>&1
+ - RegionId:
+ Ref: ALIYUN::Region
+Outputs:
+ ServerAddress:
+ Description:
+ en: ServerAddress.
+ zh-cn: 访问页面。
+ Value:
+ Fn::Sub:
+ - 'http://${ServerAddress}:80'
+ - ServerAddress:
+ Fn::Select:
+ - 0
+ - Fn::GetAtt:
+ - InstanceGroup
+ - PublicIps
+Metadata:
+ ALIYUN::ROS::Interface:
+ ParameterGroups:
+ - Parameters:
+ - PayType
+ - PayPeriodUnit
+ - PayPeriod
+ Label:
+ default: 付费类型配置
+ - Parameters:
+ - EcsInstanceType
+ - InstancePassword
+ Label:
+ default: 资源配置
+ - Parameters:
+ - ZoneId
+ - VpcId
+ - VSwitchId
+ Label:
+ default: 可用区配置
+ - Parameters:
+ - AdminPassword
+ Label:
+ en: Software Configuration
+ zh-cn: 软件配置
+
\ No newline at end of file
diff --git a/README.en.md b/README.en.md
index c9fdbbc8..df127e59 100644
--- a/README.en.md
+++ b/README.en.md
@@ -204,6 +204,17 @@ If you encounter a blank page after deployment, refer to [#97](https://github.co
+