支持无GUI的Server运行模式
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -46,6 +47,8 @@ OpenClaw、Cline 等)统一到桌面应用与 Web 服务中——通过浏览
|
||||
- Skills 管理(全局与项目级)
|
||||
- Git 远程账号管理(支持 GitHub 及其它 Git 服务器)
|
||||
- Web 服务模式 — 开启后可在浏览器中访问 Codeg,支持远程工作
|
||||
- **独立服务器部署** — 在任意 Linux/macOS 服务器上运行 `codeg-server`,通过浏览器访问
|
||||
- **Docker 支持** — 使用 `docker compose up` 部署,零配置启动服务
|
||||
- 集成工程闭环(文件树、Diff、Git 变更、提交、终端)
|
||||
|
||||
## 项目启动器
|
||||
@@ -104,7 +107,7 @@ OpenClaw、Cline 等)统一到桌面应用与 Web 服务中——通过浏览
|
||||
- Node.js `>=22`(推荐)
|
||||
- pnpm `>=10`
|
||||
- Rust stable(2021 edition)
|
||||
- Tauri 2 构建依赖
|
||||
- Tauri 2 构建依赖(仅桌面模式)
|
||||
|
||||
Linux(Debian/Ubuntu)示例:
|
||||
|
||||
@@ -122,18 +125,24 @@ sudo apt-get install -y \
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
# 前端静态导出到 out/
|
||||
pnpm build
|
||||
|
||||
# 完整桌面应用(Tauri + Next.js)
|
||||
pnpm tauri dev
|
||||
|
||||
# 仅前端
|
||||
pnpm dev
|
||||
|
||||
# 前端静态导出到 out/
|
||||
pnpm build
|
||||
|
||||
# 桌面应用构建
|
||||
pnpm tauri build
|
||||
|
||||
# 独立服务器(无需 Tauri/GUI)
|
||||
pnpm server:dev
|
||||
|
||||
# 构建服务器发布二进制
|
||||
pnpm server:build
|
||||
|
||||
# Lint
|
||||
pnpm eslint .
|
||||
|
||||
@@ -143,22 +152,71 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
### 服务器部署
|
||||
|
||||
Codeg 可以作为独立 Web 服务器运行,无需桌面环境。
|
||||
|
||||
#### 方式一:直接运行二进制
|
||||
|
||||
```bash
|
||||
# 构建服务器二进制
|
||||
cd src-tauri
|
||||
cargo build --release --bin codeg-server --no-default-features
|
||||
|
||||
# 运行
|
||||
CODEG_PORT=3080 CODEG_STATIC_DIR=../out ./target/release/codeg-server
|
||||
```
|
||||
|
||||
环境变量:
|
||||
|
||||
| 变量 | 默认值 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `CODEG_PORT` | `3080` | HTTP 端口 |
|
||||
| `CODEG_HOST` | `0.0.0.0` | 绑定地址 |
|
||||
| `CODEG_TOKEN` | *(随机)* | 认证令牌(启动时输出到 stderr) |
|
||||
| `CODEG_DATA_DIR` | `~/.local/share/codeg` | SQLite 数据库目录 |
|
||||
| `CODEG_STATIC_DIR` | `./web` 或 `./out` | Next.js 静态导出目录 |
|
||||
|
||||
#### 方式二:Docker
|
||||
|
||||
```bash
|
||||
# 构建并运行
|
||||
docker compose up -d
|
||||
|
||||
# 或手动构建
|
||||
docker build -t codeg .
|
||||
docker run -p 3080:3080 -v codeg-data:/data codeg
|
||||
```
|
||||
|
||||
## 架构
|
||||
|
||||
```text
|
||||
Next.js 16 (Static Export) + React 19
|
||||
|
|
||||
| invoke()
|
||||
| invoke() (desktop) / fetch() + WebSocket (web)
|
||||
v
|
||||
Tauri 2 Commands (Rust)
|
||||
|- ACP Manager
|
||||
|- Parsers (local session ingestion)
|
||||
|- Git / File Tree / Terminal runtime
|
||||
|- MCP marketplace + local config writer
|
||||
|- SeaORM + SQLite
|
||||
┌─────────────────────────┐
|
||||
│ Transport Abstraction │
|
||||
│ (Tauri IPC or HTTP/WS) │
|
||||
└─────────────────────────┘
|
||||
|
|
||||
v
|
||||
Local Filesystem / Local Agent Data / Git Repos
|
||||
┌─── Tauri Desktop ───┐ ┌─── codeg-server ───┐
|
||||
│ Tauri 2 Commands │ │ Axum HTTP + WS │
|
||||
│ (window management) │ │ (standalone mode) │
|
||||
└──────────┬───────────┘ └──────────┬──────────┘
|
||||
└──────────┬───────────────┘
|
||||
v
|
||||
Shared Rust Core
|
||||
|- AppState
|
||||
|- ACP Manager
|
||||
|- Parsers (session ingestion)
|
||||
|- Git / File Tree / Terminal
|
||||
|- MCP marketplace + config
|
||||
|- SeaORM + SQLite
|
||||
|
|
||||
v
|
||||
Local Filesystem / Git Repos
|
||||
```
|
||||
|
||||
## 开发约束
|
||||
@@ -173,6 +231,7 @@ Local Filesystem / Local Agent Data / Git Repos
|
||||
- 默认本地优先:解析、存储、项目操作均在本地完成
|
||||
- 仅在用户主动触发时才访问网络
|
||||
- 支持系统代理,适配企业网络环境
|
||||
- Web 服务模式使用基于令牌的身份认证
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user