2026-08-20 21:46:55 +08:00
|
|
|
# Agent Desk Server
|
2026-04-09 10:01:23 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
Customer-service API server built with Go, Gin, GORM, and `github.com/mlogclub/simple`.
|
2026-04-09 10:01:23 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
The frontend is an independent sibling project, normally located at `../agent-desk-web`.
|
2026-04-09 10:01:23 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
## Development
|
2026-04-09 10:01:23 +08:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cp config/config.example.yaml config/config.yaml
|
2026-08-20 21:46:55 +08:00
|
|
|
go mod download
|
|
|
|
|
make dev
|
2026-04-09 10:01:23 +08:00
|
|
|
```
|
|
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
The API listens on `http://127.0.0.1:8083` by default. Health check:
|
2026-05-30 22:34:23 +08:00
|
|
|
|
|
|
|
|
```text
|
2026-08-20 21:46:55 +08:00
|
|
|
GET http://127.0.0.1:8083/api/health
|
2026-05-30 22:34:23 +08:00
|
|
|
```
|
2026-04-26 19:59:29 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
Set `server.frontendUrl` and `server.cors.allowedOrigins` in `config/config.yaml` to the frontend origin. Local defaults use `http://127.0.0.1:3000`.
|
2026-04-09 10:01:23 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
## Commands
|
2026-05-23 22:50:07 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
```bash
|
|
|
|
|
make dev
|
|
|
|
|
make build
|
|
|
|
|
make test
|
|
|
|
|
make generator
|
|
|
|
|
make enums FRONTEND_DIR=../agent-desk-web
|
2026-05-30 22:34:23 +08:00
|
|
|
```
|
2026-05-23 22:53:33 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
`make enums` writes the backend-owned shared enums into the frontend project.
|
2026-05-23 22:53:33 +08:00
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
## Docker
|
2026-05-23 22:50:07 +08:00
|
|
|
|
|
|
|
|
```bash
|
2026-08-20 21:46:55 +08:00
|
|
|
docker build --target app -t agent-desk-server .
|
|
|
|
|
docker run --rm -p 8083:8083 agent-desk-server
|
2026-05-23 22:50:07 +08:00
|
|
|
```
|
|
|
|
|
|
2026-08-20 21:46:55 +08:00
|
|
|
The Docker image contains only the API service. Deploy the frontend separately.
|