mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-04-28 11:40:25 +00:00
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Pre-commit / pre-commit (push) Has been cancelled
Test / Run Python Tests (push) Has been cancelled
79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# Server Refactor v1 - Upgrade Guide
|
|
|
|
> Applies to: v0.0.89+
|
|
> PR: #1509
|
|
|
|
## What Changed
|
|
|
|
The server codebase has been restructured from a flat layout to a **domain-driven architecture**. No API endpoints or database schemas were changed — this is a code organization refactor only.
|
|
|
|
### Directory Mapping
|
|
|
|
| Before | After | Description |
|
|
|---|---|---|
|
|
| `app/component/` | `app/core/` | Infrastructure utilities (database, encryption, celery, etc.) |
|
|
| `app/controller/` | `app/domains/*/api/` | API controllers, grouped by domain |
|
|
| `app/service/` | `app/domains/*/service/` | Business logic, grouped by domain |
|
|
| `app/exception/` | `app/shared/exception/` | Exception handling |
|
|
| `app/type/` | `app/shared/types/` | Shared type definitions |
|
|
| _(new)_ | `app/shared/auth/` | Authentication & authorization |
|
|
| _(new)_ | `app/shared/middleware/` | CORS, rate limiting, trace ID |
|
|
| _(new)_ | `app/shared/http/` | HTTP client utilities |
|
|
| _(new)_ | `app/shared/logging/` | Logging & sensitive data filtering |
|
|
|
|
### Domain Structure
|
|
|
|
Each domain (`chat`, `config`, `mcp`, `model_provider`, `oauth`, `trigger`, `user`) follows the same layout:
|
|
|
|
```
|
|
app/domains/<domain>/
|
|
api/ # Controllers (route handlers)
|
|
service/ # Business logic
|
|
schema/ # Request/response schemas
|
|
```
|
|
|
|
## Upgrade Action Required
|
|
|
|
**This is a breaking change for local deployments.** The old server code will fail to start due to changed import paths.
|
|
|
|
### Docker Users
|
|
|
|
```bash
|
|
cd server
|
|
docker-compose up --build -d
|
|
```
|
|
|
|
You **must** include `--build` to rebuild the image. Running `docker-compose up -d` without `--build` will use the stale old image and fail.
|
|
|
|
### Non-Docker Users (Local Development)
|
|
|
|
If you are running the server directly (via `start_server.sh` or `uv run uvicorn`):
|
|
|
|
1. Stop the running server process
|
|
2. Pull the latest code
|
|
3. Restart the server
|
|
|
|
```bash
|
|
# If using start_server.sh
|
|
cd server
|
|
./start_server.sh
|
|
|
|
# If running uvicorn directly
|
|
cd server
|
|
uv run uvicorn main:api --reload --port 3001 --host 0.0.0.0
|
|
```
|
|
|
|
### Electron App Users
|
|
|
|
If you are running Eigent as a desktop app, simply restart the application. The server will be restarted automatically.
|
|
|
|
## FAQ
|
|
|
|
**Q: Will I lose my data?**
|
|
A: No. Database volumes and schemas are not affected. Only the Python source code layout changed.
|
|
|
|
**Q: Do I need to re-run database migrations?**
|
|
A: No. There are no new migrations in this change.
|
|
|
|
**Q: I see import errors like `ModuleNotFoundError: No module named 'app.component'`**
|
|
A: This means you are running an old server binary/image. Follow the upgrade steps above.
|