Files
gochat/deploy/quickstart/README.md
T
Rogeeandrogee 60ad320e8d [H-337] Fix Captain provider runtime and knowledge flow (#61)
* 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>
2026-08-20 14:46:01 +08:00

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`.