mirror of
https://github.com/Canner/WrenAI.git
synced 2026-08-29 00:03:22 +08:00
b6d593216a
Co-authored-by: Steven <steven.yichieh.lu@email.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
123 lines
3.3 KiB
YAML
123 lines
3.3 KiB
YAML
version: "3"
|
|
|
|
volumes:
|
|
data:
|
|
|
|
networks:
|
|
wren:
|
|
driver: bridge
|
|
|
|
services:
|
|
bootstrap:
|
|
image: ghcr.io/canner/wren-bootstrap:${WREN_BOOTSTRAP_VERSION}
|
|
restart: on-failure
|
|
platform: ${PLATFORM}
|
|
environment:
|
|
DATA_PATH: /app/data
|
|
volumes:
|
|
- data:/app/data
|
|
command: /bin/sh /app/init.sh
|
|
|
|
wren-engine:
|
|
image: ghcr.io/canner/wren-engine:${WREN_ENGINE_VERSION}
|
|
restart: on-failure
|
|
platform: ${PLATFORM}
|
|
expose:
|
|
- ${WREN_ENGINE_PORT}
|
|
- ${WREN_ENGINE_SQL_PORT}
|
|
volumes:
|
|
- data:/usr/src/app/etc
|
|
- ${PROJECT_DIR}/data:/usr/src/app/data
|
|
networks:
|
|
- wren
|
|
depends_on:
|
|
- bootstrap
|
|
|
|
ibis-server:
|
|
image: ghcr.io/canner/wren-engine-ibis:${IBIS_SERVER_VERSION}
|
|
restart: on-failure
|
|
platform: ${PLATFORM}
|
|
expose:
|
|
- ${IBIS_SERVER_PORT}
|
|
environment:
|
|
WREN_ENGINE_ENDPOINT: http://wren-engine:${WREN_ENGINE_PORT}
|
|
volumes:
|
|
- ${LOCAL_STORAGE:-.}:/usr/src/app/data
|
|
networks:
|
|
- wren
|
|
|
|
wren-ai-service:
|
|
image: ghcr.io/canner/wren-ai-service:${WREN_AI_SERVICE_VERSION}
|
|
restart: on-failure
|
|
platform: ${PLATFORM}
|
|
expose:
|
|
- ${WREN_AI_SERVICE_PORT}
|
|
ports:
|
|
- ${AI_SERVICE_FORWARD_PORT}:${WREN_AI_SERVICE_PORT}
|
|
environment:
|
|
# sometimes the console won't show print messages,
|
|
# using PYTHONUNBUFFERED: 1 can fix this
|
|
PYTHONUNBUFFERED: 1
|
|
CONFIG_PATH: /app/config.yaml
|
|
env_file:
|
|
- ${PROJECT_DIR}/.env
|
|
volumes:
|
|
- ${PROJECT_DIR}/config.yaml:/app/config.yaml:ro
|
|
- ${PROJECT_DIR}/data:/app/data:ro
|
|
networks:
|
|
- wren
|
|
depends_on:
|
|
- qdrant
|
|
|
|
qdrant:
|
|
image: qdrant/qdrant:v1.15.0
|
|
restart: on-failure
|
|
expose:
|
|
- 6333
|
|
- 6334
|
|
volumes:
|
|
- data:/qdrant/storage
|
|
networks:
|
|
- wren
|
|
|
|
wren-ui:
|
|
image: ghcr.io/canner/wren-ui:${WREN_UI_VERSION}
|
|
restart: on-failure
|
|
platform: ${PLATFORM}
|
|
environment:
|
|
DB_TYPE: sqlite
|
|
# /app is the working directory in the container
|
|
SQLITE_FILE: /app/data/db.sqlite3
|
|
WREN_ENGINE_ENDPOINT: http://wren-engine:${WREN_ENGINE_PORT}
|
|
WREN_AI_ENDPOINT: http://wren-ai-service:${WREN_AI_SERVICE_PORT}
|
|
IBIS_SERVER_ENDPOINT: http://ibis-server:${IBIS_SERVER_PORT}
|
|
# this is for telemetry to know the model, i think ai-service might be able to provide a endpoint to get the information
|
|
GENERATION_MODEL: ${GENERATION_MODEL}
|
|
# telemetry
|
|
WREN_ENGINE_PORT: ${WREN_ENGINE_PORT}
|
|
WREN_AI_SERVICE_VERSION: ${WREN_AI_SERVICE_VERSION}
|
|
WREN_UI_VERSION: ${WREN_UI_VERSION}
|
|
WREN_ENGINE_VERSION: ${WREN_ENGINE_VERSION}
|
|
USER_UUID: ${USER_UUID}
|
|
POSTHOG_API_KEY: ${POSTHOG_API_KEY}
|
|
POSTHOG_HOST: ${POSTHOG_HOST}
|
|
TELEMETRY_ENABLED: ${TELEMETRY_ENABLED}
|
|
# client side
|
|
NEXT_PUBLIC_USER_UUID: ${USER_UUID}
|
|
NEXT_PUBLIC_POSTHOG_API_KEY: ${POSTHOG_API_KEY}
|
|
NEXT_PUBLIC_POSTHOG_HOST: ${POSTHOG_HOST}
|
|
NEXT_PUBLIC_TELEMETRY_ENABLED: ${TELEMETRY_ENABLED}
|
|
EXPERIMENTAL_ENGINE_RUST_VERSION: ${EXPERIMENTAL_ENGINE_RUST_VERSION}
|
|
# configs
|
|
WREN_PRODUCT_VERSION: ${WREN_PRODUCT_VERSION}
|
|
ports:
|
|
# HOST_PORT is the port you want to expose to the host machine
|
|
- ${HOST_PORT}:3000
|
|
volumes:
|
|
- data:/app/data
|
|
networks:
|
|
- wren
|
|
depends_on:
|
|
- wren-ai-service
|
|
- wren-engine
|