allinssl

2025-12-19

运维

我以为世间最可宝贵的就是今,最易丧失的也是今。因为它最容易丧失,所以更觉得它宝贵。——李大钊

All in SSL 全面上手:一站式 SSL 证书生命周期管理工具(含多种部署方式与前端工程实践)

仓库地址:allinssl/allinssl
项目定位:一站式 SSL 证书生命周期管理,支持多家 CA,自动申请/续期、监控、可视化管理,支持多平台部署
注:本文内容严格依据仓库 README 与相关子模块文档撰写,建议搭配仓库页面获取最新信息与发布包


1. All in SSL 是什么?

All in SSL 是一个面向生产使用的 SSL 证书全流程管理工具,主打“一站式 + 自动化 + 可视化”。它的核心目标是把证书的申请、续期、部署、监控等繁琐工作变成标准化流程,尽可能减少人工参与和误操作风险。

官方特性摘要(摘自 README):

  • 全自动证书申请/续期
  • 多平台部署(CDN/WAF/面板/云存储)
  • 证书过期监控
  • 安全入口保护
  • 可视化证书管理
  • 支持多家 CA:Let’s Encrypt、ZeroSSL、Google、SSL.COM、BuyPass 等

这意味着无论你是需要统一管理大量证书的企业用户,还是在多云/多环境中频繁为不同系统部署 TLS 的 DevOps 团队,都可以用 All in SSL 将证书管理流程“平台化、自动化”。


2. 快速开始:多种安装/部署方式

All in SSL 提供了多种安装路径,适配不同的环境与偏好。

2.1 安装要求

  • Linux 系统(脚本安装)
  • macOS/Windows(暂不支持脚本安装,请参考文档说明)
  • Docker(推荐快速试用)

2.2 脚本安装

仓库 README 提供了两条“极速安装”命令(根据你的网络环境二选一):

1
2
3
4
5
# 线路一
curl -sSO http://allinssl.bt.cn/install_allinssl.sh && bash install_allinssl.sh allinssl

# 线路二(备用)
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl

另一个 README 变体中也提供了备用脚本地址(HTTPS):

1
curl -sSO https://cnb.cool/allinssl/install.sh/-/git/raw/main/install_allinssl.sh && bash install_allinssl.sh allinssl

提示:执行远程脚本前请依据团队安全规范进行校验(例如校验脚本来源、签名、运行权限等)。

2.3 Docker 部署(推荐)

使用 Docker 快速拉起服务:

1
2
3
4
5
6
7
8
9
docker run -itd \
--name allinssl \
-p 7979:8888 \
-v /www/allinssl/data:/www/allinssl/data \
-e ALLINSSL_USER=allinssl \
-e ALLINSSL_PWD=allinssldocker \
-e ALLINSSL_URL=allinssl \
-e TZ=Asia/Shanghai \
allinssl/allinssl:latest
  • 端口映射:宿主 7979 → 容器 8888
  • 数据持久化:/www/allinssl/data
  • 环境变量可自定义默认用户/密码、站点 URL、时区等

2.4 二进制安装

  • 访问 Releases 页面
  • 下载对应平台的最新版本二进制文件,按说明配置运行

3. 前端工程与工作空间:Turborepo + Vue 3 + Vite

All in SSL 的前端工程采用 Monorepo(Turborepo)组织,技术栈现代且模块划分清晰。

关键栈:

  • 构建:Turborepo、Vite
  • 框架:Vue 3
  • 语言:TypeScript
  • 样式:Tailwind CSS / CSS Modules
  • UI 库:Naive UI
  • 状态:Pinia
  • 路由:Vue Router
  • 工具:VueUse、Axios
  • 包管理:pnpm

典型目录结构(节选):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.
├── apps/
│ ├── allin-ssl/ # SSL 管理应用
│ ├── cloud-control/ # 云控制应用
│ ├── monorepo-docs/ # 文档应用
│ ├── naive-template/ # Naive UI 模板
│ └── vueFlow/ # Vue Flow 示例
├── packages/
│ ├── utils/
│ ├── vue/
│ ├── react/
│ ├── svelte/
│ └── node/
├── plugin/ # 自定义 Vite 插件
└── ...

