-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.prod.yml
More file actions
112 lines (108 loc) · 4.18 KB
/
docker-compose.prod.yml
File metadata and controls
112 lines (108 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# ---------- Production ----------
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
ports:
- "100.97.183.107:${WEBUI_PORT}:8080"
- "127.0.0.1:${WEBUI_PORT}:8080"
networks:
- dev_lab
restart: unless-stopped
volumes:
- open-webui:/app/backend/data
environment:
QDRANT_URL: ${QDRANT_URL}
QDRANT_COLLECTION: ${QDRANT_COLLECTION}
ENABLE_FORWARD_USER_INFO_HEADERS: ${ENABLE_FORWARD_USER_INFO_HEADERS}
ENABLE_OPENAI_API: ${ENABLE_OPENAI_API}
OPENAI_API_BASE_URL: ${OPENAI_API_BASE_URL}
OPENAI_API_KEY: ${OPENAI_API_KEY}
RAG_SYSTEM_CONTEXT: ${RAG_SYSTEM_CONTEXT}
AUDIO_STT_ENGINE: ${AUDIO_STT_ENGINE}
AUDIO_STT_OPENAI_API_BASE_URL: ${AUDIO_STT_OPENAI_API_BASE_URL}
AUDIO_STT_MODEL: ${AUDIO_STT_MODEL}
DEFAULT_USER_ROLE: ${DEFAULT_USER_ROLE}
ENABLE_SIGNUP: ${ENABLE_SIGNUP}
ENABLE_LOGIN_FORM: ${ENABLE_LOGIN_FORM}
ENABLE_PASSWORD_AUTH: ${ENABLE_PASSWORD_AUTH}
ENABLE_ADMIN_CHAT_ACCESS: ${ENABLE_ADMIN_CHAT_ACCESS}
ENABLE_FOLLOW_UP_GENERATION: ${ENABLE_FOLLOW_UP_GENERATION}
WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY}
WEBUI_URL: ${WEBUI_URL}
WEBUI_PORT: ${WEBUI_PORT}
ENABLE_OAUTH_SIGNUP: ${ENABLE_OAUTH_SIGNUP}
ENABLE_OAUTH_ID_TOKEN_COOKIE: ${ENABLE_OAUTH_ID_TOKEN_COOKIE}
ENABLE_OAUTH_PERSISTENT_CONFIG: ${ENABLE_OAUTH_PERSISTENT_CONFIG}
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
OAUTH_CLIENT_INFO_ENCRYPTION_KEY: ${OAUTH_CLIENT_INFO_ENCRYPTION_KEY}
OAUTH_MERGE_ACCOUNTS_BY_EMAIL: ${OAUTH_MERGE_ACCOUNTS_BY_EMAIL}
OAUTH_PICTURE_CLAIM: ${OAUTH_PICTURE_CLAIM}
OAUTH_SESSION_TOKEN_ENCRYPTION_KEY: ${OAUTH_SESSION_TOKEN_ENCRYPTION_KEY}
OAUTH_UPDATE_PICTURE_ON_LOGIN: ${OAUTH_UPDATE_PICTURE_ON_LOGIN}
OPENID_PROVIDER_URL: ${OPENID_PROVIDER_URL}
VECTOR_DB: ${VECTOR_DB}
QDRANT_URI: ${QDRANT_URI}
labels:
- "traefik.enable=true"
- "traefik.http.routers.openwebui.rule=Host(`openwebui.trashcollector.dev`)"
- "traefik.http.routers.openwebui.entrypoints=https"
- "traefik.http.routers.openwebui.tls.certresolver=letsencrypt"
- "traefik.http.services.openwebui.loadbalancer.server.port=8080"
- "traefik.docker.network=dev_lab"
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
ports:
- "100.97.183.107:6333:6333"
- "127.0.0.1:6333:6333"
networks:
- dev_lab
volumes:
- llmephant_qdrant:/qdrant/storage
memory-api:
image: ghcr.io/fineyoungcannibals/llmephant-memory-api:latest
container_name: memory-api
environment:
UPSTREAM_OPENAI_BASE: ${UPSTREAM_OPENAI_BASE}
UPSTREAM_OPENAI_API_KEY: ${UPSTREAM_OPENAI_API_KEY}
QDRANT_URL: ${QDRANT_URL}
QDRANT_COLLECTION: ${QDRANT_COLLECTION}
EMBEDDING_MODEL_NAME: ${EMBEDDING_MODEL_NAME}
MEMORY_MODEL_NAME: ${MEMORY_MODEL_NAME}
MEMORY_MIN_CONFIDENCE: ${MEMORY_MIN_CONFIDENCE}
MEMORY_DEDUPE_THRESHOLD: ${MEMORY_DEDUPE_THRESHOLD}
MEMORY_SIMILARITY_THRESHOLD: ${MEMORY_SIMILARITY_THRESHOLD}
MEMORY_TTL_DAYS: ${MEMORY_TTL_DAYS}
ENABLE_MEMORY_EXTRACTION: ${ENABLE_MEMORY_EXTRACTION}
MEMORY_EXTRACT_MAX_TOKENS: ${MEMORY_EXTRACT_MAX_TOKENS}
MEMORY_DISTILL_MAX_TOKENS: ${MEMORY_DISTILL_MAX_TOKENS}
MEMORY_VERIFY_MAX_TOKENS: ${MEMORY_VERIFY_MAX_TOKENS}
MEMORY_REASONING_EFFORT: ${MEMORY_REASONING_EFFORT}
TOOLING_CONFIG_FILE: ${TOOLING_CONFIG_FILE}
MAX_TOOL_ITERATIONS: ${MAX_TOOL_ITERATIONS}
API_HOST: ${API_HOST}
API_PORT: ${API_PORT}
API_HOT_RELOAD: ${API_HOT_RELOAD}
DEFAULT_USER_ID: ${DEFAULT_USER_ID}
LOG_COLORIZE: ${LOG_COLORIZE}
LOG_LEVEL: ${LOG_LEVEL}
MCP_BEARER_TOKEN: ${MCP_BEARER_TOKEN}
restart: unless-stopped
depends_on:
- qdrant
networks:
- dev_lab
command: [ "uvicorn", "llmephant.app:app", "--host", "0.0.0.0", "--port", "8080" ]
volumes:
- ${TOOLING_CONFIG_FILE}:/app/tooling_config.yml:ro
volumes:
llmephant_qdrant:
external: true
open-webui:
external: true
networks:
dev_lab:
external: true