feat: 开源项目门户站首版(iotLCM / 秀杰 DTU / XiuAdmin 三项目,注册表驱动)

This commit is contained in:
技小云
2026-11-04 11:08:47 +08:00
committed by MiFaZhan
commit fe63dacae2
27 changed files with 3786 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# 门户部署
## 启动
```bash
docker compose -f deploy/docker-compose.yml up -d --build
```
默认发布在宿主机 `127.0.0.1:8020`(用 `PORTAL_PORT` 改端口)。
## 两种形态
构建参数 `SITE_BASE` 决定站点资源前缀,同时决定容器内 nginx 的形态:
| 形态 | 参数 | 访问方式 |
| --- | --- | --- |
| 子路径(过渡,无独立域名) | `/www/`(默认) | 由已有网关转发 `/www/` 到本容器 |
| 独立域名 | `/` | 域名根路径,如 `https://<门户域名>/` |
```bash
SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
```
内容同源,切换只改构建参数与入口配置,页面不用改。
> VitePress 产物里的资源引用是绝对路径(`<base>assets/xxx`),base 与 nginx 的 location 形态必须配套,
> 混用会出现「页面 200 但 JS/CSS 全 404」的白屏。镜像构建脚本按 `SITE_BASE` 自动选对应配置。
## 校验
门户项目清单与详情页的一致性在构建前自动校验:
```bash
npm run check
```
+27
View File
@@ -0,0 +1,27 @@
# 开源项目门户部署编排
#
# docker compose -f deploy/docker-compose.yml up -d --build
#
# 形态切换(站点资源前缀):
# SITE_BASE=/www/ 子路径形态,挂在已有网关的 /www/ 路径下(默认)
# SITE_BASE=/ 独立域名形态,站点独占域名根路径
#
# SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
services:
portal:
build:
context: ..
dockerfile: Dockerfile
args:
SITE_BASE: '${SITE_BASE:-/www/}'
image: snowgoat-open-portal:local
container_name: snowgoat-open-portal
restart: unless-stopped
ports:
- "127.0.0.1:${PORTAL_PORT:-8020}:80"
healthcheck:
test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1${SITE_BASE:-/www/}"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s