forked from boos/BoosAPI
feat: implement macOS notarization and ad-hoc signing in afterSign script
feat: add run-server script to manage server execution and compatibility checks feat: create main application logic for desktop with window management, server handling, and auto-updater test: add unit tests for desktop runtime helpers feat: implement desktop server environment configuration and health check test: add tests for server configuration and desktop routes feat: add native module guard for better-sqlite3 compatibility test: add tests for native module guard functionality test: add comprehensive tests for account verification feedback handling feat: implement account verification feedback helpers chore: add TypeScript configuration for desktop builds
This commit is contained in:
+13
-40
@@ -83,54 +83,27 @@ docker run -d --name metapi \
|
||||
> - `./data:/app/data` — 相对路径,数据存到当前目录下的 `data` 文件夹
|
||||
> - 也可以使用绝对路径:`/your/custom/path:/app/data`
|
||||
|
||||
## Release 包部署(免 Docker)
|
||||
## 桌面版部署(Windows / macOS / Linux)
|
||||
|
||||
适用于没有 Docker 环境的服务器,或 Windows / macOS 桌面使用场景。
|
||||
个人电脑本地部署请直接使用 [Releases](https://github.com/cita-777/metapi/releases) 中的 Electron 安装包:
|
||||
|
||||
### 前置条件
|
||||
1. 下载与你系统匹配的桌面安装包
|
||||
2. 安装并启动 Metapi Desktop
|
||||
3. 桌面壳会自动启动本地服务并将数据保存到应用数据目录
|
||||
|
||||
- Node.js 20+(推荐 22 LTS)
|
||||
桌面版特性:
|
||||
|
||||
### 步骤
|
||||
|
||||
1. 从 [Releases](https://github.com/cita-777/metapi/releases) 下载与你系统匹配的压缩包(Linux / Windows / macOS)
|
||||
2. 解压后进入目录
|
||||
|
||||
Linux / macOS:
|
||||
|
||||
```bash
|
||||
export AUTH_TOKEN=your-admin-token
|
||||
export PROXY_TOKEN=your-proxy-sk-token
|
||||
export PORT=4000
|
||||
export DATA_DIR=./data
|
||||
./start.sh
|
||||
```
|
||||
|
||||
Windows(PowerShell):
|
||||
|
||||
```powershell
|
||||
$env:AUTH_TOKEN="your-admin-token"
|
||||
$env:PROXY_TOKEN="your-proxy-sk-token"
|
||||
$env:PORT="4000"
|
||||
$env:DATA_DIR="./data"
|
||||
.\start.bat
|
||||
```
|
||||
|
||||
`start.sh` / `start.bat` 的作用是:
|
||||
|
||||
- 先检查 `better-sqlite3` 与当前 Node.js ABI 是否兼容
|
||||
- 若检测到 ABI 不匹配,会自动尝试 `npm rebuild better-sqlite3`
|
||||
- 若重建失败,会回退到 `npm ci --omit=dev` 重新安装运行时依赖
|
||||
- 最后执行数据库迁移并启动服务
|
||||
- 内置本地 Metapi 服务,无需手动准备 Node.js 运行环境
|
||||
- 托盘菜单支持重新打开窗口、重启后端、开机自启
|
||||
- 支持基于 GitHub Releases 的应用内更新检查
|
||||
|
||||
> [!NOTE]
|
||||
> 如果本机 Node 主版本与打包时不同(例如包内依赖基于 Node 22,而本机是 Node 24),首次启动可能触发自动重建,需联网。
|
||||
> 服务器部署不再提供裸 Node.js Release 压缩包,统一推荐 Docker / Docker Compose。
|
||||
|
||||
### Release 包升级
|
||||
### 桌面版升级
|
||||
|
||||
1. 下载新版本的 Release 包
|
||||
2. 解压覆盖旧文件(`data/` 目录不受影响)
|
||||
3. 重新启动即可
|
||||
1. 通过应用内更新提示安装新版本,或从 Releases 下载最新安装包覆盖安装
|
||||
2. 用户数据目录会保留,升级后自动继续使用原有数据
|
||||
|
||||
---
|
||||
|
||||
|
||||
+5
-5
@@ -80,14 +80,14 @@ docker compose up -d
|
||||
|
||||
或使用 `.env` 文件。
|
||||
|
||||
### Q: Release 包启动失败
|
||||
### Q: 桌面版启动失败
|
||||
|
||||
**A:** 排查步骤:
|
||||
|
||||
1. 确认 Node.js 已安装且版本 ≥ 20:`node --version`
|
||||
2. 首次启动时如果报 `better-sqlite3` 相关错误,启动脚本会尝试自动重建,需要网络连接
|
||||
3. 如果本机 Node 主版本与打包时不同(例如包内依赖基于 Node 22,而本机是 Node 24),首次启动需联网执行 `npm rebuild`
|
||||
4. Windows 用户确认使用 PowerShell 而非 CMD 运行 `start.bat`
|
||||
1. 确认下载的是与你系统匹配的桌面安装包
|
||||
2. Windows 首次运行若出现“未知发布者”,先确认安装包来自官方 Releases
|
||||
3. 如果桌面版提示后端启动失败,优先查看托盘菜单中的日志目录
|
||||
4. 如需部署到服务器,请改用 Docker / Docker Compose,而不是桌面安装包
|
||||
|
||||
---
|
||||
|
||||
|
||||
+6
-24
@@ -60,34 +60,16 @@ docker compose up -d
|
||||
> 如果未显式设置(非 Compose 场景),默认值为 `change-me-admin-token`(仅建议本地调试)。
|
||||
> 若你在后台「设置」里修改过管理员令牌,后续登录请使用新令牌。
|
||||
|
||||
## 方式二:Release 包启动(Linux / macOS / Windows)
|
||||
## 方式二:桌面版启动(Windows / macOS / Linux)
|
||||
|
||||
如果不想用 Docker,可以直接下载预打包的 Release 产物运行:
|
||||
如果你是在个人电脑上本地使用,请直接下载桌面版安装包:
|
||||
|
||||
1. 打开 [Releases](https://github.com/cita-777/metapi/releases) 下载与你系统匹配的压缩包
|
||||
2. 解压后进入目录
|
||||
3. 设置环境变量并启动
|
||||
|
||||
Linux / macOS:
|
||||
|
||||
```bash
|
||||
export AUTH_TOKEN=your-admin-token
|
||||
export PROXY_TOKEN=your-proxy-sk-token
|
||||
./start.sh
|
||||
```
|
||||
|
||||
Windows(PowerShell):
|
||||
|
||||
```powershell
|
||||
$env:AUTH_TOKEN="your-admin-token"
|
||||
$env:PROXY_TOKEN="your-proxy-sk-token"
|
||||
.\start.bat
|
||||
```
|
||||
|
||||
`start.sh` / `start.bat` 会自动检查 `better-sqlite3` ABI 兼容性、执行数据库迁移并启动服务。
|
||||
1. 打开 [Releases](https://github.com/cita-777/metapi/releases) 下载与你系统匹配的桌面安装包
|
||||
2. 安装并启动 Metapi Desktop
|
||||
3. 桌面壳会自动启动本地服务并保存数据,无需手动准备 Node.js 环境
|
||||
|
||||
> [!NOTE]
|
||||
> Release 包依赖本机安装 Node.js(支持 20+,推荐 22 LTS)。
|
||||
> 服务器部署统一推荐 Docker / Docker Compose,不再提供裸 Node.js 的 Release 压缩包。
|
||||
|
||||
## 方式三:本地开发启动
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@ metapi/
|
||||
├── scripts/ # 项目脚本(按场景分组)
|
||||
│ ├── dev/
|
||||
│ │ └── restart.bat # Windows 开发环境快捷重启
|
||||
│ └── release/
|
||||
│ ├── start.sh # Release 包启动脚本(Linux/macOS)
|
||||
│ └── start.bat # Release 包启动脚本(Windows)
|
||||
│ └── desktop/
|
||||
│ └── afterSign.mjs # Electron macOS 签名后处理 / 可选公证
|
||||
├── src/
|
||||
│ ├── desktop/ # Electron 主进程与桌面运行时
|
||||
│ ├── server/ # Fastify 后端服务
|
||||
│ └── web/ # React 前端应用
|
||||
├── .github/workflows/ # CI/CD 工作流
|
||||
|
||||
Reference in New Issue
Block a user