支持无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، وغيرها) في تطبيق سطح مكتب وخدمة ويب —
|
||||
- إدارة Skills (نطاق عام ونطاق المشروع)
|
||||
- إدارة حسابات Git البعيدة (GitHub وخوادم Git الأخرى)
|
||||
- وضع خدمة الويب — الوصول إلى Codeg من أي متصفح للعمل عن بُعد
|
||||
- **نشر خادم مستقل** — شغّل `codeg-server` على أي خادم Linux/macOS، والوصول عبر المتصفح
|
||||
- **دعم Docker** — انشر باستخدام `docker compose up` لإعداد الخادم بدون تكوين
|
||||
- حلقة هندسية متكاملة (شجرة الملفات، الفروقات، تغييرات git، الإيداع، الطرفية)
|
||||
|
||||
## مُنشئ المشروع
|
||||
@@ -104,7 +107,7 @@ OpenClaw، وغيرها) في تطبيق سطح مكتب وخدمة ويب —
|
||||
- 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/واجهة رسومية)
|
||||
pnpm server:dev
|
||||
|
||||
# بناء الملف التنفيذي للخادم
|
||||
pnpm server:build
|
||||
|
||||
# فحص الأكواد
|
||||
pnpm eslint .
|
||||
|
||||
@@ -143,22 +152,71 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
### نشر الخادم
|
||||
|
||||
يمكن تشغيل Codeg كخادم ويب مستقل بدون بيئة سطح مكتب.
|
||||
|
||||
#### الخيار 1: الملف التنفيذي المباشر
|
||||
|
||||
```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 |
|
||||
|
||||
#### الخيار 2: 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
|
||||
- محلي أولاً بشكل افتراضي للتحليل والتخزين وعمليات المشروع
|
||||
- الوصول إلى الشبكة يحدث فقط عند الإجراءات التي يبدأها المستخدم
|
||||
- دعم بروكسي النظام لبيئات المؤسسات
|
||||
- وضع خدمة الويب يستخدم مصادقة قائمة على الرموز
|
||||
|
||||
## الترخيص
|
||||
|
||||
|
||||
Reference in New Issue
Block a user