From a21889080d6c7ffdf0af526a3a21f0b2d1c77288 Mon Sep 17 00:00:00 2001 From: xiaojunnuo <xiaojunnuo@qq.com> Date: Thu, 3 Oct 2024 23:11:50 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B0=83=E6=95=B4=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90=E5=88=B0static=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 ++-- packages/core/pipeline/src/core/license.ts | 8 ++- packages/libs/lib-server/src/system/index.ts | 1 + .../libs/lib-server/src/system/plus/index.ts | 1 + .../src/system/plus}/service/plus-service.ts | 3 +- .../src/system/settings/service/models.ts | 8 +-- packages/ui/certd-client/.env | 2 +- packages/ui/certd-client/index.html | 2 +- .../certd-client/src/api/modules/api.basic.ts | 1 + .../assets}/doc/images/1-add.png | Bin .../assets}/doc/images/10-1-log.png | Bin .../assets}/doc/images/11-1-error.png | Bin .../assets}/doc/images/11-2-error.png | Bin .../assets}/doc/images/12-1-log-success.png | Bin .../assets}/doc/images/12-2-skip-log.png | Bin .../assets}/doc/images/13-1-result.png | Bin .../assets}/doc/images/13-2-result.png | Bin .../assets}/doc/images/13-3-download.png | Bin .../assets}/doc/images/14-timer.png | Bin .../assets}/doc/images/15-1-email.png | Bin .../assets}/doc/images/15-2-email.png | Bin .../assets}/doc/images/2-access-provider.png | Bin .../assets}/doc/images/3-add-access.png | Bin .../assets}/doc/images/4-add-success.png | Bin .../assets}/doc/images/5-view.png | Bin .../assets}/doc/images/6-1-add-task.png | Bin .../assets}/doc/images/6-2-add-task.png | Bin .../assets}/doc/images/6-3-add-task.png | Bin .../assets}/doc/images/7-1-add-host-task.png | Bin .../assets}/doc/images/7-2-add-host-task.png | Bin .../assets}/doc/images/7-3-add-host-task.png | Bin .../assets}/doc/images/8-1-add-host-task.png | Bin .../assets}/doc/images/8-2-add-host-task.png | Bin .../assets}/doc/images/8-4-add-host-task.png | Bin .../assets}/doc/images/8-5-add-host-task.png | Bin .../assets}/doc/images/9-start.png | Bin .../{public => src/assets}/icons/demo.css | 0 .../assets}/icons/demo_index.html | 0 .../{public => src/assets}/icons/iconfont.css | 0 .../{public => src/assets}/icons/iconfont.js | 0 .../assets}/icons/iconfont.json | 0 .../{public => src/assets}/icons/iconfont.svg | 0 .../assets}/images/logo/logo.svg | 0 .../assets}/images/logo/rect-black.svg | 0 .../assets}/images/logo/square.svg | 0 .../{public => src/assets}/images/plugin.png | Bin .../{public => src/assets}/images/preview.png | Bin .../components/tutorial/tutorial-steps.vue | 52 ++++++++--------- .../src/layout/layout-framework.vue | 2 +- .../src/layout/layout-outside.vue | 2 +- .../src/store/modules/settings.ts | 17 +++--- .../views/framework/home/content/index.vue | 2 +- .../src/views/sys/settings/index.vue | 3 + .../certd-client/src/views/sys/site/index.vue | 25 ++++---- .../modules/basic/service/email-service.ts | 2 +- .../system/controller/plus-controller.ts | 2 +- .../system/controller/site-controller.ts | 55 ------------------ step.md | 54 ++++++++--------- 58 files changed, 104 insertions(+), 148 deletions(-) create mode 100644 packages/libs/lib-server/src/system/plus/index.ts rename packages/{ui/certd-server/src/modules/basic => libs/lib-server/src/system/plus}/service/plus-service.ts (94%) rename packages/ui/certd-client/{public => src/assets}/doc/images/1-add.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/10-1-log.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/11-1-error.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/11-2-error.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/12-1-log-success.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/12-2-skip-log.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/13-1-result.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/13-2-result.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/13-3-download.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/14-timer.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/15-1-email.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/15-2-email.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/2-access-provider.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/3-add-access.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/4-add-success.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/5-view.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/6-1-add-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/6-2-add-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/6-3-add-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/7-1-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/7-2-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/7-3-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/8-1-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/8-2-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/8-4-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/8-5-add-host-task.png (100%) rename packages/ui/certd-client/{public => src/assets}/doc/images/9-start.png (100%) rename packages/ui/certd-client/{public => src/assets}/icons/demo.css (100%) rename packages/ui/certd-client/{public => src/assets}/icons/demo_index.html (100%) rename packages/ui/certd-client/{public => src/assets}/icons/iconfont.css (100%) rename packages/ui/certd-client/{public => src/assets}/icons/iconfont.js (100%) rename packages/ui/certd-client/{public => src/assets}/icons/iconfont.json (100%) rename packages/ui/certd-client/{public => src/assets}/icons/iconfont.svg (100%) rename packages/ui/certd-client/{public => src/assets}/images/logo/logo.svg (100%) rename packages/ui/certd-client/{public => src/assets}/images/logo/rect-black.svg (100%) rename packages/ui/certd-client/{public => src/assets}/images/logo/square.svg (100%) rename packages/ui/certd-client/{public => src/assets}/images/plugin.png (100%) rename packages/ui/certd-client/{public => src/assets}/images/preview.png (100%) delete mode 100644 packages/ui/certd-server/src/modules/system/controller/site-controller.ts diff --git a/README.md b/README.md index 536cfd84..eca6b1dd 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,11 @@ https://certd.handsfree.work/ ## 三、使用教程 本案例演示,如何配置自动申请证书,并部署到阿里云CDN,然后快要到期前自动更新证书并重新部署 - - - - - + + + + + ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -------> [点我查看详细使用步骤演示](./step.md) <-------- diff --git a/packages/core/pipeline/src/core/license.ts b/packages/core/pipeline/src/core/license.ts index eb923ed8..7914a28e 100644 --- a/packages/core/pipeline/src/core/license.ts +++ b/packages/core/pipeline/src/core/license.ts @@ -1,5 +1,5 @@ import { logger } from "../utils/index.js"; -import { setLogger, isPlus } from "@certd/plus-core"; +import { setLogger, isPlus, isComm } from "@certd/plus-core"; setLogger(logger); export * from "@certd/plus-core"; @@ -8,3 +8,9 @@ export function checkPlus() { throw new Error("此为专业版功能,请升级到专业版"); } } + +export function checkComm() { + if (!isComm()) { + throw new Error("此为商业版功能,请升级到商业版"); + } +} diff --git a/packages/libs/lib-server/src/system/index.ts b/packages/libs/lib-server/src/system/index.ts index f5425503..22dd66d2 100644 --- a/packages/libs/lib-server/src/system/index.ts +++ b/packages/libs/lib-server/src/system/index.ts @@ -1 +1,2 @@ export * from './settings/index.js'; +export * from './plus/index.js'; diff --git a/packages/libs/lib-server/src/system/plus/index.ts b/packages/libs/lib-server/src/system/plus/index.ts new file mode 100644 index 00000000..4d938497 --- /dev/null +++ b/packages/libs/lib-server/src/system/plus/index.ts @@ -0,0 +1 @@ +export * from './service/plus-service.js'; diff --git a/packages/ui/certd-server/src/modules/basic/service/plus-service.ts b/packages/libs/lib-server/src/system/plus/service/plus-service.ts similarity index 94% rename from packages/ui/certd-server/src/modules/basic/service/plus-service.ts rename to packages/libs/lib-server/src/system/plus/service/plus-service.ts index cae5ba00..42bd1257 100644 --- a/packages/ui/certd-server/src/modules/basic/service/plus-service.ts +++ b/packages/libs/lib-server/src/system/plus/service/plus-service.ts @@ -1,8 +1,7 @@ import { Config, Init, Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core'; -import { SysSettingsService } from '@certd/lib-server'; -import { SysInstallInfo, SysLicenseInfo } from '@certd/lib-server'; import { AppKey, http, PlusRequestService, verify } from '@certd/pipeline'; import { logger } from '@certd/pipeline'; +import { SysInstallInfo, SysLicenseInfo, SysSettingsService } from '../../settings/index.js'; @Provide() @Scope(ScopeEnum.Singleton) diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index e9653b4e..df1d1713 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -14,6 +14,7 @@ export class SysPublicSettings extends BaseSettings { static __access__ = 'public'; registerEnabled = false; managerOtherUserPipeline = false; + icpNo?: string; // triggerOnStartup = false; } @@ -48,8 +49,7 @@ export class SysSiteInfo extends BaseSettings { static __title__ = '站点信息'; static __key__ = 'sys.site'; static __access__ = 'public'; - TITLE?: string; - SLOGAN?: string; - LOGO?: string; - ICP_NO?: string; + title?: string; + slogan?: string; + logo?: string; } diff --git a/packages/ui/certd-client/.env b/packages/ui/certd-client/.env index 1bda3480..4c6a5356 100644 --- a/packages/ui/certd-client/.env +++ b/packages/ui/certd-client/.env @@ -6,6 +6,6 @@ VITE_APP_SLOGAN=让你的证书永不过期 VITE_APP_COPYRIGHT_YEAR=2021-2024 VITE_APP_COPYRIGHT_NAME=handsfree.work VITE_APP_COPYRIGHT_URL=https://certd.handsfree.work -VITE_APP_LOGO=./images/logo/logo.svg +VITE_APP_LOGO=./assets/images/logo/logo.svg VITE_APP_PROJECT_PATH=https://github.com/certd/certd diff --git a/packages/ui/certd-client/index.html b/packages/ui/certd-client/index.html index e9ab4203..8a75edd7 100644 --- a/packages/ui/certd-client/index.html +++ b/packages/ui/certd-client/index.html @@ -5,7 +5,7 @@ <link rel="icon" href="/logo.svg"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>Certd-让你的证书永不过期</title> - <script src="/icons/iconfont.js"></script> + <script src="/assets/icons/iconfont.js"></script> <link rel="stylesheet" type="text/css" href="/index.css"/> </head> <body> diff --git a/packages/ui/certd-client/src/api/modules/api.basic.ts b/packages/ui/certd-client/src/api/modules/api.basic.ts index 96df9cb9..f12a65f4 100644 --- a/packages/ui/certd-client/src/api/modules/api.basic.ts +++ b/packages/ui/certd-client/src/api/modules/api.basic.ts @@ -3,6 +3,7 @@ import { request } from "../service"; export type SysPublicSetting = { registerEnabled: boolean; managerOtherUserPipeline: boolean; + icpNo?: string; }; export type SysInstallInfo = { diff --git a/packages/ui/certd-client/public/doc/images/1-add.png b/packages/ui/certd-client/src/assets/doc/images/1-add.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/1-add.png rename to packages/ui/certd-client/src/assets/doc/images/1-add.png diff --git a/packages/ui/certd-client/public/doc/images/10-1-log.png b/packages/ui/certd-client/src/assets/doc/images/10-1-log.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/10-1-log.png rename to packages/ui/certd-client/src/assets/doc/images/10-1-log.png diff --git a/packages/ui/certd-client/public/doc/images/11-1-error.png b/packages/ui/certd-client/src/assets/doc/images/11-1-error.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/11-1-error.png rename to packages/ui/certd-client/src/assets/doc/images/11-1-error.png diff --git a/packages/ui/certd-client/public/doc/images/11-2-error.png b/packages/ui/certd-client/src/assets/doc/images/11-2-error.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/11-2-error.png rename to packages/ui/certd-client/src/assets/doc/images/11-2-error.png diff --git a/packages/ui/certd-client/public/doc/images/12-1-log-success.png b/packages/ui/certd-client/src/assets/doc/images/12-1-log-success.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/12-1-log-success.png rename to packages/ui/certd-client/src/assets/doc/images/12-1-log-success.png diff --git a/packages/ui/certd-client/public/doc/images/12-2-skip-log.png b/packages/ui/certd-client/src/assets/doc/images/12-2-skip-log.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/12-2-skip-log.png rename to packages/ui/certd-client/src/assets/doc/images/12-2-skip-log.png diff --git a/packages/ui/certd-client/public/doc/images/13-1-result.png b/packages/ui/certd-client/src/assets/doc/images/13-1-result.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/13-1-result.png rename to packages/ui/certd-client/src/assets/doc/images/13-1-result.png diff --git a/packages/ui/certd-client/public/doc/images/13-2-result.png b/packages/ui/certd-client/src/assets/doc/images/13-2-result.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/13-2-result.png rename to packages/ui/certd-client/src/assets/doc/images/13-2-result.png diff --git a/packages/ui/certd-client/public/doc/images/13-3-download.png b/packages/ui/certd-client/src/assets/doc/images/13-3-download.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/13-3-download.png rename to packages/ui/certd-client/src/assets/doc/images/13-3-download.png diff --git a/packages/ui/certd-client/public/doc/images/14-timer.png b/packages/ui/certd-client/src/assets/doc/images/14-timer.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/14-timer.png rename to packages/ui/certd-client/src/assets/doc/images/14-timer.png diff --git a/packages/ui/certd-client/public/doc/images/15-1-email.png b/packages/ui/certd-client/src/assets/doc/images/15-1-email.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/15-1-email.png rename to packages/ui/certd-client/src/assets/doc/images/15-1-email.png diff --git a/packages/ui/certd-client/public/doc/images/15-2-email.png b/packages/ui/certd-client/src/assets/doc/images/15-2-email.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/15-2-email.png rename to packages/ui/certd-client/src/assets/doc/images/15-2-email.png diff --git a/packages/ui/certd-client/public/doc/images/2-access-provider.png b/packages/ui/certd-client/src/assets/doc/images/2-access-provider.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/2-access-provider.png rename to packages/ui/certd-client/src/assets/doc/images/2-access-provider.png diff --git a/packages/ui/certd-client/public/doc/images/3-add-access.png b/packages/ui/certd-client/src/assets/doc/images/3-add-access.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/3-add-access.png rename to packages/ui/certd-client/src/assets/doc/images/3-add-access.png diff --git a/packages/ui/certd-client/public/doc/images/4-add-success.png b/packages/ui/certd-client/src/assets/doc/images/4-add-success.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/4-add-success.png rename to packages/ui/certd-client/src/assets/doc/images/4-add-success.png diff --git a/packages/ui/certd-client/public/doc/images/5-view.png b/packages/ui/certd-client/src/assets/doc/images/5-view.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/5-view.png rename to packages/ui/certd-client/src/assets/doc/images/5-view.png diff --git a/packages/ui/certd-client/public/doc/images/6-1-add-task.png b/packages/ui/certd-client/src/assets/doc/images/6-1-add-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/6-1-add-task.png rename to packages/ui/certd-client/src/assets/doc/images/6-1-add-task.png diff --git a/packages/ui/certd-client/public/doc/images/6-2-add-task.png b/packages/ui/certd-client/src/assets/doc/images/6-2-add-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/6-2-add-task.png rename to packages/ui/certd-client/src/assets/doc/images/6-2-add-task.png diff --git a/packages/ui/certd-client/public/doc/images/6-3-add-task.png b/packages/ui/certd-client/src/assets/doc/images/6-3-add-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/6-3-add-task.png rename to packages/ui/certd-client/src/assets/doc/images/6-3-add-task.png diff --git a/packages/ui/certd-client/public/doc/images/7-1-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/7-1-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/7-1-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/7-1-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/7-2-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/7-2-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/7-2-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/7-2-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/7-3-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/7-3-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/7-3-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/7-3-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/8-1-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/8-1-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/8-1-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/8-1-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/8-2-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/8-2-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/8-2-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/8-2-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/8-4-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/8-4-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/8-4-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/8-4-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/8-5-add-host-task.png b/packages/ui/certd-client/src/assets/doc/images/8-5-add-host-task.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/8-5-add-host-task.png rename to packages/ui/certd-client/src/assets/doc/images/8-5-add-host-task.png diff --git a/packages/ui/certd-client/public/doc/images/9-start.png b/packages/ui/certd-client/src/assets/doc/images/9-start.png similarity index 100% rename from packages/ui/certd-client/public/doc/images/9-start.png rename to packages/ui/certd-client/src/assets/doc/images/9-start.png diff --git a/packages/ui/certd-client/public/icons/demo.css b/packages/ui/certd-client/src/assets/icons/demo.css similarity index 100% rename from packages/ui/certd-client/public/icons/demo.css rename to packages/ui/certd-client/src/assets/icons/demo.css diff --git a/packages/ui/certd-client/public/icons/demo_index.html b/packages/ui/certd-client/src/assets/icons/demo_index.html similarity index 100% rename from packages/ui/certd-client/public/icons/demo_index.html rename to packages/ui/certd-client/src/assets/icons/demo_index.html diff --git a/packages/ui/certd-client/public/icons/iconfont.css b/packages/ui/certd-client/src/assets/icons/iconfont.css similarity index 100% rename from packages/ui/certd-client/public/icons/iconfont.css rename to packages/ui/certd-client/src/assets/icons/iconfont.css diff --git a/packages/ui/certd-client/public/icons/iconfont.js b/packages/ui/certd-client/src/assets/icons/iconfont.js similarity index 100% rename from packages/ui/certd-client/public/icons/iconfont.js rename to packages/ui/certd-client/src/assets/icons/iconfont.js diff --git a/packages/ui/certd-client/public/icons/iconfont.json b/packages/ui/certd-client/src/assets/icons/iconfont.json similarity index 100% rename from packages/ui/certd-client/public/icons/iconfont.json rename to packages/ui/certd-client/src/assets/icons/iconfont.json diff --git a/packages/ui/certd-client/public/icons/iconfont.svg b/packages/ui/certd-client/src/assets/icons/iconfont.svg similarity index 100% rename from packages/ui/certd-client/public/icons/iconfont.svg rename to packages/ui/certd-client/src/assets/icons/iconfont.svg diff --git a/packages/ui/certd-client/public/images/logo/logo.svg b/packages/ui/certd-client/src/assets/images/logo/logo.svg similarity index 100% rename from packages/ui/certd-client/public/images/logo/logo.svg rename to packages/ui/certd-client/src/assets/images/logo/logo.svg diff --git a/packages/ui/certd-client/public/images/logo/rect-black.svg b/packages/ui/certd-client/src/assets/images/logo/rect-black.svg similarity index 100% rename from packages/ui/certd-client/public/images/logo/rect-black.svg rename to packages/ui/certd-client/src/assets/images/logo/rect-black.svg diff --git a/packages/ui/certd-client/public/images/logo/square.svg b/packages/ui/certd-client/src/assets/images/logo/square.svg similarity index 100% rename from packages/ui/certd-client/public/images/logo/square.svg rename to packages/ui/certd-client/src/assets/images/logo/square.svg diff --git a/packages/ui/certd-client/public/images/plugin.png b/packages/ui/certd-client/src/assets/images/plugin.png similarity index 100% rename from packages/ui/certd-client/public/images/plugin.png rename to packages/ui/certd-client/src/assets/images/plugin.png diff --git a/packages/ui/certd-client/public/images/preview.png b/packages/ui/certd-client/src/assets/images/preview.png similarity index 100% rename from packages/ui/certd-client/public/images/preview.png rename to packages/ui/certd-client/src/assets/images/preview.png diff --git a/packages/ui/certd-client/src/components/tutorial/tutorial-steps.vue b/packages/ui/certd-client/src/components/tutorial/tutorial-steps.vue index 548b0110..b66baec7 100644 --- a/packages/ui/certd-client/src/components/tutorial/tutorial-steps.vue +++ b/packages/ui/certd-client/src/components/tutorial/tutorial-steps.vue @@ -43,27 +43,27 @@ const steps = ref<Step[]>([ description: "演示证书申请任务如何配置", items: [ { - image: "/doc/images/1-add.png", + image: "/assets/doc/images/1-add.png", title: "创建证书流水线", descriptions: ["点击添加流水线,选择证书申请"] }, { - image: "/doc/images/2-access-provider.png", + image: "/assets/doc/images/2-access-provider.png", title: "DNS授权", descriptions: ["证书申请需要给域名添加TXT解析记录来验证域名所有权"] }, { - image: "/doc/images/3-add-access.png", + image: "/assets/doc/images/3-add-access.png", title: "第一次使用,需要添加DNS授权", descriptions: ["选择DNS授权,确认创建"] }, // { - // image: "/doc/images/3-add-access.png", + // image: "/assets/doc/images/3-add-access.png", // title: "确定创建流水线", // descriptions: ["选择DNS授权,信息填写无误,确认创建"] // }, { - image: "/doc/images/4-add-success.png", + image: "/assets/doc/images/4-add-success.png", title: "流水线创建成功", descriptions: ["此时证书申请任务已经建好,点击手动触发即可测试证书申请", "接下来演示如何添加部署任务"] } @@ -74,52 +74,52 @@ const steps = ref<Step[]>([ description: "演示部署到阿里云CDN和Nginx", items: [ { - image: "/doc/images/6-1-add-task.png", + image: "/assets/doc/images/6-1-add-task.png", title: "添加部署任务", descriptions: ["演示第一个部署任务,部署到阿里云CDN"] }, { - image: "/doc/images/6-2-add-task.png", + image: "/assets/doc/images/6-2-add-task.png", title: "选择任务插件", descriptions: ["可以搜索插件,这里选择阿里云CDN插件"] }, { - image: "/doc/images/6-3-add-task.png", + image: "/assets/doc/images/6-3-add-task.png", title: "配置任务参数", descriptions: ["填写CDN的域名和证书ID", "任务保存之后,阿里云CDN的部署任务就配置好了"] }, { - image: "/doc/images/7-1-add-host-task.png", + image: "/assets/doc/images/7-1-add-host-task.png", title: "添加主机部署任务", descriptions: ["接下来演示配置第二个部署任务,部署到主机", "部署到主机分两步: 1. 上传证书到主机 2. 运行主机命令"] }, { - image: "/doc/images/7-2-add-host-task.png", + image: "/assets/doc/images/7-2-add-host-task.png", title: "配置上传到主机任务", descriptions: ["填写上传到主机任务参数", "比如证书保存路径"] }, { - image: "/doc/images/7-3-add-host-task.png", + image: "/assets/doc/images/7-3-add-host-task.png", title: "添加主机ssh登录授权", descriptions: ["填写主机ip、用户名、密码,授权只需添加一次,后续其他任务可以复用"] }, { - image: "/doc/images/8-1-add-host-task.png", + image: "/assets/doc/images/8-1-add-host-task.png", title: "上传到主机任务配置完成", descriptions: ["接下来配置主机执行脚本,去部署证书"] }, { - image: "/doc/images/8-2-add-host-task.png", + image: "/assets/doc/images/8-2-add-host-task.png", title: "选择添加主机远程命令任务", descriptions: ["选择主机远程命令任务"] }, { - image: "/doc/images/8-4-add-host-task.png", + image: "/assets/doc/images/8-4-add-host-task.png", title: "填写证书部署脚本", descriptions: ["选择主机授权,编写部署脚本,这里演示部署到nginx,需要重启nginx,让证书生效"] }, { - image: "/doc/images/8-5-add-host-task.png", + image: "/assets/doc/images/8-5-add-host-task.png", title: "上传到主机任务的两个步骤配置完成", descriptions: ["接下来测试运行"] } @@ -130,47 +130,47 @@ const steps = ref<Step[]>([ description: "演示流水线运行,查看日志,成功后跳过等", items: [ { - image: "/doc/images/9-start.png", + image: "/assets/doc/images/9-start.png", title: "运行测试一下", descriptions: ["之前是把证书上传到主机,接下来要运行命令,去部署证书"] }, { - image: "/doc/images/10-1-log.png", + image: "/assets/doc/images/10-1-log.png", title: "查看日志", descriptions: ["点击任务可以查看状态和日志"] }, { - image: "/doc/images/11-1-error.png", + image: "/assets/doc/images/11-1-error.png", title: "执行失败如何排查", descriptions: ["查看错误日志"] }, { - image: "/doc/images/11-2-error.png", + image: "/assets/doc/images/11-2-error.png", title: "执行失败如何排查", descriptions: ["查看错误日志,这里报的是nginx容器不存在,修改命令改成正确的nginx容器名称"] }, { - image: "/doc/images/12-1-log-success.png", + image: "/assets/doc/images/12-1-log-success.png", title: "执行成功", descriptions: ["修改正确后,重新点击手动触发,重新运行一次,执行成功"] }, { - image: "/doc/images/12-2-skip-log.png", + image: "/assets/doc/images/12-2-skip-log.png", title: "成功后自动跳过", descriptions: ["可以看到成功过的将会自动跳过,不会重复执行,只有当参数变更或者证书更新了,才会重新运行"] }, { - image: "/doc/images/13-1-result.png", + image: "/assets/doc/images/13-1-result.png", title: "查看证书部署成功", descriptions: ["访问nginx上的网站,可以看到证书已经部署成功"] }, { - image: "/doc/images/13-2-result.png", + image: "/assets/doc/images/13-2-result.png", title: "阿里云CDN也部署成功", descriptions: ["阿里云CDN上已经更新证书,证书名称已certd开头"] }, { - image: "/doc/images/13-3-download.png", + image: "/assets/doc/images/13-3-download.png", title: "还可以下载证书,手动部署", descriptions: ["如果还没有好用的部署插件,没办法自动部署,你还可以下载证书,手动部署"] } @@ -181,7 +181,7 @@ const steps = ref<Step[]>([ description: "自动运行", items: [ { - image: "/doc/images/14-timer.png", + image: "/assets/doc/images/14-timer.png", title: "设置定时执行", descriptions: [ "流水线测试成功,接下来配置定时触发,以后每天定时执行就不用管了", @@ -189,7 +189,7 @@ const steps = ref<Step[]>([ ] }, { - image: "/doc/images/15-1-email.png", + image: "/assets/doc/images/15-1-email.png", title: "设置邮件通知", descriptions: ["建议选择监听'错误时'和'错误转成功'两种即可,在意外失败时可以尽快去排查问题,(免费版需要配置邮件服务器)"] } diff --git a/packages/ui/certd-client/src/layout/layout-framework.vue b/packages/ui/certd-client/src/layout/layout-framework.vue index 1e09b78b..bafa66e4 100644 --- a/packages/ui/certd-client/src/layout/layout-framework.vue +++ b/packages/ui/certd-client/src/layout/layout-framework.vue @@ -2,7 +2,7 @@ <a-layout class="fs-framework"> <a-layout-sider v-model:collapsed="asideCollapsed" :trigger="null" collapsible> <div class="header-logo"> - <img src="/images/logo/logo.svg" /> + <img src="/assets/images/logo/logo.svg" /> <span v-if="!asideCollapsed" class="title">Certd</span> </div> <div class="aside-menu"> diff --git a/packages/ui/certd-client/src/layout/layout-outside.vue b/packages/ui/certd-client/src/layout/layout-outside.vue index 34ef6f24..2c9871ad 100644 --- a/packages/ui/certd-client/src/layout/layout-outside.vue +++ b/packages/ui/certd-client/src/layout/layout-outside.vue @@ -4,7 +4,7 @@ <div class="user-layout-content"> <div class="top flex flex-col items-center justify-center"> <div class="header flex flex-row items-center"> - <img src="/images/logo/rect-black.svg" class="logo" alt="logo" /> + <img src="/assets/images/logo/rect-black.svg" class="logo" alt="logo" /> <span class="title"></span> </div> <div class="desc"></div> diff --git a/packages/ui/certd-client/src/store/modules/settings.ts b/packages/ui/certd-client/src/store/modules/settings.ts index 4c43d564..fee81cc0 100644 --- a/packages/ui/certd-client/src/store/modules/settings.ts +++ b/packages/ui/certd-client/src/store/modules/settings.ts @@ -32,10 +32,9 @@ export interface SettingState { appKey?: string; }; siteInfo?: { - TITLE: string; - SLOGAN: string; - LOGO: string; - ICP_NO: string; + title: string; + slogan: string; + logo: string; }; } @@ -54,7 +53,8 @@ export const useSettingStore = defineStore({ }, sysPublic: { registerEnabled: false, - managerOtherUserPipeline: false + managerOtherUserPipeline: false, + icpNo: "" }, installInfo: { siteId: "", @@ -64,10 +64,9 @@ export const useSettingStore = defineStore({ appKey: "" }, siteInfo: { - TITLE: "", - SLOGAN: "", - LOGO: "", - ICP_NO: "" + title: "Certd", + slogan: "让你的证书永不过期", + logo: "" } }), getters: { diff --git a/packages/ui/certd-client/src/views/framework/home/content/index.vue b/packages/ui/certd-client/src/views/framework/home/content/index.vue index 73775193..668ccb86 100644 --- a/packages/ui/certd-client/src/views/framework/home/content/index.vue +++ b/packages/ui/certd-client/src/views/framework/home/content/index.vue @@ -18,7 +18,7 @@ </a-alert> </div> <div class="content"> - <img src="/images/preview.png" class="preview_img" /> + <img src="/assets/images/preview.png" class="preview_img" /> </div> <div class="footer_box"> <div>如果觉得好用,请不要吝啬你的star哟!</div> diff --git a/packages/ui/certd-client/src/views/sys/settings/index.vue b/packages/ui/certd-client/src/views/sys/settings/index.vue index 3e998642..abfd5c75 100644 --- a/packages/ui/certd-client/src/views/sys/settings/index.vue +++ b/packages/ui/certd-client/src/views/sys/settings/index.vue @@ -19,6 +19,9 @@ <a-form-item label="管理其他用户流水线" name="managerOtherUserPipeline"> <a-switch v-model:checked="formState.managerOtherUserPipeline" /> </a-form-item> + <a-form-item label="ICP备案号" name="icpNo"> + <a-switch v-model:checked="formState.icpNo" /> + </a-form-item> <!-- <a-form-item label="启动后触发流水线" name="triggerOnStartup">--> <!-- <a-switch v-model:checked="formState.triggerOnStartup" />--> <!-- <div class="helper">启动后自动触发一次所有已启用的流水线</div>--> diff --git a/packages/ui/certd-client/src/views/sys/site/index.vue b/packages/ui/certd-client/src/views/sys/site/index.vue index f3773a82..cd911282 100644 --- a/packages/ui/certd-client/src/views/sys/site/index.vue +++ b/packages/ui/certd-client/src/views/sys/site/index.vue @@ -1,9 +1,9 @@ <template> - <fs-page class="page-sys-settings"> + <fs-page class="page-sys-site"> <template #header> <div class="title">站点个性化设置</div> </template> - <div class="sys-settings-form"> + <div class="sys-site-form"> <a-form :model="formState" name="basic" @@ -13,16 +13,15 @@ @finish="onFinish" @finish-failed="onFinishFailed" > - <a-form-item label="开启自助注册" name="registerEnabled"> - <a-switch v-model:checked="formState.registerEnabled" /> + <a-form-item label="标题" name="title"> + <a-input v-model:checked="formState.title" /> </a-form-item> - <a-form-item label="管理其他用户流水线" name="managerOtherUserPipeline"> - <a-switch v-model:checked="formState.managerOtherUserPipeline" /> + <a-form-item label="副标题" name="slogan"> + <a-input v-model:value="formState.slogan" /> + </a-form-item> + <a-form-item label="Logo" name="logo"> + <fs-cropper-upload v-model:value="formState.logo" /> </a-form-item> - <!-- <a-form-item label="启动后触发流水线" name="triggerOnStartup">--> - <!-- <a-switch v-model:checked="formState.triggerOnStartup" />--> - <!-- <div class="helper">启动后自动触发一次所有已启用的流水线</div>--> - <!-- </a-form-item>--> <a-form-item :wrapper-col="{ offset: 8, span: 16 }"> <a-button type="primary" html-type="submit">保存</a-button> </a-form-item> @@ -46,7 +45,9 @@ import { useSettingStore } from "/src/store/modules/settings"; interface FormState { title: string; + slogan: string; logo: string; + icpNo: string; } const formState = reactive<Partial<FormState>>({ @@ -83,8 +84,8 @@ async function stopOtherUserTimer() { </script> <style lang="less"> -.page-sys-settings { - .sys-settings-form { +.page-sys-site { + .sys-site-form { width: 500px; margin: 20px; } diff --git a/packages/ui/certd-server/src/modules/basic/service/email-service.ts b/packages/ui/certd-server/src/modules/basic/service/email-service.ts index bafa5cde..3663b9cc 100644 --- a/packages/ui/certd-server/src/modules/basic/service/email-service.ts +++ b/packages/ui/certd-server/src/modules/basic/service/email-service.ts @@ -5,7 +5,7 @@ import nodemailer from 'nodemailer'; import type SMTPConnection from 'nodemailer/lib/smtp-connection'; import { logger } from '@certd/pipeline'; import { UserSettingsService } from '../../mine/service/user-settings-service.js'; -import { PlusService } from './plus-service.js'; +import { PlusService } from '@certd/lib-server'; export type EmailConfig = { host: string; diff --git a/packages/ui/certd-server/src/modules/system/controller/plus-controller.ts b/packages/ui/certd-server/src/modules/system/controller/plus-controller.ts index 5651ee1e..9bf31344 100644 --- a/packages/ui/certd-server/src/modules/system/controller/plus-controller.ts +++ b/packages/ui/certd-server/src/modules/system/controller/plus-controller.ts @@ -4,7 +4,7 @@ import { BaseController } from '@certd/lib-server'; import { AppKey } from '@certd/pipeline'; import { SysInstallInfo } from '@certd/lib-server'; import { logger } from '@certd/pipeline'; -import { PlusService } from '../../basic/service/plus-service.js'; +import { PlusService } from '@certd/lib-server'; /** */ diff --git a/packages/ui/certd-server/src/modules/system/controller/site-controller.ts b/packages/ui/certd-server/src/modules/system/controller/site-controller.ts deleted file mode 100644 index 0afecccc..00000000 --- a/packages/ui/certd-server/src/modules/system/controller/site-controller.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core'; -import { SysSettingsService } from '@certd/lib-server'; -import { BaseController } from '@certd/lib-server'; -import { AppKey } from '@certd/pipeline'; -import { SysInstallInfo } from '@certd/lib-server'; -import { logger } from '@certd/pipeline'; -import { PlusService } from '../../basic/service/plus-service.js'; - -/** - */ -@Provide() -@Controller('/api/sys/site') -export class SysPlusController extends BaseController { - @Inject() - sysSettingsService: SysSettingsService; - - @Inject() - plusService: PlusService; - - @Post('/active', { summary: 'sys:settings:edit' }) - async active(@Body(ALL) body) { - const { code } = body; - const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo); - const siteId = installInfo.siteId; - const formData = { - appKey: AppKey, - code, - subjectId: siteId, - }; - - const res: any = await this.plusService.active(formData); - - if (res.code > 0) { - logger.error('激活失败', res.message); - return this.fail(res.message, 1); - } - const license = res.data.license; - - await this.plusService.updateLicense(license); - - return this.ok(true); - } - @Post('/bindUrl', { summary: 'sys:settings:edit' }) - async bindUrl(@Body(ALL) body: { url: string }) { - const { url } = body; - - const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo); - await this.plusService.bindUrl(installInfo.siteId, url); - - installInfo.bindUrl = url; - await this.sysSettingsService.saveSetting(installInfo); - - return this.ok(true); - } -} diff --git a/step.md b/step.md index 4ba15032..321a0b57 100644 --- a/step.md +++ b/step.md @@ -13,19 +13,19 @@ ## 自动化流水线创建 ### 1. 创建证书申请部署流水线 - + 需要添加域名的DNS解析服务商的授权 - + 填写accessKey和accessSecret - + 流水线创建成功 - + ### 2. 任务详情界面 - + 到这一步申请证书就已经配置完成了。 点击手动触发,就可以申请证书了。 @@ -34,72 +34,72 @@ ### 3. 添加部署到阿里云CDN任务 点击添加任务 - + 选择任务类型 - + 填写任务参数 - + 点击确定,部署到CDN任务配置成功 ### 4. 添加部署到服务器主机任务 点击新任务,弹出添加任务界面 - + 先选择上传到主机任务 填写任务参数,比如证书保存路径 - + 需要添加主机ip、用户名、密码,只需添加一次,后续其他任务可以复用 - + 然后添加第二个任务,执行主机命令,部署证书 - + 选择执行脚本命令任务 - + 编写脚本,选择之前添加的主机 - + 点击确定,部署到主机任务配置成功 - + ### 5. 手动触发执行任务,测试一下 - + 点击任务可以查看状态和日志 - + 这里执行失败,可以查看错误日志 - - + + 修改正确后,重新执行 - + 可以看到前面执行过的就会跳过,不会重复执行 - + ### 6. 查看证书部署效果 可以看到证书已经部署到CDN成功 - - + + 也可以手动下载证书 - + ### 7. 定时触发 配置定时触发,以后每天定时执行 cron格式,例如: `0 0 3 * * *` 表示每天凌晨3点执行 到期前20天会自动申请新证书并部署,没到期前不会重复申请 - + ### 8. 邮件通知 可以接收邮件通知(支持时机:开始、成功、失败、失败转成功) - + 需要配置邮件服务器 - +