3.1 本地开发命令(节选)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 安装依赖(需要 pnpm 9+、Node 18+)
pnpm install

# 首次运行建议先构建依赖包
pnpm build

# 启动所有应用
pnpm dev

# 启动特定应用(例如 allin-ssl)
pnpm dev --filter allin-ssl

# 构建所有应用
pnpm build

# 构建特定应用
pnpm build --filter allin-ssl

# 代码检查
pnpm lint

# 清理包
pnpm clear

4. AllinSSL 前端应用概览

frontend/apps/allin-ssl 是一个用 Vue 3 + TypeScript 实现的 SSL 管理前端:

  • 证书管理:集中查看/监控证书信息、到期提醒
  • 证书申请:简化流程,支持多类型证书
  • 自动部署:证书自动化分发到目标环境
  • 监控告警:实时状态监控与预警
  • API 集成:可对外暴露/对接 API
  • 多语言:内置 i18n,可扩展

开发与构建(节选):

1
2
3
4
5
6
7
8
# 安装
pnpm install
# 开发模式
pnpm dev
# 生产构建
pnpm build
# 预览
pnpm preview

默认开发端口通常位于 http://localhost:5173(以 Vite 配置为准)。


5. 实用插件与工具:提升团队交付效率

项目在 frontend/pluginfrontend/packages 下提供了多种可复用能力,帮助前端团队规模化交付。

5.1 Vite 自动翻译插件:vite-plugin-i18n-ai-translate

一个基于 Vite 的 i18n 自动化翻译插件,支持智谱 AI 等多种服务:

  • 自动扫描 Vue 项目中 $t(...) 的中文内容
  • 并发翻译、缓存去重、错误重试、变更监听
  • 可扩展的“翻译适配器”设计

安装与配置示例:

1
npm install vite-plugin-i18n-ai-translate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vite.config.js
import i18nAiTranslate from 'vite-plugin-i18n-ai-translate'

export default {
plugins: [
i18nAiTranslate({
apiKey: {
zhipuAI: 'your-zhipu-api-key',
api1: 'your-api1-key',
},
languages: ['zhCN', 'zhTW', 'enUS', 'jaJP', 'koKR'],
translateMethod: 'zhipuAI',
// 其他配置...
}),
],
}

