2024-10-19 16:18:50 +00:00
|
|
|
|
# 本地开发
|
|
|
|
|
欢迎贡献插件
|
|
|
|
|
|
2024-11-13 16:15:46 +00:00
|
|
|
|
建议nodejs版本 `20.x` 及以上
|
|
|
|
|
|
2024-11-15 16:00:26 +00:00
|
|
|
|
## 一、本地调试运行
|
2024-10-19 16:18:50 +00:00
|
|
|
|
|
|
|
|
|
### 克隆代码
|
|
|
|
|
```shell
|
|
|
|
|
|
|
|
|
|
# 克隆代码
|
2024-11-04 03:58:44 +00:00
|
|
|
|
git clone https://github.com/certd/certd --depth=1
|
2024-10-19 16:18:50 +00:00
|
|
|
|
|
|
|
|
|
#进入项目目录
|
|
|
|
|
cd certd
|
|
|
|
|
|
2024-11-04 03:58:44 +00:00
|
|
|
|
# 切换到最新版本代码【如果v2分支无法编译,请尝试切换到最新版tag】
|
|
|
|
|
# git checkout v1.27.0 # 这里换成最新版本号
|
2024-10-19 16:18:50 +00:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 修改pnpm-workspace.yaml文件
|
|
|
|
|
重要:否则无法正确加载专业版的access和plugin
|
|
|
|
|
```yaml
|
|
|
|
|
# pnpm-workspace.yaml
|
|
|
|
|
packages:
|
|
|
|
|
- 'packages/**' # <--------------注释掉这一行,PR时不要提交此修改
|
|
|
|
|
- 'packages/ui/**'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 安装依赖和初始化:
|
|
|
|
|
```shell
|
|
|
|
|
# 安装pnpm,如果提示npm命令不存在,就需要先安装nodejs
|
|
|
|
|
npm install -g pnpm@8.15.7 --registry=https://registry.npmmirror.com
|
|
|
|
|
|
|
|
|
|
# 使用国内镜像源,如果有代理,就不需要
|
|
|
|
|
pnpm config set registry https://registry.npmmirror.com
|
|
|
|
|
# 安装依赖
|
|
|
|
|
pnpm install
|
|
|
|
|
|
|
|
|
|
# 初始化构建
|
|
|
|
|
npm run init
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 启动 server:
|
|
|
|
|
```shell
|
|
|
|
|
cd packages/ui/certd-server
|
|
|
|
|
npm run dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 启动 client:
|
|
|
|
|
```shell
|
|
|
|
|
cd packages/ui/certd-client
|
|
|
|
|
npm run dev
|
|
|
|
|
|
|
|
|
|
# 会自动打开浏览器,确认正常运行
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
2024-11-15 16:00:26 +00:00
|
|
|
|
## 二、开发插件
|
2024-10-19 16:18:50 +00:00
|
|
|
|
进入 `packages/ui/certd-server/src/plugins`
|
|
|
|
|
|
|
|
|
|
### 1.复制`plugin-demo`目录作为你的插件目录
|
|
|
|
|
比如你想做`cloudflare`的插件,那么你可以复制`plugin-demo`目录,将其命名成`plugin-cloudflare`。
|
|
|
|
|
以下均以`plugin-cloudflare`为例进行说明,你需要将其替换成你的插件名称
|
|
|
|
|
|
|
|
|
|
### 2. access授权
|
|
|
|
|
如果这是一个新的平台,它应该有授权方式,比如accessKey accessSecret之类的
|
|
|
|
|
参考`plugin-cloudflare/access.ts` 修改为你要做的平台的`access`
|
|
|
|
|
这样用户就可以在`certd`后台中创建这种授权凭证了
|
|
|
|
|
|
|
|
|
|
### 3. dns-provider
|
|
|
|
|
如果域名是这个平台进行解析的,那么你需要实现dns-provider,(申请证书需要)
|
|
|
|
|
参考`plugin-cloudflare/dns-provider.ts` 修改为你要做的平台的`dns-provider`
|
|
|
|
|
|
|
|
|
|
### 4. plugin-deploy
|
|
|
|
|
如果这个平台有需要部署证书的地方
|
|
|
|
|
参考`plugin-cloudflare/plugins/plugin-deploy-to-xx.ts` 修改为你要做的平台的`plugin-deploy-to-xx`
|
|
|
|
|
|
|
|
|
|
### 5. 增加导入
|
|
|
|
|
在`plugin-cloudflare/index.ts`中增加你的插件的`import`
|
|
|
|
|
```ts
|
|
|
|
|
export * from './dns-provider'
|
|
|
|
|
export * from './access'
|
|
|
|
|
export * from './plugins/plugin-deploy-to-xx'
|
|
|
|
|
````
|
|
|
|
|
|
|
|
|
|
在`./src/plugins/index.ts`中增加`import`
|
|
|
|
|
|
|
|
|
|
```ts
|
|
|
|
|
export * from "./plugin-cloudflare.js"
|
|
|
|
|
```
|
|
|
|
|
|
2024-11-15 16:00:26 +00:00
|
|
|
|
### 6. 重启服务进行调试
|
2024-10-19 16:18:50 +00:00
|
|
|
|
刷新浏览器,检查你的插件是否工作正常, 确保能够正常进行证书申请和部署
|
|
|
|
|
|
2024-11-15 16:00:26 +00:00
|
|
|
|
## 三、提交PR
|
2024-10-19 16:18:50 +00:00
|
|
|
|
我们将尽快审核PR
|
2024-11-15 16:00:26 +00:00
|
|
|
|
|
|
|
|
|
## 四、 注意事项
|
|
|
|
|
### 1. 如何让任务报错停止
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
// 抛出异常即可使任务停止,否则会判定为成功
|
|
|
|
|
throw new Error("错误信息")
|
|
|
|
|
```
|