Introduce compose.local-slim.yml and compose.local-full.yml for local builds of OpenReader and compute-worker. Update deployment documentation to describe new compose variants and usage. Adjust package.json scripts to support local-slim and local-full workflows. Rename compose files and update stack names for clarity.
130 lines
3.9 KiB
YAML
130 lines
3.9 KiB
YAML
name: openreader-local-full-build
|
|
|
|
services:
|
|
openreader:
|
|
image: openreader:local
|
|
build:
|
|
context: ../..
|
|
dockerfile: Dockerfile
|
|
# Keep localhost:8333 valid for both app requests and browser-facing presigned URLs.
|
|
network_mode: service:seaweedfs
|
|
depends_on:
|
|
kokoro-tts:
|
|
condition: service_started
|
|
postgres:
|
|
condition: service_healthy
|
|
seaweedfs:
|
|
condition: service_healthy
|
|
environment:
|
|
BASE_URL: ${BASE_URL:-http://localhost:3003}
|
|
AUTH_SECRET: ${AUTH_SECRET:-local-openreader-auth-secret-change-me}
|
|
POSTGRES_URL: postgres://openreader:openreader@postgres:5432/openreader
|
|
COMPUTE_WORKER_URL: http://compute-worker:8081
|
|
COMPUTE_WORKER_TOKEN: ${COMPUTE_WORKER_TOKEN:-local-compute-token}
|
|
USE_EMBEDDED_WEED_MINI: "false"
|
|
S3_ENDPOINT: ${S3_ENDPOINT:-http://localhost:8333} # Used for internal endpoint and public facing presigned URLs.
|
|
S3_BUCKET: ${S3_BUCKET:-openreader-documents}
|
|
S3_REGION: ${S3_REGION:-us-east-1}
|
|
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-devkey}
|
|
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-devsecret}
|
|
S3_FORCE_PATH_STYLE: "true"
|
|
S3_PREFIX: ${S3_PREFIX:-openreader}
|
|
RUNTIME_SEED_JSON: |-
|
|
{
|
|
"version": 1,
|
|
"runtimeConfig": {
|
|
"defaultTtsProvider": "kokoro"
|
|
},
|
|
"providers": [
|
|
{
|
|
"slug": "kokoro",
|
|
"displayName": "Kokoro",
|
|
"providerType": "custom-openai",
|
|
"baseUrl": "http://kokoro-tts:8880/v1",
|
|
"defaultModel": "kokoro",
|
|
"enabled": true
|
|
}
|
|
]
|
|
}
|
|
volumes:
|
|
- openreader-docstore:/app/docstore
|
|
|
|
kokoro-tts:
|
|
image: ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.4
|
|
environment:
|
|
ONNX_NUM_THREADS: 8
|
|
ONNX_INTER_OP_THREADS: 4
|
|
ONNX_EXECUTION_MODE: parallel
|
|
ONNX_OPTIMIZATION_LEVEL: all
|
|
ONNX_MEMORY_PATTERN: "true"
|
|
ONNX_ARENA_EXTEND_STRATEGY: kNextPowerOfTwo
|
|
API_LOG_LEVEL: DEBUG
|
|
ports:
|
|
- "8880:8880"
|
|
|
|
seaweedfs:
|
|
image: chrislusf/seaweedfs:4.18
|
|
command: ["mini", "-dir=/data"]
|
|
environment:
|
|
AWS_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-devkey}
|
|
AWS_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-devsecret}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:9333/cluster/status >/dev/null"]
|
|
interval: 2s
|
|
timeout: 2s
|
|
retries: 30
|
|
ports:
|
|
- "3003:3003"
|
|
- "8333:8333"
|
|
volumes:
|
|
- seaweedfs-data:/data
|
|
|
|
nats:
|
|
image: nats:2.14-alpine
|
|
command: ["-js", "-sd", "/data"]
|
|
volumes:
|
|
- nats-data:/data
|
|
|
|
postgres:
|
|
image: postgres:17-alpine
|
|
environment:
|
|
POSTGRES_USER: openreader
|
|
POSTGRES_PASSWORD: openreader
|
|
POSTGRES_DB: openreader
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U openreader -d openreader"]
|
|
interval: 2s
|
|
timeout: 2s
|
|
retries: 30
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
|
|
compute-worker:
|
|
image: openreader-compute-worker:local
|
|
build:
|
|
context: ../..
|
|
dockerfile: packages/compute-worker/Dockerfile
|
|
depends_on:
|
|
nats:
|
|
condition: service_started
|
|
seaweedfs:
|
|
condition: service_healthy
|
|
environment:
|
|
NATS_URL: nats://nats:4222
|
|
COMPUTE_WORKER_HOST: 0.0.0.0
|
|
PORT: 8081
|
|
COMPUTE_WORKER_TOKEN: ${COMPUTE_WORKER_TOKEN:-local-compute-token}
|
|
S3_ENDPOINT: http://seaweedfs:8333
|
|
S3_BUCKET: ${S3_BUCKET:-openreader-documents}
|
|
S3_REGION: ${S3_REGION:-us-east-1}
|
|
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-devkey}
|
|
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-devsecret}
|
|
S3_FORCE_PATH_STYLE: "true"
|
|
S3_PREFIX: ${S3_PREFIX:-openreader}
|
|
COMPUTE_PREWARM_MODELS: ${COMPUTE_PREWARM_MODELS:-false}
|
|
|
|
volumes:
|
|
openreader-docstore:
|
|
seaweedfs-data:
|
|
nats-data:
|
|
postgres-data:
|