72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# 雪羊科技开源项目门户
|
|
|
|
开源项目门户站源码。当前收录 **iotLCM**(物联网卡全生命周期管理平台)、**秀杰 DTU 管理平台**、**XiuAdmin**(中后台开发框架)。
|
|
|
|
- 站点框架:VitePress 1.6(与 iotLCM 的文档站同构)
|
|
- 产物:纯静态文件
|
|
- 许可:Apache-2.0
|
|
|
|
## 目录
|
|
|
|
```text
|
|
.
|
|
├── data/projects.ts # 项目注册表 —— 门户唯一项目清单来源
|
|
├── pages/
|
|
│ ├── index.md # 门户首页
|
|
│ ├── projects/index.md # 全部项目
|
|
│ ├── projects/<id>/index.md # 各项目详情页
|
|
│ ├── guide/portal-deploy.md # 门户自身的构建与部署
|
|
│ └── about.md # 关于、许可、贡献说明
|
|
├── .vitepress/theme/components/ # 项目卡片与列表组件
|
|
├── scripts/check-registry.mjs # 注册表与详情页一致性校验
|
|
├── deploy/docker-compose.yml # 容器部署编排
|
|
└── Dockerfile # 多阶段构建镜像
|
|
```
|
|
|
|
## 新增一个项目
|
|
|
|
两步,不需要改动站点其它部分:
|
|
|
|
1. 在 `data/projects.ts` 里加一条记录(名称、定位、说明、代码仓、许可证、技术栈、状态、详情页路径、子页面)
|
|
2. 写 `pages/projects/<id>/index.md` 详情页
|
|
|
|
首页卡片、项目列表页、侧边栏都会自动带上新项目。
|
|
|
|
构建前会自动校验注册表与详情页目录是否一一对应,不一致直接报错:
|
|
|
|
```bash
|
|
npm run check
|
|
```
|
|
|
|
## 本地开发
|
|
|
|
```bash
|
|
npm ci
|
|
npm run dev # http://127.0.0.1:5173
|
|
```
|
|
|
|
## 构建
|
|
|
|
```bash
|
|
npm run build # 产物在 .vitepress/dist/
|
|
```
|
|
|
|
## 部署
|
|
|
|
```bash
|
|
docker compose -f deploy/docker-compose.yml up -d --build
|
|
```
|
|
|
|
默认发布在宿主机 `127.0.0.1:8020`。站点资源前缀由 `SITE_BASE` 决定:
|
|
|
|
| 形态 | 参数 | 访问方式 |
|
|
| --- | --- | --- |
|
|
| 子路径(过渡,无独立域名) | `/www/`(默认) | 由已有网关转发 `/www/` 到本容器 |
|
|
| 独立域名 | `/` | 域名根路径 |
|
|
|
|
```bash
|
|
SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
|
|
```
|
|
|
|
详见 [门户部署](pages/guide/portal-deploy.md)。
|