* fix(H-337): configure Captain provider runtime * fix(captain): make knowledge rebuild atomic * fix(captain): scope retrieval provider failures --------- Co-authored-by: Rogee <rogee@ipao.vip>
86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
# GoChat Docker Compose Quickstart
|
|
|
|
This directory starts a local GoChat stack for manual business validation:
|
|
|
|
- GoChat API on `http://127.0.0.1:3000`
|
|
- PostgreSQL + pgvector
|
|
- Redis
|
|
- Meilisearch
|
|
- Mailhog SMTP/Web UI
|
|
- Optional deterministic seed data
|
|
|
|
It is intended for local/UAT quickstart, not hardened production deployment.
|
|
|
|
## Prerequisites
|
|
|
|
- Docker Engine with Compose v2 (`docker compose version`)
|
|
- Free local ports: `3000`, `5432`, `6379`, `7700`, `1025`, `8025`
|
|
|
|
If those ports conflict, edit `.env` after copying `.env.example`.
|
|
|
|
## Start
|
|
|
|
```bash
|
|
cd deploy/quickstart
|
|
cp .env.example .env
|
|
docker compose up -d --build
|
|
```
|
|
|
|
Wait until GoChat is healthy:
|
|
|
|
```bash
|
|
docker compose ps
|
|
docker compose logs -f gochat
|
|
curl -fsS http://127.0.0.1:3000/health
|
|
```
|
|
|
|
## Seed Demo Data
|
|
|
|
```bash
|
|
docker compose --profile seed run --rm seed
|
|
```
|
|
|
|
Default login after seeding:
|
|
|
|
- Email: `admin@gochat.local`
|
|
- Password: `changeme`
|
|
|
|
Change these values in `.env` before running the seed command if needed.
|
|
|
|
## Optional Captain provider
|
|
|
|
Set `GOCHAT_COPILOT_PROVIDER_CONFIG` and `GOCHAT_COPILOT_CHAT_API_KEY` in the
|
|
ignored `.env` to enable Captain chat and embeddings. The JSON uses the same
|
|
`chat`, `embedding`, `generation`, and `request` contract as the SuperAdmin
|
|
Copilot provider settings API. Set `GOCHAT_COPILOT_EMBEDDING_API_KEY` only when
|
|
`embedding.mode` is `separate`; runtime secrets are not written to the database.
|
|
|
|
Example settings value (the key remains a separate `.env` variable):
|
|
|
|
```json
|
|
{"chat":{"provider":"openai_compatible","base_url":"https://provider.example.com/v1","model":"gpt-5.6-luna"},"embedding":{"mode":"reuse_chat_credentials","provider":"openai_compatible","base_url":"https://provider.example.com/v1","model":"text-embedding-3-small","dimensions":1536},"generation":{"temperature":0.7,"max_tokens":2048},"request":{"timeout_seconds":60,"max_retries":2}}
|
|
```
|
|
|
|
## Useful Commands
|
|
|
|
```bash
|
|
# Follow all logs
|
|
docker compose logs -f
|
|
|
|
# Restart GoChat only
|
|
docker compose restart gochat
|
|
|
|
# Stop without deleting data
|
|
docker compose down
|
|
|
|
# Reset all local data
|
|
docker compose down -v
|
|
```
|
|
|
|
## Notes
|
|
|
|
- GoChat runs migrations automatically on startup with `GOCHAT_DATABASE_RUN_MIGRATIONS=true`.
|
|
- The production image includes `/app/migrations`; GoChat runs them automatically on startup in this quickstart stack.
|
|
- Meilisearch uses the quickstart key from `.env`; change it before sharing this stack.
|
|
- Mailhog Web UI is available at `http://127.0.0.1:8025`.
|