可选项(节选):

  • projectPath(默认 ./src
  • outputPath(默认 ./locales
  • templateRegex(默认 \$t\(["']([\u4e00-\u9fa5]+)["']\)
  • concurrencymaxRetriescacheLifetimelogRetention

5.2 Vite 构建产物“随机参数”插件:@baota/vite-plugin-random-cache

为构建后的 JS/CSS 等资源自动追加随机 query,缓解浏览器缓存问题。

1
npm i -D @baota/vite-plugin-random-cache
1
2
3
4
5
6
7
// vite.config.js
import { defineConfig } from 'vite';
import randomCachePlugin from '@baota/vite-plugin-random-cache';

export default defineConfig({
plugins: [randomCachePlugin()]
});

也支持直接在脚本中处理文件或文本:

1
2
3
4
5
6
7
8
9
10
import {
processSingleFile,
processBatchFiles,
processFileContent
} from '@baota/vite-plugin-random-cache';

processSingleFile('./dist/index.html', { enableLog: true });
processBatchFiles('./dist', { patterns: ['**/*.html', '**/*.js'] });
console.log(processFileContent('<link rel="stylesheet" href="style.css">'));
// => <link rel="stylesheet" href="style.css?v=1703123456789_abc123">

5.3 Turborepo 自动部署插件:vite-plugin-turborepo-deploy

在 Vite 构建完成的 closeBundle 钩子中,自动执行以下能力:

  • Git 项目管理(多项目拉取/更新、分支切换、统一存放于 .sync-git
  • 本地文件同步(复制/镜像/增量、过滤器、批量模式)
  • 智能自动提交(监听特定开发者、提交分隔符、并发处理)

特性强调“按顺序执行、出错中断、详尽日志”,适合 Monorepo 下多端协同的自动化构建/分发流程。

5.4 SPA 预览服务器:node-spa-preview

一个基于 Express 的单页应用预览服务器,支持:

  • .env 环境变量配置
  • 静态资源服务、CORS
  • API 反向代理(Prefix/Include 两种模式)
  • 智能前端路由回退(SPA)

快速开始(节选):

1
2
3
4
5
6
7
8
9
10
11
pnpm install

# 交互式配置向导
pnpm config
# 或
node src/utils/cli-config.js

# 启动
pnpm dev
# 或
node src/server.js

常用环境变量(部分):

  • PORT(默认 5173)
  • PUBLIC_DIR(默认 public
  • FALLBACK_FILE(默认 index.html
  • API_TARGETAPI_PREFIXAPI_PROXY_MODE
  • DEV_MODELOG_LEVEL

6. 动态表单/表格组件(Vue + Naive UI)

frontend/packages/vue/naive-ui 提供了一个“动态组件”库,主打配置式 UI(动态表单、表格、表单设计器、标签页管理等)。

快速上手(简化示例):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<template>
<div>
<component :is="form.FormComponent" />
<n-button @click="handleSubmit">提交</n-button>
</div>
</template>

<script setup>
import { useForm } from '@baota/naive-ui/hooks'
import { NButton } from 'naive-ui'

const formConfig = [
{ type: 'formItem', label: '用户名',
children: [{ type: 'input', field: 'username', placeholder: '请输入用户名' }] },
{ type: 'formItem', label: '密码',
children: [{ type: 'input', field: 'password', type: 'password', placeholder: '请输入密码' }] },
]

const form = useForm({
config: formConfig,
defaultValues: { username: '', password: '' },
})

const handleSubmit = async () => {
const valid = await form.validate()
if (valid) {
console.log('表单数据:', form.formData.value)
}
}
</script>

基于 JSON 配置快速构建复杂表单,适合后台管理类场景在 Monorepo 内复用。


7. 路线图与社区

  • 开发路线图:可在仓库里通过 Milestone 查看推进情况
  • 反馈与建议:通过 GitHub Issues 提交
  • 前端 Monorepo 组织与插件生态,表明该项目不仅是“一款应用”,更是一组可复用的前端工程能力集合

8. 总结与上手建议

All in SSL 既是一个“生产级 SSL 证书平台”,也是一个“现代前端工程实践集合”。推荐这样上手:

  1. 用 Docker 快速跑起来,体验证书管理与看板
  2. 若需二次开发或集成,clone 仓库后以 Turborepo 方式启动前端工作区(pnpm)
  3. 在 Monorepo 内使用内置 Vite 插件(i18n 自动翻译、构建产物随机参数、Turborepo 部署自动化)提升团队交付效率
  4. 通过 SPA 预览服务在本地联调前后端
  5. 根据自身合规要求审阅安装脚本与发布二进制,合理配置运行环境与凭据
  6. 持续关注 Milestone 与 Releases 获取更新

参考与更多信息:

  • 主 README(项目概览/安装/部署):allinssl/allinssl
  • 前端 Turborepo 工作区说明:frontend/README.md
  • i18n 自动翻译插件:frontend/plugin/vite-plugin-i18n-ai-translate/README.md
  • 构建产物随机参数插件:frontend/plugin/vite-plugin-path-random/README.md
  • Turborepo 自动部署插件:frontend/plugin/vite-plugin-turborepo-deploy/README.md
  • SPA 预览服务:frontend/apps/node-spa-preview/README.md
  • 动态组件库(Vue + Naive UI):frontend/packages/vue/naive-ui/README.md

注:本文仅引用仓库 README 与子模块 README 的公开信息;如需获取更多文件与内容,请访问仓库以查看完整目录与最新文档。