- openai provider: use .chat() (Chat Completions) instead of the default callable (Responses API), which gateways reject on multi-turn -> 400. - updateAiProviderSettings: assemble settings.ai.provider via jsonb_build_object with ::text-cast bound params + jsonb_typeof self-heal (postgres.js was double-encoding it into an array; the ::text cast avoids 'could not determine data type of parameter'). - chat agent: drop the hard maxOutputTokens cap (truncated complex tool calls); keep a tiny cap only on the test-connection ping. - testConnection + chat stream: surface the real provider error (statusCode+message) to logs and the UI instead of generic masks; never log the API key. - chat UI: typing indicator, incremental streaming render, tool 'running' status, Stop. Also bundled (prior uncommitted ai-chat work): - history 'AI agent' provenance badge; vector RAG (pgvector image + page_embeddings + AI_QUEUE indexer + space-scoped semanticSearch); external MCP servers backend (@ai-sdk/mcp client, SSRF IP-pinning, encrypted headers, admin CRUD/Test); yjs duplicate-instance fix via pnpm patch (single CJS instance server-side).
41 lines
1.0 KiB
YAML
41 lines
1.0 KiB
YAML
services:
|
|
docmost:
|
|
image: ghcr.io/vvzvlad/gitmost:latest
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
environment:
|
|
APP_URL: 'http://localhost:3000'
|
|
APP_SECRET: 'REPLACE_WITH_LONG_SECRET'
|
|
DATABASE_URL: 'postgresql://docmost:STRONG_DB_PASSWORD@db:5432/docmost'
|
|
REDIS_URL: 'redis://redis:6379'
|
|
ports:
|
|
- "3000:3000"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- docmost:/app/data/storage
|
|
|
|
db:
|
|
# pgvector image (same Postgres major as postgres:18) so `CREATE EXTENSION
|
|
# vector` succeeds for the page_embeddings RAG table.
|
|
image: pgvector/pgvector:pg18
|
|
environment:
|
|
POSTGRES_DB: docmost
|
|
POSTGRES_USER: docmost
|
|
POSTGRES_PASSWORD: STRONG_DB_PASSWORD
|
|
restart: unless-stopped
|
|
volumes:
|
|
- db_data:/var/lib/postgresql
|
|
|
|
redis:
|
|
image: redis:8
|
|
command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
volumes:
|
|
docmost:
|
|
db_data:
|
|
redis_data:
|