* 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>
2.4 KiB
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
cd deploy/quickstart
cp .env.example .env
docker compose up -d --build
Wait until GoChat is healthy:
docker compose ps
docker compose logs -f gochat
curl -fsS http://127.0.0.1:3000/health
Seed Demo Data
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):
{"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
# 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.