支持无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
|
||||
- محلي أولاً بشكل افتراضي للتحليل والتخزين وعمليات المشروع
|
||||
- الوصول إلى الشبكة يحدث فقط عند الإجراءات التي يبدأها المستخدم
|
||||
- دعم بروكسي النظام لبيئات المؤسسات
|
||||
- وضع خدمة الويب يستخدم مصادقة قائمة على الرموز
|
||||
|
||||
## الترخيص
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -48,6 +49,8 @@ Git/Datei/Terminal-Workflows.
|
||||
- Skills-Verwaltung (global und projektbezogen)
|
||||
- Git-Remote-Kontoverwaltung (GitHub und andere Git-Server)
|
||||
- Webdienst-Modus — Zugriff auf Codeg über jeden Browser für Remote-Arbeit
|
||||
- Standalone-Server-Bereitstellung — codeg-server auf jedem Linux/macOS-Server ausführen, Zugriff über den Browser
|
||||
- Docker-Unterstützung — Bereitstellung mit docker compose up für konfigurationsfreien Serverbetrieb
|
||||
- Integrierter Engineering-Kreislauf (Dateibaum, Diff, Git-Änderungen, Commit, Terminal)
|
||||
|
||||
## Projekt-Starter
|
||||
@@ -106,7 +109,7 @@ Aktuelle beschreibbare Ziele:
|
||||
- Node.js `>=22` (empfohlen)
|
||||
- pnpm `>=10`
|
||||
- Rust stable (2021 edition)
|
||||
- Tauri-2-Build-Abhängigkeiten
|
||||
- Tauri-2-Build-Abhängigkeiten (nur Desktop-Modus)
|
||||
|
||||
Linux-Beispiel (Debian/Ubuntu):
|
||||
|
||||
@@ -124,18 +127,24 @@ sudo apt-get install -y \
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
# Frontend-Statikexport nach out/
|
||||
pnpm build
|
||||
|
||||
# Vollständige Desktop-App (Tauri + Next.js)
|
||||
pnpm tauri dev
|
||||
|
||||
# Nur Frontend
|
||||
pnpm dev
|
||||
|
||||
# Frontend-Statikexport nach out/
|
||||
pnpm build
|
||||
|
||||
# Desktop-Build
|
||||
pnpm tauri build
|
||||
|
||||
# Standalone-Server (kein Tauri/GUI erforderlich)
|
||||
pnpm server:dev
|
||||
|
||||
# Server-Release-Binary erstellen
|
||||
pnpm server:build
|
||||
|
||||
# Lint
|
||||
pnpm eslint .
|
||||
|
||||
@@ -145,22 +154,60 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
## Server-Bereitstellung
|
||||
|
||||
Codeg kann als eigenständiger Webserver ohne Tauri-Abhängigkeiten oder GUI betrieben werden.
|
||||
|
||||
### Option 1: Direktes Binary
|
||||
|
||||
```bash
|
||||
pnpm server:build
|
||||
./target/release/codeg-server
|
||||
```
|
||||
|
||||
| Variable | Standardwert | Beschreibung |
|
||||
| --- | --- | --- |
|
||||
| CODEG_PORT | 3080 | HTTP-Port |
|
||||
| CODEG_HOST | 0.0.0.0 | Bind-Adresse |
|
||||
| CODEG_TOKEN | (zufällig) | Authentifizierungstoken |
|
||||
| CODEG_DATA_DIR | ~/.local/share/codeg | SQLite-Datenbankverzeichnis |
|
||||
| CODEG_STATIC_DIR | ./web oder ./out | Next.js-Statikexport-Verzeichnis |
|
||||
|
||||
### Option 2: Docker
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
```
|
||||
|
||||
## Architektur
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## Einschränkungen
|
||||
@@ -175,6 +222,7 @@ Local Filesystem / Local Agent Data / Git Repos
|
||||
- Standardmäßig lokal für Analyse, Speicherung und Projektoperationen
|
||||
- Netzwerkzugriff erfolgt nur bei benutzergesteuerten Aktionen
|
||||
- Systemproxy-Unterstützung für Unternehmensumgebungen
|
||||
- Der Webdienst-Modus verwendet tokenbasierte Authentifizierung
|
||||
|
||||
## Lizenz
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -48,6 +49,8 @@ flujos integrados de Git/archivos/terminal.
|
||||
- Gestión de Skills (ámbito global y por proyecto)
|
||||
- Gestión de cuentas remotas de Git (GitHub y otros servidores Git)
|
||||
- Modo de servicio web — accede a Codeg desde cualquier navegador para trabajo remoto
|
||||
- Despliegue como servidor independiente — ejecuta codeg-server en cualquier servidor Linux/macOS, accede desde el navegador
|
||||
- Soporte de Docker — despliega con docker compose up para una configuración sin esfuerzo
|
||||
- Ciclo de ingeniería integrado (árbol de archivos, diff, cambios git, commit, terminal)
|
||||
|
||||
## Inicio de Proyecto
|
||||
@@ -106,7 +109,7 @@ Destinos de escritura actuales:
|
||||
- Node.js `>=22` (recomendado)
|
||||
- pnpm `>=10`
|
||||
- Rust stable (2021 edition)
|
||||
- Dependencias de compilación de Tauri 2
|
||||
- Dependencias de compilación de Tauri 2 (solo modo escritorio)
|
||||
|
||||
Ejemplo para Linux (Debian/Ubuntu):
|
||||
|
||||
@@ -124,18 +127,24 @@ sudo apt-get install -y \
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
# Exportación estática del frontend a out/
|
||||
pnpm build
|
||||
|
||||
# Aplicación de escritorio completa (Tauri + Next.js)
|
||||
pnpm tauri dev
|
||||
|
||||
# Solo frontend
|
||||
pnpm dev
|
||||
|
||||
# Exportación estática del frontend a out/
|
||||
pnpm build
|
||||
|
||||
# Compilación de escritorio
|
||||
pnpm tauri build
|
||||
|
||||
# Servidor independiente (sin Tauri/GUI necesario)
|
||||
pnpm server:dev
|
||||
|
||||
# Compilar binario de servidor para producción
|
||||
pnpm server:build
|
||||
|
||||
# Lint
|
||||
pnpm eslint .
|
||||
|
||||
@@ -145,22 +154,60 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
## Despliegue del servidor
|
||||
|
||||
Codeg puede ejecutarse como un servidor web independiente sin dependencias de Tauri ni GUI.
|
||||
|
||||
### Opción 1: Binario directo
|
||||
|
||||
```bash
|
||||
pnpm server:build
|
||||
./target/release/codeg-server
|
||||
```
|
||||
|
||||
| Variable | Valor por defecto | Descripción |
|
||||
| --- | --- | --- |
|
||||
| CODEG_PORT | 3080 | Puerto HTTP |
|
||||
| CODEG_HOST | 0.0.0.0 | Dirección de enlace |
|
||||
| CODEG_TOKEN | (aleatorio) | Token de autenticación |
|
||||
| CODEG_DATA_DIR | ~/.local/share/codeg | Directorio de base de datos SQLite |
|
||||
| CODEG_STATIC_DIR | ./web o ./out | Directorio de exportación estática de Next.js |
|
||||
|
||||
### Opción 2: Docker
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
```
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## Restricciones
|
||||
@@ -175,6 +222,7 @@ Local Filesystem / Local Agent Data / Git Repos
|
||||
- Enfoque local por defecto para análisis, almacenamiento y operaciones de proyecto
|
||||
- El acceso a la red solo ocurre mediante acciones iniciadas por el usuario
|
||||
- Soporte de proxy del sistema para entornos empresariales
|
||||
- El modo de servicio web utiliza autenticación basada en tokens
|
||||
|
||||
## Licencia
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -46,6 +47,8 @@ parallèle via `git worktree`, gestion MCP/Skills et workflows intégrés Git/fi
|
||||
- Gestion des Skills (portée globale et projet)
|
||||
- Gestion des comptes distants Git (GitHub et autres serveurs Git)
|
||||
- Mode service web — accédez à Codeg depuis n'importe quel navigateur pour le travail à distance
|
||||
- Déploiement en serveur autonome — exécutez codeg-server sur n'importe quel serveur Linux/macOS, accédez via le navigateur
|
||||
- Support Docker — déployez avec docker compose up pour une configuration serveur sans effort
|
||||
- Boucle d'ingénierie intégrée (arborescence de fichiers, diff, changements git, commit, terminal)
|
||||
|
||||
## Lanceur de projet
|
||||
@@ -104,7 +107,7 @@ Cibles en écriture actuelles :
|
||||
- Node.js `>=22` (recommandé)
|
||||
- pnpm `>=10`
|
||||
- Rust stable (2021 edition)
|
||||
- Dépendances de build Tauri 2
|
||||
- Dépendances de build Tauri 2 (mode bureau uniquement)
|
||||
|
||||
Exemple Linux (Debian/Ubuntu) :
|
||||
|
||||
@@ -122,18 +125,24 @@ sudo apt-get install -y \
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
# Export statique du frontend vers out/
|
||||
pnpm build
|
||||
|
||||
# Application de bureau complète (Tauri + Next.js)
|
||||
pnpm tauri dev
|
||||
|
||||
# Frontend uniquement
|
||||
pnpm dev
|
||||
|
||||
# Export statique du frontend vers out/
|
||||
pnpm build
|
||||
|
||||
# Build de l'application de bureau
|
||||
pnpm tauri build
|
||||
|
||||
# Serveur autonome (sans Tauri/GUI requis)
|
||||
pnpm server:dev
|
||||
|
||||
# Compiler le binaire serveur pour la production
|
||||
pnpm server:build
|
||||
|
||||
# Lint
|
||||
pnpm eslint .
|
||||
|
||||
@@ -143,22 +152,60 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
## Déploiement du serveur
|
||||
|
||||
Codeg peut fonctionner comme un serveur web autonome sans dépendances Tauri ni interface graphique.
|
||||
|
||||
### Option 1 : Binaire direct
|
||||
|
||||
```bash
|
||||
pnpm server:build
|
||||
./target/release/codeg-server
|
||||
```
|
||||
|
||||
| Variable | Valeur par défaut | Description |
|
||||
| --- | --- | --- |
|
||||
| CODEG_PORT | 3080 | Port HTTP |
|
||||
| CODEG_HOST | 0.0.0.0 | Adresse de liaison |
|
||||
| CODEG_TOKEN | (aléatoire) | Jeton d'authentification |
|
||||
| CODEG_DATA_DIR | ~/.local/share/codeg | Répertoire de base de données SQLite |
|
||||
| CODEG_STATIC_DIR | ./web ou ./out | Répertoire d'export statique Next.js |
|
||||
|
||||
### Option 2 : Docker
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## Contraintes
|
||||
@@ -173,6 +220,7 @@ Local Filesystem / Local Agent Data / Git Repos
|
||||
- Local-first par défaut pour l'analyse, le stockage et les opérations sur le projet
|
||||
- L'accès réseau ne se produit que lors d'actions déclenchées par l'utilisateur
|
||||
- Prise en charge du proxy système pour les environnements d'entreprise
|
||||
- Le mode service web utilise l'authentification par jeton
|
||||
|
||||
## Licence
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -46,6 +47,8 @@ Git/ファイル/ターミナル連携ワークフローを提供します。
|
||||
- Skills 管理(グローバルおよびプロジェクトスコープ)
|
||||
- Git リモートアカウント管理(GitHub およびその他の Git サーバー)
|
||||
- Web サービスモード — ブラウザから Codeg にアクセスでき、リモートワークに対応
|
||||
- **スタンドアロンサーバーデプロイ** — 任意の Linux/macOS サーバーで `codeg-server` を実行し、ブラウザからアクセス
|
||||
- **Docker サポート** — `docker compose up` でゼロ設定のサーバーセットアップが可能
|
||||
- 統合エンジニアリングループ(ファイルツリー、Diff、Git 変更、コミット、ターミナル)
|
||||
|
||||
## プロジェクトブート
|
||||
@@ -104,7 +107,7 @@ Git/ファイル/ターミナル連携ワークフローを提供します。
|
||||
- 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 サーバーとして実行できます。
|
||||
|
||||
#### オプション 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` or `./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
|
||||
- 解析、ストレージ、プロジェクト操作はデフォルトでローカルファースト
|
||||
- ネットワークアクセスはユーザーが明示的に操作した場合のみ発生
|
||||
- エンタープライズ環境向けのシステムプロキシサポート
|
||||
- Web サービスモードではトークンベースの認証を使用
|
||||
|
||||
## ライセンス
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -46,6 +47,8 @@ Git/파일/터미널 통합 워크플로를 제공합니다.
|
||||
- Skills 관리 (글로벌 및 프로젝트 범위)
|
||||
- Git 원격 계정 관리 (GitHub 및 기타 Git 서버)
|
||||
- Web 서비스 모드 — 브라우저에서 Codeg에 접속하여 원격 작업 가능
|
||||
- **독립형 서버 배포** — 모든 Linux/macOS 서버에서 `codeg-server`를 실행하고 브라우저로 접속
|
||||
- **Docker 지원** — `docker compose up`으로 설정 없이 서버 구축 가능
|
||||
- 통합 엔지니어링 루프 (파일 트리, Diff, Git 변경사항, 커밋, 터미널)
|
||||
|
||||
## 프로젝트 부트
|
||||
@@ -104,7 +107,7 @@ Git/파일/터미널 통합 워크플로를 제공합니다.
|
||||
- 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는 데스크톱 환경 없이 독립형 웹 서버로 실행할 수 있습니다.
|
||||
|
||||
#### 옵션 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` or `./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
|
||||
- 파싱, 저장, 프로젝트 작업은 기본적으로 로컬 우선
|
||||
- 네트워크 접근은 사용자가 명시적으로 작업을 실행할 때만 발생
|
||||
- 엔터프라이즈 환경을 위한 시스템 프록시 지원
|
||||
- 웹 서비스 모드에서는 토큰 기반 인증 사용
|
||||
|
||||
## 라이선스
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
[](../../LICENSE)
|
||||
[](https://tauri.app/)
|
||||
[](https://nextjs.org/)
|
||||
[](../../Dockerfile)
|
||||
|
||||
<p>
|
||||
<a href="../../README.md">English</a> |
|
||||
@@ -46,6 +47,8 @@ paralelo via `git worktree`, gerenciamento de MCP/Skills e fluxos integrados de
|
||||
- Gerenciamento de Skills (escopo global e por projeto)
|
||||
- Gerenciamento de contas remotas Git (GitHub e outros servidores Git)
|
||||
- Modo de serviço web — acesse o Codeg de qualquer navegador para trabalho remoto
|
||||
- **Implantação de servidor standalone** — execute `codeg-server` em qualquer servidor Linux/macOS, acesse via navegador
|
||||
- **Suporte a Docker** — implante com `docker compose up` para configuração zero do servidor
|
||||
- Ciclo de engenharia integrado (árvore de arquivos, diff, alterações git, commit, terminal)
|
||||
|
||||
## Inicializador de Projeto
|
||||
@@ -104,7 +107,7 @@ Alvos de escrita atuais:
|
||||
- Node.js `>=22` (recomendado)
|
||||
- pnpm `>=10`
|
||||
- Rust stable (2021 edition)
|
||||
- Dependências de build do Tauri 2
|
||||
- Dependências de build do Tauri 2 (somente modo desktop)
|
||||
|
||||
Exemplo Linux (Debian/Ubuntu):
|
||||
|
||||
@@ -122,18 +125,24 @@ sudo apt-get install -y \
|
||||
```bash
|
||||
pnpm install
|
||||
|
||||
# Exportação estática do frontend para out/
|
||||
pnpm build
|
||||
|
||||
# Aplicativo desktop completo (Tauri + Next.js)
|
||||
pnpm tauri dev
|
||||
|
||||
# Apenas frontend
|
||||
pnpm dev
|
||||
|
||||
# Exportação estática do frontend para out/
|
||||
pnpm build
|
||||
|
||||
# Build do aplicativo desktop
|
||||
pnpm tauri build
|
||||
|
||||
# Servidor standalone (sem Tauri/GUI necessário)
|
||||
pnpm server:dev
|
||||
|
||||
# Build do binário do servidor
|
||||
pnpm server:build
|
||||
|
||||
# Lint
|
||||
pnpm eslint .
|
||||
|
||||
@@ -143,22 +152,71 @@ cargo clippy
|
||||
cargo build
|
||||
```
|
||||
|
||||
### Implantação do servidor
|
||||
|
||||
O Codeg pode ser executado como um servidor web standalone sem ambiente desktop.
|
||||
|
||||
#### Opção 1: Binário direto
|
||||
|
||||
```bash
|
||||
# Build do binário do servidor
|
||||
cd src-tauri
|
||||
cargo build --release --bin codeg-server --no-default-features
|
||||
|
||||
# Executar
|
||||
CODEG_PORT=3080 CODEG_STATIC_DIR=../out ./target/release/codeg-server
|
||||
```
|
||||
|
||||
Variáveis de ambiente:
|
||||
|
||||
| Variável | Padrão | Descrição |
|
||||
| --- | --- | --- |
|
||||
| `CODEG_PORT` | `3080` | Porta HTTP |
|
||||
| `CODEG_HOST` | `0.0.0.0` | Endereço de bind |
|
||||
| `CODEG_TOKEN` | *(aleatório)* | Token de autenticação (impresso no stderr ao iniciar) |
|
||||
| `CODEG_DATA_DIR` | `~/.local/share/codeg` | Diretório do banco de dados SQLite |
|
||||
| `CODEG_STATIC_DIR` | `./web` ou `./out` | Diretório de exportação estática do Next.js |
|
||||
|
||||
#### Opção 2: Docker
|
||||
|
||||
```bash
|
||||
# Build e execução
|
||||
docker compose up -d
|
||||
|
||||
# Ou build manual
|
||||
docker build -t codeg .
|
||||
docker run -p 3080:3080 -v codeg-data:/data codeg
|
||||
```
|
||||
|
||||
## Arquitetura
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## Restrições
|
||||
@@ -173,6 +231,7 @@ Local Filesystem / Local Agent Data / Git Repos
|
||||
- Local-first por padrão para análise, armazenamento e operações do projeto
|
||||
- O acesso à rede ocorre apenas em ações iniciadas pelo usuário
|
||||
- Suporte a proxy do sistema para ambientes corporativos
|
||||
- O modo de serviço web usa autenticação baseada em token
|
||||
|
||||
## Licença
|
||||
|
||||
|
||||
@@ -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 服务模式使用基于令牌的身份认证
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
@@ -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