@lobehub/chat 1.127.2 → 1.127.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/changelog/v1.json +9 -0
- package/docker-compose/local/docker-compose.yml +83 -1
- package/docker-compose/local/grafana/.env.example +42 -0
- package/docker-compose/local/grafana/.env.zh-CN.example +42 -0
- package/docker-compose/local/grafana/docker-compose.yml +251 -0
- package/docker-compose/local/grafana/grafana/dashboards/.gitkeep +0 -0
- package/docker-compose/local/grafana/grafana/datasources/datasource-prometheus.yaml +15 -0
- package/docker-compose/local/grafana/grafana/datasources/datasource-tempo.yaml +16 -0
- package/docker-compose/local/grafana/otel-collector/collector-config.yaml +45 -0
- package/docker-compose/local/grafana/prometheus/prometheus.yml +11 -0
- package/docker-compose/local/grafana/tempo/tempo.yaml +58 -0
- package/docker-compose/production/grafana/.env.example +44 -0
- package/docker-compose/production/grafana/.env.zh-CN.example +42 -0
- package/docker-compose/production/grafana/docker-compose.yml +249 -0
- package/docker-compose/production/grafana/grafana/dashboards/.gitkeep +0 -0
- package/docker-compose/production/grafana/grafana/datasources/datasource-prometheus.yaml +15 -0
- package/docker-compose/production/grafana/grafana/datasources/datasource-tempo.yaml +20 -0
- package/docker-compose/production/grafana/otel-collector/collector-config.yaml +45 -0
- package/docker-compose/production/grafana/prometheus/prometheus.yml +11 -0
- package/docker-compose/production/grafana/tempo/tempo.yaml +58 -0
- package/docker-compose.development.yml +44 -0
- package/docs/self-hosting/advanced/observability/grafana.mdx +71 -0
- package/docs/self-hosting/advanced/observability/grafana.zh-CN.mdx +70 -0
- package/package.json +1 -1
- package/packages/model-runtime/package.json +1 -1
- package/packages/model-runtime/src/const/modelProvider.ts +64 -0
- package/packages/model-runtime/src/const/type.test.ts +9 -0
- package/packages/model-runtime/src/{BaseAI.ts → core/BaseAI.ts} +3 -4
- package/packages/model-runtime/src/{ModelRuntime.test.ts → core/ModelRuntime.test.ts} +3 -3
- package/packages/model-runtime/src/{ModelRuntime.ts → core/ModelRuntime.ts} +9 -8
- package/packages/model-runtime/src/core/RouterRuntime/baseRuntimeMap.ts +17 -0
- package/packages/model-runtime/src/{RouterRuntime → core/RouterRuntime}/createRuntime.ts +7 -7
- package/packages/model-runtime/src/{utils → core}/openaiCompatibleFactory/createImage.ts +3 -3
- package/packages/model-runtime/src/{utils → core}/openaiCompatibleFactory/index.test.ts +2 -2
- package/packages/model-runtime/src/{utils → core}/openaiCompatibleFactory/index.ts +9 -9
- package/packages/model-runtime/src/{utils → core}/streams/bedrock/claude.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/bedrock/llama.test.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/bedrock/llama.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/google-ai.test.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/google-ai.ts +1 -1
- package/packages/model-runtime/src/core/streams/model.test.ts +268 -0
- package/packages/model-runtime/src/{utils → core}/streams/ollama.test.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/ollama.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/openai/openai.test.ts +3 -4
- package/packages/model-runtime/src/{utils → core}/streams/openai/openai.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/openai/responsesStream.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/protocol.ts +2 -2
- package/packages/model-runtime/src/{utils → core}/streams/qwen.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/spark.ts +1 -1
- package/packages/model-runtime/src/core/streams/utils.test.ts +164 -0
- package/packages/model-runtime/src/{utils → core}/streams/vertex-ai.test.ts +1 -1
- package/packages/model-runtime/src/{utils → core}/streams/vertex-ai.ts +1 -1
- package/packages/model-runtime/src/index.ts +28 -27
- package/packages/model-runtime/src/providerTestUtils.ts +1 -1
- package/packages/model-runtime/src/{ai21 → providers/ai21}/index.test.ts +1 -1
- package/packages/model-runtime/src/{ai21 → providers/ai21}/index.ts +2 -2
- package/packages/model-runtime/src/{ai302 → providers/ai302}/index.ts +4 -4
- package/packages/model-runtime/src/{ai360 → providers/ai360}/index.test.ts +1 -1
- package/packages/model-runtime/src/{ai360 → providers/ai360}/index.ts +2 -2
- package/packages/model-runtime/src/{aihubmix → providers/aihubmix}/index.ts +5 -5
- package/packages/model-runtime/src/{akashchat → providers/akashchat}/index.test.ts +1 -1
- package/packages/model-runtime/src/{akashchat → providers/akashchat}/index.ts +5 -4
- package/packages/model-runtime/src/{anthropic → providers/anthropic}/index.test.ts +2 -2
- package/packages/model-runtime/src/{anthropic → providers/anthropic}/index.ts +10 -10
- package/packages/model-runtime/src/{azureOpenai → providers/azureOpenai}/index.test.ts +4 -4
- package/packages/model-runtime/src/{azureOpenai → providers/azureOpenai}/index.ts +11 -11
- package/packages/model-runtime/src/{azureai → providers/azureai}/index.ts +9 -9
- package/packages/model-runtime/src/{baichuan → providers/baichuan}/index.test.ts +1 -1
- package/packages/model-runtime/src/{baichuan → providers/baichuan}/index.ts +2 -2
- package/packages/model-runtime/src/{bedrock → providers/bedrock}/index.test.ts +1 -1
- package/packages/model-runtime/src/{bedrock → providers/bedrock}/index.ts +12 -12
- package/packages/model-runtime/src/{bfl → providers/bfl}/createImage.test.ts +25 -25
- package/packages/model-runtime/src/{bfl → providers/bfl}/createImage.ts +6 -6
- package/packages/model-runtime/src/{bfl → providers/bfl}/index.test.ts +1 -1
- package/packages/model-runtime/src/{bfl → providers/bfl}/index.ts +4 -4
- package/packages/model-runtime/src/{cloudflare → providers/cloudflare}/index.test.ts +1 -1
- package/packages/model-runtime/src/{cloudflare → providers/cloudflare}/index.ts +8 -8
- package/packages/model-runtime/src/{cohere → providers/cohere}/index.test.ts +1 -1
- package/packages/model-runtime/src/{cohere → providers/cohere}/index.ts +2 -2
- package/packages/model-runtime/src/providers/cometapi/index.test.ts +12 -0
- package/packages/model-runtime/src/{cometapi → providers/cometapi}/index.ts +3 -3
- package/packages/model-runtime/src/{deepseek → providers/deepseek}/index.test.ts +1 -1
- package/packages/model-runtime/src/{deepseek → providers/deepseek}/index.ts +3 -5
- package/packages/model-runtime/src/{fal → providers/fal}/index.test.ts +1 -1
- package/packages/model-runtime/src/{fal → providers/fal}/index.ts +4 -4
- package/packages/model-runtime/src/{fireworksai → providers/fireworksai}/index.test.ts +1 -1
- package/packages/model-runtime/src/{fireworksai → providers/fireworksai}/index.ts +2 -2
- package/packages/model-runtime/src/{giteeai → providers/giteeai}/index.test.ts +1 -1
- package/packages/model-runtime/src/{giteeai → providers/giteeai}/index.ts +3 -3
- package/packages/model-runtime/src/{github → providers/github}/index.test.ts +1 -1
- package/packages/model-runtime/src/{github → providers/github}/index.ts +5 -5
- package/packages/model-runtime/src/{google → providers/google}/createImage.test.ts +2 -2
- package/packages/model-runtime/src/{google → providers/google}/createImage.ts +5 -5
- package/packages/model-runtime/src/{google → providers/google}/index.test.ts +2 -2
- package/packages/model-runtime/src/{google → providers/google}/index.ts +13 -13
- package/packages/model-runtime/src/{groq → providers/groq}/index.test.ts +1 -1
- package/packages/model-runtime/src/{groq → providers/groq}/index.ts +3 -3
- package/packages/model-runtime/src/{higress → providers/higress}/index.ts +6 -5
- package/packages/model-runtime/src/{huggingface → providers/huggingface}/index.ts +4 -4
- package/packages/model-runtime/src/{hunyuan → providers/hunyuan}/index.test.ts +1 -1
- package/packages/model-runtime/src/{hunyuan → providers/hunyuan}/index.ts +2 -2
- package/packages/model-runtime/src/{infiniai → providers/infiniai}/index.ts +3 -3
- package/packages/model-runtime/src/{internlm → providers/internlm}/index.test.ts +1 -1
- package/packages/model-runtime/src/{internlm → providers/internlm}/index.ts +2 -2
- package/packages/model-runtime/src/{jina → providers/jina}/index.test.ts +1 -1
- package/packages/model-runtime/src/{jina → providers/jina}/index.ts +2 -2
- package/packages/model-runtime/src/{lmstudio → providers/lmstudio}/index.test.ts +1 -1
- package/packages/model-runtime/src/{lmstudio → providers/lmstudio}/index.ts +2 -2
- package/packages/model-runtime/src/{minimax → providers/minimax}/createImage.test.ts +2 -2
- package/packages/model-runtime/src/{minimax → providers/minimax}/createImage.ts +3 -3
- package/packages/model-runtime/src/{minimax → providers/minimax}/index.test.ts +1 -1
- package/packages/model-runtime/src/{minimax → providers/minimax}/index.ts +2 -2
- package/packages/model-runtime/src/{mistral → providers/mistral}/index.test.ts +1 -1
- package/packages/model-runtime/src/{mistral → providers/mistral}/index.ts +2 -2
- package/packages/model-runtime/src/{modelscope → providers/modelscope}/index.test.ts +1 -1
- package/packages/model-runtime/src/{modelscope → providers/modelscope}/index.ts +3 -3
- package/packages/model-runtime/src/{moonshot → providers/moonshot}/index.test.ts +1 -1
- package/packages/model-runtime/src/{moonshot → providers/moonshot}/index.ts +3 -3
- package/packages/model-runtime/src/{nebius → providers/nebius}/index.test.ts +1 -1
- package/packages/model-runtime/src/{nebius → providers/nebius}/index.ts +3 -3
- package/packages/model-runtime/src/{newapi → providers/newapi}/index.test.ts +4 -4
- package/packages/model-runtime/src/{newapi → providers/newapi}/index.ts +5 -5
- package/packages/model-runtime/src/{novita → providers/novita}/index.test.ts +1 -1
- package/packages/model-runtime/src/{novita → providers/novita}/index.ts +3 -3
- package/packages/model-runtime/src/{nvidia → providers/nvidia}/index.test.ts +1 -1
- package/packages/model-runtime/src/{nvidia → providers/nvidia}/index.ts +3 -3
- package/packages/model-runtime/src/{ollama → providers/ollama}/index.test.ts +3 -3
- package/packages/model-runtime/src/{ollama → providers/ollama}/index.ts +11 -10
- package/packages/model-runtime/src/{openai → providers/openai}/index.test.ts +1 -1
- package/packages/model-runtime/src/{openai → providers/openai}/index.ts +6 -5
- package/packages/model-runtime/src/{openrouter → providers/openrouter}/index.test.ts +1 -1
- package/packages/model-runtime/src/{openrouter → providers/openrouter}/index.ts +3 -3
- package/packages/model-runtime/src/{perplexity → providers/perplexity}/index.test.ts +1 -1
- package/packages/model-runtime/src/{perplexity → providers/perplexity}/index.ts +2 -2
- package/packages/model-runtime/src/{ppio → providers/ppio}/index.test.ts +1 -1
- package/packages/model-runtime/src/{ppio → providers/ppio}/index.ts +2 -2
- package/packages/model-runtime/src/{qiniu → providers/qiniu}/index.test.ts +2 -2
- package/packages/model-runtime/src/{qiniu → providers/qiniu}/index.ts +3 -3
- package/packages/model-runtime/src/{qwen → providers/qwen}/createImage.test.ts +2 -2
- package/packages/model-runtime/src/{qwen → providers/qwen}/createImage.ts +4 -4
- package/packages/model-runtime/src/{qwen → providers/qwen}/index.test.ts +1 -1
- package/packages/model-runtime/src/{qwen → providers/qwen}/index.ts +4 -4
- package/packages/model-runtime/src/{sambanova → providers/sambanova}/index.test.ts +1 -1
- package/packages/model-runtime/src/{sambanova → providers/sambanova}/index.ts +2 -2
- package/packages/model-runtime/src/{search1api → providers/search1api}/index.test.ts +1 -1
- package/packages/model-runtime/src/{search1api → providers/search1api}/index.ts +2 -2
- package/packages/model-runtime/src/{sensenova → providers/sensenova}/index.test.ts +1 -1
- package/packages/model-runtime/src/{sensenova → providers/sensenova}/index.ts +3 -3
- package/packages/model-runtime/src/{siliconcloud → providers/siliconcloud}/index.ts +4 -4
- package/packages/model-runtime/src/{spark → providers/spark}/index.test.ts +1 -1
- package/packages/model-runtime/src/{spark → providers/spark}/index.ts +3 -3
- package/packages/model-runtime/src/{stepfun → providers/stepfun}/index.test.ts +1 -1
- package/packages/model-runtime/src/{stepfun → providers/stepfun}/index.ts +2 -2
- package/packages/model-runtime/src/{taichu → providers/taichu}/index.test.ts +2 -2
- package/packages/model-runtime/src/{taichu → providers/taichu}/index.ts +2 -2
- package/packages/model-runtime/src/{tencentcloud → providers/tencentcloud}/index.test.ts +1 -1
- package/packages/model-runtime/src/{tencentcloud → providers/tencentcloud}/index.ts +2 -2
- package/packages/model-runtime/src/{togetherai → providers/togetherai}/index.test.ts +1 -1
- package/packages/model-runtime/src/{togetherai → providers/togetherai}/index.ts +2 -2
- package/packages/model-runtime/src/{upstage → providers/upstage}/index.test.ts +1 -1
- package/packages/model-runtime/src/{upstage → providers/upstage}/index.ts +2 -2
- package/packages/model-runtime/src/{v0 → providers/v0}/index.ts +3 -3
- package/packages/model-runtime/src/providers/vertexai/index.test.ts +54 -0
- package/packages/model-runtime/src/{vertexai → providers/vertexai}/index.ts +2 -2
- package/packages/model-runtime/src/providers/vllm/index.test.ts +12 -0
- package/packages/model-runtime/src/{vllm → providers/vllm}/index.ts +2 -2
- package/packages/model-runtime/src/{volcengine → providers/volcengine}/createImage.test.ts +2 -2
- package/packages/model-runtime/src/{volcengine → providers/volcengine}/createImage.ts +2 -2
- package/packages/model-runtime/src/{volcengine → providers/volcengine}/index.ts +3 -3
- package/packages/model-runtime/src/{wenxin → providers/wenxin}/index.test.ts +1 -1
- package/packages/model-runtime/src/{wenxin → providers/wenxin}/index.ts +2 -2
- package/packages/model-runtime/src/{xai → providers/xai}/index.test.ts +1 -1
- package/packages/model-runtime/src/{xai → providers/xai}/index.ts +3 -3
- package/packages/model-runtime/src/providers/xinference/index.test.ts +12 -0
- package/packages/model-runtime/src/{xinference → providers/xinference}/index.ts +2 -2
- package/packages/model-runtime/src/{zeroone → providers/zeroone}/index.test.ts +1 -1
- package/packages/model-runtime/src/{zeroone → providers/zeroone}/index.ts +3 -3
- package/packages/model-runtime/src/{zhipu → providers/zhipu}/index.test.ts +1 -1
- package/packages/model-runtime/src/{zhipu → providers/zhipu}/index.ts +5 -5
- package/packages/model-runtime/src/runtimeMap.ts +61 -61
- package/packages/model-runtime/src/types/index.ts +1 -0
- package/packages/model-runtime/src/types/type.ts +1 -65
- package/packages/model-runtime/src/utils/createError.test.ts +95 -0
- package/packages/model-runtime/src/utils/handleOpenAIError.test.ts +149 -0
- package/packages/model-runtime/src/utils/postProcessModelList.test.ts +190 -0
- package/packages/model-runtime/src/utils/response.test.ts +91 -0
- package/packages/types/src/fetch.ts +1 -1
- package/packages/types/src/message/base.ts +2 -3
- package/packages/types/src/user/settings/index.ts +1 -2
- package/packages/types/src/user/settings/modelProvider.ts +4 -3
- package/src/app/[variants]/(main)/settings/llm/ProviderList/HuggingFace/index.tsx +1 -1
- package/src/server/modules/ModelRuntime/index.test.ts +2 -4
- package/src/services/__tests__/chat.test.ts +13 -8
- package/src/store/user/slices/settings/initialState.ts +2 -3
- package/tsconfig.json +0 -2
- package/vitest.config.mts +0 -1
- package/packages/model-runtime/src/RouterRuntime/baseRuntimeMap.ts +0 -17
- /package/packages/model-runtime/src/{RouterRuntime → core/RouterRuntime}/createRuntime.test.ts +0 -0
- /package/packages/model-runtime/src/{RouterRuntime → core/RouterRuntime}/index.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/__snapshots__/protocol.test.ts.snap +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/anthropic.test.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/anthropic.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/bedrock/common.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/bedrock/index.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/index.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/model.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/openai/index.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/openai/responsesStream.test.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/protocol.test.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/qwen.test.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/spark.test.ts +0 -0
- /package/packages/model-runtime/src/{utils → core}/streams/utils.ts +0 -0
- /package/packages/model-runtime/src/{anthropic → providers/anthropic}/handleAnthropicError.ts +0 -0
- /package/packages/model-runtime/src/{bfl → providers/bfl}/types.ts +0 -0
- /package/packages/model-runtime/src/{huggingface → providers/huggingface}/index.test.ts +0 -0
- /package/packages/model-runtime/src/{novita → providers/novita}/__snapshots__/index.test.ts.snap +0 -0
- /package/packages/model-runtime/src/{novita → providers/novita}/fixtures/models.json +0 -0
- /package/packages/model-runtime/src/{novita → providers/novita}/type.ts +0 -0
- /package/packages/model-runtime/src/{ollama → providers/ollama}/type.ts +0 -0
- /package/packages/model-runtime/src/{openai → providers/openai}/__snapshots__/index.test.ts.snap +0 -0
- /package/packages/model-runtime/src/{openai → providers/openai}/fixtures/openai-models.json +0 -0
- /package/packages/model-runtime/src/{openrouter → providers/openrouter}/fixtures/frontendModels.json +0 -0
- /package/packages/model-runtime/src/{openrouter → providers/openrouter}/fixtures/models.json +0 -0
- /package/packages/model-runtime/src/{openrouter → providers/openrouter}/type.ts +0 -0
- /package/packages/model-runtime/src/{ppio → providers/ppio}/__snapshots__/index.test.ts.snap +0 -0
- /package/packages/model-runtime/src/{ppio → providers/ppio}/fixtures/models.json +0 -0
- /package/packages/model-runtime/src/{ppio → providers/ppio}/type.ts +0 -0
- /package/packages/model-runtime/src/{togetherai → providers/togetherai}/fixtures/models.json +0 -0
- /package/packages/model-runtime/src/{togetherai → providers/togetherai}/type.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
### [Version 1.127.3](https://github.com/lobehub/lobe-chat/compare/v1.127.2...v1.127.3)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2025-09-11**</sup>
|
|
8
|
+
|
|
9
|
+
#### ♻ Code Refactoring
|
|
10
|
+
|
|
11
|
+
- **misc**: Refactor model runtime folder structure and add more tests.
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
<details>
|
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
17
|
+
|
|
18
|
+
#### Code refactoring
|
|
19
|
+
|
|
20
|
+
- **misc**: Refactor model runtime folder structure and add more tests, closes [#9210](https://github.com/lobehub/lobe-chat/issues/9210) ([7fe17e4](https://github.com/lobehub/lobe-chat/commit/7fe17e4))
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
<div align="right">
|
|
25
|
+
|
|
26
|
+
[](#readme-top)
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
5
30
|
### [Version 1.127.2](https://github.com/lobehub/lobe-chat/compare/v1.127.1...v1.127.2)
|
|
6
31
|
|
|
7
32
|
<sup>Released on **2025-09-11**</sup>
|
package/changelog/v1.json
CHANGED
|
@@ -9,6 +9,9 @@ services:
|
|
|
9
9
|
- '9001:9001' # MinIO Console
|
|
10
10
|
- '${CASDOOR_PORT}:${CASDOOR_PORT}' # Casdoor
|
|
11
11
|
- '${LOBE_PORT}:3210' # LobeChat
|
|
12
|
+
- '3000:3000' # Grafana
|
|
13
|
+
- '4318:4318' # otel-collector HTTP
|
|
14
|
+
- '4317:4317' # otel-collector gRPC
|
|
12
15
|
command: tail -f /dev/null
|
|
13
16
|
networks:
|
|
14
17
|
- lobe-network
|
|
@@ -58,7 +61,7 @@ services:
|
|
|
58
61
|
wait \$MINIO_PID
|
|
59
62
|
"
|
|
60
63
|
|
|
61
|
-
# version lock ref: https://github.com/lobehub/lobe-chat/pull/7331
|
|
64
|
+
# version lock ref: https://github.com/lobehub/lobe-chat/pull/7331
|
|
62
65
|
casdoor:
|
|
63
66
|
image: casbin/casdoor:v2.13.0
|
|
64
67
|
container_name: lobe-casdoor
|
|
@@ -162,11 +165,90 @@ services:
|
|
|
162
165
|
wait \$LOBE_PID
|
|
163
166
|
"
|
|
164
167
|
|
|
168
|
+
grafana:
|
|
169
|
+
profiles:
|
|
170
|
+
- otel
|
|
171
|
+
image: grafana/grafana:12.2.0-17419259409
|
|
172
|
+
container_name: lobe-grafana
|
|
173
|
+
network_mode: 'service:network-service'
|
|
174
|
+
restart: always
|
|
175
|
+
environment:
|
|
176
|
+
- GF_AUTH_ANONYMOUS_ENABLED=true
|
|
177
|
+
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
|
178
|
+
- GF_AUTH_DISABLE_LOGIN_FORM=true
|
|
179
|
+
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
|
|
180
|
+
volumes:
|
|
181
|
+
- grafana_data:/var/lib/grafana
|
|
182
|
+
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards
|
|
183
|
+
- ./grafana/datasources:/etc/grafana/provisioning/datasources
|
|
184
|
+
depends_on:
|
|
185
|
+
- tempo
|
|
186
|
+
- prometheus
|
|
187
|
+
|
|
188
|
+
tempo:
|
|
189
|
+
profiles:
|
|
190
|
+
- otel
|
|
191
|
+
image: grafana/tempo:latest
|
|
192
|
+
container_name: lobe-tempo
|
|
193
|
+
network_mode: 'service:network-service'
|
|
194
|
+
restart: always
|
|
195
|
+
volumes:
|
|
196
|
+
- ./tempo/tempo.yaml:/etc/tempo.yaml
|
|
197
|
+
- tempo_data:/var/tempo
|
|
198
|
+
command: ['-config.file=/etc/tempo.yaml']
|
|
199
|
+
|
|
200
|
+
prometheus:
|
|
201
|
+
profiles:
|
|
202
|
+
- otel
|
|
203
|
+
image: prom/prometheus
|
|
204
|
+
container_name: lobe-prometheus
|
|
205
|
+
network_mode: 'service:network-service'
|
|
206
|
+
restart: always
|
|
207
|
+
volumes:
|
|
208
|
+
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
209
|
+
- prometheus_data:/prometheus
|
|
210
|
+
command:
|
|
211
|
+
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
212
|
+
- '--web.enable-otlp-receiver'
|
|
213
|
+
- '--web.enable-remote-write-receiver'
|
|
214
|
+
- '--enable-feature=exemplar-storage'
|
|
215
|
+
|
|
216
|
+
otel-collector:
|
|
217
|
+
profiles:
|
|
218
|
+
- otel
|
|
219
|
+
image: otel/opentelemetry-collector
|
|
220
|
+
container_name: lobe-otel-collector
|
|
221
|
+
network_mode: 'service:network-service'
|
|
222
|
+
restart: always
|
|
223
|
+
volumes:
|
|
224
|
+
- ./otel-collector/collector-config.yaml:/etc/otelcol/config.yaml
|
|
225
|
+
command: ['--config', '/etc/otelcol/config.yaml']
|
|
226
|
+
depends_on:
|
|
227
|
+
- tempo
|
|
228
|
+
- prometheus
|
|
229
|
+
|
|
230
|
+
otel-tracing-test:
|
|
231
|
+
profiles:
|
|
232
|
+
- otel-test
|
|
233
|
+
image: ghcr.io/grafana/xk6-client-tracing:v0.0.7
|
|
234
|
+
container_name: lobe-otel-tracing-test
|
|
235
|
+
network_mode: 'service:network-service'
|
|
236
|
+
restart: always
|
|
237
|
+
environment:
|
|
238
|
+
- ENDPOINT=127.0.0.1:4317
|
|
239
|
+
|
|
165
240
|
volumes:
|
|
166
241
|
data:
|
|
167
242
|
driver: local
|
|
168
243
|
s3_data:
|
|
169
244
|
driver: local
|
|
245
|
+
grafana_data:
|
|
246
|
+
driver: local
|
|
247
|
+
tempo_data:
|
|
248
|
+
driver: local
|
|
249
|
+
prometheus_data:
|
|
250
|
+
driver: local
|
|
251
|
+
|
|
170
252
|
|
|
171
253
|
networks:
|
|
172
254
|
lobe-network:
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Proxy, if you need it
|
|
2
|
+
# HTTP_PROXY=http://localhost:7890
|
|
3
|
+
# HTTPS_PROXY=http://localhost:7890
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Other environment variables, as needed. You can refer to the environment variables configuration for the client version, making sure not to have ACCESS_CODE.
|
|
7
|
+
# OPENAI_API_KEY=sk-xxxx
|
|
8
|
+
# OPENAI_PROXY_URL=https://api.openai.com/v1
|
|
9
|
+
# OPENAI_MODEL_LIST=...
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# ===========================
|
|
13
|
+
# ====== Preset config ======
|
|
14
|
+
# ===========================
|
|
15
|
+
# if no special requirements, no need to change
|
|
16
|
+
LOBE_PORT=3210
|
|
17
|
+
CASDOOR_PORT=8000
|
|
18
|
+
MINIO_PORT=9000
|
|
19
|
+
APP_URL=http://localhost:3210
|
|
20
|
+
AUTH_URL=http://localhost:3210/api/auth
|
|
21
|
+
|
|
22
|
+
# Postgres related, which are the necessary environment variables for DB
|
|
23
|
+
LOBE_DB_NAME=lobechat
|
|
24
|
+
POSTGRES_PASSWORD=uWNZugjBqixf8dxC
|
|
25
|
+
|
|
26
|
+
AUTH_CASDOOR_ISSUER=http://localhost:8000
|
|
27
|
+
# Casdoor secret
|
|
28
|
+
AUTH_CASDOOR_ID=a387a4892ee19b1a2249
|
|
29
|
+
AUTH_CASDOOR_SECRET=dbf205949d704de81b0b5b3603174e23fbecc354
|
|
30
|
+
CASDOOR_WEBHOOK_SECRET=casdoor-secret
|
|
31
|
+
|
|
32
|
+
# MinIO S3 configuration
|
|
33
|
+
MINIO_ROOT_USER=admin
|
|
34
|
+
MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD
|
|
35
|
+
|
|
36
|
+
# Configure the bucket information of MinIO
|
|
37
|
+
S3_PUBLIC_DOMAIN=http://localhost:9000
|
|
38
|
+
S3_ENDPOINT=http://localhost:9000
|
|
39
|
+
MINIO_LOBE_BUCKET=lobe
|
|
40
|
+
|
|
41
|
+
# Configure for casdoor
|
|
42
|
+
origin=http://localhost:8000
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Proxy,如果你需要的话(比如你使用 GitHub 作为鉴权服务提供商)
|
|
2
|
+
# HTTP_PROXY=http://localhost:7890
|
|
3
|
+
# HTTPS_PROXY=http://localhost:7890
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# 其他环境变量,视需求而定,可以参照客户端版本的环境变量配置,注意不要有 ACCESS_CODE
|
|
7
|
+
# OPENAI_API_KEY=sk-xxxx
|
|
8
|
+
# OPENAI_PROXY_URL=https://api.openai.com/v1
|
|
9
|
+
# OPENAI_MODEL_LIST=...
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# ===================
|
|
13
|
+
# ===== 预设配置 =====
|
|
14
|
+
# ===================
|
|
15
|
+
# 如没有特殊需要不用更改
|
|
16
|
+
LOBE_PORT=3210
|
|
17
|
+
CASDOOR_PORT=8000
|
|
18
|
+
MINIO_PORT=9000
|
|
19
|
+
APP_URL=http://localhost:3210
|
|
20
|
+
AUTH_URL=http://localhost:3210/api/auth
|
|
21
|
+
|
|
22
|
+
# Postgres 相关,也即 DB 必须的环境变量
|
|
23
|
+
LOBE_DB_NAME=lobechat
|
|
24
|
+
POSTGRES_PASSWORD=uWNZugjBqixf8dxC
|
|
25
|
+
|
|
26
|
+
AUTH_CASDOOR_ISSUER=http://localhost:8000
|
|
27
|
+
# Casdoor secret
|
|
28
|
+
AUTH_CASDOOR_ID=a387a4892ee19b1a2249
|
|
29
|
+
AUTH_CASDOOR_SECRET=dbf205949d704de81b0b5b3603174e23fbecc354
|
|
30
|
+
CASDOOR_WEBHOOK_SECRET=casdoor-secret
|
|
31
|
+
|
|
32
|
+
# MinIO S3 配置
|
|
33
|
+
MINIO_ROOT_USER=admin
|
|
34
|
+
MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD
|
|
35
|
+
|
|
36
|
+
# 在下方配置 minio 中添加的桶
|
|
37
|
+
S3_PUBLIC_DOMAIN=http://localhost:9000
|
|
38
|
+
S3_ENDPOINT=http://localhost:9000
|
|
39
|
+
MINIO_LOBE_BUCKET=lobe
|
|
40
|
+
|
|
41
|
+
# 为 casdoor 配置
|
|
42
|
+
origin=http://localhost:8000
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
name: lobe-chat-database
|
|
2
|
+
services:
|
|
3
|
+
network-service:
|
|
4
|
+
image: alpine
|
|
5
|
+
container_name: lobe-network
|
|
6
|
+
restart: always
|
|
7
|
+
ports:
|
|
8
|
+
- '${MINIO_PORT}:${MINIO_PORT}' # MinIO API
|
|
9
|
+
- '9001:9001' # MinIO Console
|
|
10
|
+
- '${CASDOOR_PORT}:${CASDOOR_PORT}' # Casdoor
|
|
11
|
+
- '${LOBE_PORT}:3210' # LobeChat
|
|
12
|
+
- '3000:3000' # Grafana
|
|
13
|
+
- '4318:4318' # otel-collector HTTP
|
|
14
|
+
- '4317:4317' # otel-collector gRPC
|
|
15
|
+
command: tail -f /dev/null
|
|
16
|
+
networks:
|
|
17
|
+
- lobe-network
|
|
18
|
+
|
|
19
|
+
postgresql:
|
|
20
|
+
image: pgvector/pgvector:pg17
|
|
21
|
+
container_name: lobe-postgres
|
|
22
|
+
ports:
|
|
23
|
+
- '5432:5432'
|
|
24
|
+
volumes:
|
|
25
|
+
- './data:/var/lib/postgresql/data'
|
|
26
|
+
environment:
|
|
27
|
+
- 'POSTGRES_DB=${LOBE_DB_NAME}'
|
|
28
|
+
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}'
|
|
29
|
+
healthcheck:
|
|
30
|
+
test: ['CMD-SHELL', 'pg_isready -U postgres']
|
|
31
|
+
interval: 5s
|
|
32
|
+
timeout: 5s
|
|
33
|
+
retries: 5
|
|
34
|
+
restart: always
|
|
35
|
+
networks:
|
|
36
|
+
- lobe-network
|
|
37
|
+
|
|
38
|
+
minio:
|
|
39
|
+
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
|
|
40
|
+
container_name: lobe-minio
|
|
41
|
+
network_mode: 'service:network-service'
|
|
42
|
+
volumes:
|
|
43
|
+
- './s3_data:/etc/minio/data'
|
|
44
|
+
environment:
|
|
45
|
+
- 'MINIO_API_CORS_ALLOW_ORIGIN=*'
|
|
46
|
+
env_file:
|
|
47
|
+
- .env
|
|
48
|
+
restart: always
|
|
49
|
+
entrypoint: >
|
|
50
|
+
/bin/sh -c "
|
|
51
|
+
minio server /etc/minio/data --address ':${MINIO_PORT}' --console-address ':9001' &
|
|
52
|
+
MINIO_PID=\$!
|
|
53
|
+
while ! curl -s http://localhost:${MINIO_PORT}/minio/health/live; do
|
|
54
|
+
echo 'Waiting for MinIO to start...'
|
|
55
|
+
sleep 1
|
|
56
|
+
done
|
|
57
|
+
sleep 5
|
|
58
|
+
mc alias set myminio http://localhost:${MINIO_PORT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
|
|
59
|
+
echo 'Creating bucket ${MINIO_LOBE_BUCKET}'
|
|
60
|
+
mc mb myminio/${MINIO_LOBE_BUCKET}
|
|
61
|
+
wait \$MINIO_PID
|
|
62
|
+
"
|
|
63
|
+
|
|
64
|
+
# version lock ref: https://github.com/lobehub/lobe-chat/pull/7331
|
|
65
|
+
casdoor:
|
|
66
|
+
image: casbin/casdoor:v2.13.0
|
|
67
|
+
container_name: lobe-casdoor
|
|
68
|
+
entrypoint: /bin/sh -c './server --createDatabase=true'
|
|
69
|
+
network_mode: 'service:network-service'
|
|
70
|
+
depends_on:
|
|
71
|
+
postgresql:
|
|
72
|
+
condition: service_healthy
|
|
73
|
+
environment:
|
|
74
|
+
httpport: ${CASDOOR_PORT}
|
|
75
|
+
RUNNING_IN_DOCKER: 'true'
|
|
76
|
+
driverName: 'postgres'
|
|
77
|
+
dataSourceName: 'user=postgres password=${POSTGRES_PASSWORD} host=postgresql port=5432 sslmode=disable dbname=casdoor'
|
|
78
|
+
runmode: 'dev'
|
|
79
|
+
volumes:
|
|
80
|
+
- ./init_data.json:/init_data.json
|
|
81
|
+
env_file:
|
|
82
|
+
- .env
|
|
83
|
+
|
|
84
|
+
searxng:
|
|
85
|
+
image: searxng/searxng
|
|
86
|
+
container_name: lobe-searxng
|
|
87
|
+
volumes:
|
|
88
|
+
- './searxng-settings.yml:/etc/searxng/settings.yml'
|
|
89
|
+
environment:
|
|
90
|
+
- 'SEARXNG_SETTINGS_FILE=/etc/searxng/settings.yml'
|
|
91
|
+
restart: always
|
|
92
|
+
networks:
|
|
93
|
+
- lobe-network
|
|
94
|
+
env_file:
|
|
95
|
+
- .env
|
|
96
|
+
|
|
97
|
+
grafana:
|
|
98
|
+
image: grafana/grafana:12.2.0-17419259409
|
|
99
|
+
container_name: lobe-grafana
|
|
100
|
+
network_mode: 'service:network-service'
|
|
101
|
+
restart: always
|
|
102
|
+
environment:
|
|
103
|
+
- GF_AUTH_ANONYMOUS_ENABLED=true
|
|
104
|
+
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
|
105
|
+
- GF_AUTH_DISABLE_LOGIN_FORM=true
|
|
106
|
+
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
|
|
107
|
+
volumes:
|
|
108
|
+
- grafana_data:/var/lib/grafana
|
|
109
|
+
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards
|
|
110
|
+
- ./grafana/datasources:/etc/grafana/provisioning/datasources
|
|
111
|
+
depends_on:
|
|
112
|
+
- tempo
|
|
113
|
+
- prometheus
|
|
114
|
+
|
|
115
|
+
tempo:
|
|
116
|
+
image: grafana/tempo:latest
|
|
117
|
+
container_name: lobe-tempo
|
|
118
|
+
network_mode: 'service:network-service'
|
|
119
|
+
restart: always
|
|
120
|
+
volumes:
|
|
121
|
+
- ./tempo/tempo.yaml:/etc/tempo.yaml
|
|
122
|
+
- tempo_data:/var/tempo
|
|
123
|
+
command: ['-config.file=/etc/tempo.yaml']
|
|
124
|
+
|
|
125
|
+
prometheus:
|
|
126
|
+
image: prom/prometheus
|
|
127
|
+
container_name: lobe-prometheus
|
|
128
|
+
network_mode: 'service:network-service'
|
|
129
|
+
restart: always
|
|
130
|
+
volumes:
|
|
131
|
+
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
132
|
+
- prometheus_data:/prometheus
|
|
133
|
+
command:
|
|
134
|
+
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
135
|
+
- '--web.enable-otlp-receiver'
|
|
136
|
+
- '--web.enable-remote-write-receiver'
|
|
137
|
+
- '--enable-feature=exemplar-storage'
|
|
138
|
+
|
|
139
|
+
otel-collector:
|
|
140
|
+
image: otel/opentelemetry-collector
|
|
141
|
+
container_name: lobe-otel-collector
|
|
142
|
+
network_mode: 'service:network-service'
|
|
143
|
+
restart: always
|
|
144
|
+
volumes:
|
|
145
|
+
- ./otel-collector/collector-config.yaml:/etc/otelcol/config.yaml
|
|
146
|
+
command: ['--config', '/etc/otelcol/config.yaml']
|
|
147
|
+
depends_on:
|
|
148
|
+
- tempo
|
|
149
|
+
- prometheus
|
|
150
|
+
|
|
151
|
+
otel-tracing-test:
|
|
152
|
+
profiles:
|
|
153
|
+
- otel-test
|
|
154
|
+
image: ghcr.io/grafana/xk6-client-tracing:v0.0.7
|
|
155
|
+
container_name: lobe-otel-tracing-test
|
|
156
|
+
network_mode: 'service:network-service'
|
|
157
|
+
restart: always
|
|
158
|
+
environment:
|
|
159
|
+
- ENDPOINT=127.0.0.1:4317
|
|
160
|
+
|
|
161
|
+
lobe:
|
|
162
|
+
image: lobehub/lobe-chat-database
|
|
163
|
+
container_name: lobe-chat
|
|
164
|
+
network_mode: 'service:network-service'
|
|
165
|
+
depends_on:
|
|
166
|
+
postgresql:
|
|
167
|
+
condition: service_healthy
|
|
168
|
+
network-service:
|
|
169
|
+
condition: service_started
|
|
170
|
+
minio:
|
|
171
|
+
condition: service_started
|
|
172
|
+
casdoor:
|
|
173
|
+
condition: service_started
|
|
174
|
+
|
|
175
|
+
environment:
|
|
176
|
+
- 'NEXT_AUTH_SSO_PROVIDERS=casdoor'
|
|
177
|
+
- 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ='
|
|
178
|
+
- 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg'
|
|
179
|
+
- 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
|
|
180
|
+
- 'S3_BUCKET=${MINIO_LOBE_BUCKET}'
|
|
181
|
+
- 'S3_ENABLE_PATH_STYLE=1'
|
|
182
|
+
- 'S3_ACCESS_KEY=${MINIO_ROOT_USER}'
|
|
183
|
+
- 'S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}'
|
|
184
|
+
- 'S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}'
|
|
185
|
+
- 'LLM_VISION_IMAGE_USE_BASE64=1'
|
|
186
|
+
- 'S3_SET_ACL=0'
|
|
187
|
+
- 'SEARXNG_URL=http://searxng:8080'
|
|
188
|
+
- 'OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf'
|
|
189
|
+
- 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metrics'
|
|
190
|
+
- 'OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf'
|
|
191
|
+
- 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4318/v1/traces'
|
|
192
|
+
env_file:
|
|
193
|
+
- .env
|
|
194
|
+
restart: always
|
|
195
|
+
entrypoint: >
|
|
196
|
+
/bin/sh -c "
|
|
197
|
+
/bin/node /app/startServer.js &
|
|
198
|
+
LOBE_PID=\$!
|
|
199
|
+
sleep 3
|
|
200
|
+
if [ $(wget --timeout=5 --spider --server-response ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then
|
|
201
|
+
echo '⚠️Warning: Unable to fetch OIDC configuration from Casdoor'
|
|
202
|
+
echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
|
|
203
|
+
echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
204
|
+
echo ''
|
|
205
|
+
echo '⚠️注意:无法从 Casdoor 获取 OIDC 配置'
|
|
206
|
+
echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
|
|
207
|
+
echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
208
|
+
echo ''
|
|
209
|
+
else
|
|
210
|
+
if ! wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep 'issuer' | grep ${AUTH_CASDOOR_ISSUER}; then
|
|
211
|
+
printf '❌Error: The Auth issuer is conflict, Issuer in OIDC configuration is: %s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}')
|
|
212
|
+
echo ' , but the issuer in .env file is: ${AUTH_CASDOOR_ISSUER} '
|
|
213
|
+
echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
|
|
214
|
+
echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
215
|
+
echo ''
|
|
216
|
+
printf '❌错误:Auth 的 issuer 冲突,OIDC 配置中的 issuer 是:%s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2>&1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}')
|
|
217
|
+
echo ' , 但 .env 文件中的 issuer 是:${AUTH_CASDOOR_ISSUER} '
|
|
218
|
+
echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
|
|
219
|
+
echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
220
|
+
echo ''
|
|
221
|
+
fi
|
|
222
|
+
fi
|
|
223
|
+
if [ $(wget --timeout=5 --spider --server-response ${S3_ENDPOINT}/minio/health/live 2>&1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then
|
|
224
|
+
echo '⚠️Warning: Unable to fetch MinIO health status'
|
|
225
|
+
echo 'Request URL: ${S3_ENDPOINT}/minio/health/live'
|
|
226
|
+
echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
227
|
+
echo ''
|
|
228
|
+
echo '⚠️注意:无法获取 MinIO 健康状态'
|
|
229
|
+
echo '请求 URL: ${S3_ENDPOINT}/minio/health/live'
|
|
230
|
+
echo '了解更多:https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
|
|
231
|
+
echo ''
|
|
232
|
+
fi
|
|
233
|
+
wait \$LOBE_PID
|
|
234
|
+
"
|
|
235
|
+
|
|
236
|
+
volumes:
|
|
237
|
+
data:
|
|
238
|
+
driver: local
|
|
239
|
+
s3_data:
|
|
240
|
+
driver: local
|
|
241
|
+
grafana_data:
|
|
242
|
+
driver: local
|
|
243
|
+
tempo_data:
|
|
244
|
+
driver: local
|
|
245
|
+
prometheus_data:
|
|
246
|
+
driver: local
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
networks:
|
|
250
|
+
lobe-network:
|
|
251
|
+
driver: bridge
|
|
File without changes
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
extensions:
|
|
2
|
+
health_check:
|
|
3
|
+
endpoint: 127.0.0.1:13133
|
|
4
|
+
|
|
5
|
+
receivers:
|
|
6
|
+
prometheus:
|
|
7
|
+
config:
|
|
8
|
+
scrape_configs:
|
|
9
|
+
- job_name: otel-collector-metrics
|
|
10
|
+
scrape_interval: 10s
|
|
11
|
+
static_configs:
|
|
12
|
+
- targets: ["127.0.0.1:8888"]
|
|
13
|
+
|
|
14
|
+
otlp:
|
|
15
|
+
protocols:
|
|
16
|
+
grpc:
|
|
17
|
+
endpoint: 0.0.0.0:4317
|
|
18
|
+
http:
|
|
19
|
+
endpoint: 0.0.0.0:4318
|
|
20
|
+
|
|
21
|
+
exporters:
|
|
22
|
+
prometheusremotewrite:
|
|
23
|
+
endpoint: http://127.0.0.1:9090/api/v1/write
|
|
24
|
+
tls:
|
|
25
|
+
insecure: true
|
|
26
|
+
|
|
27
|
+
otlp:
|
|
28
|
+
endpoint: 127.0.0.1:14317
|
|
29
|
+
tls:
|
|
30
|
+
insecure: true
|
|
31
|
+
|
|
32
|
+
debug:
|
|
33
|
+
verbosity: detailed
|
|
34
|
+
|
|
35
|
+
service:
|
|
36
|
+
pipelines:
|
|
37
|
+
metrics:
|
|
38
|
+
receivers: [prometheus]
|
|
39
|
+
exporters: [prometheusremotewrite]
|
|
40
|
+
traces:
|
|
41
|
+
receivers: [otlp]
|
|
42
|
+
exporters: [otlp]
|
|
43
|
+
logs:
|
|
44
|
+
receivers: [otlp]
|
|
45
|
+
exporters: [debug]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
stream_over_http_enabled: true
|
|
2
|
+
server:
|
|
3
|
+
http_listen_port: 3200
|
|
4
|
+
log_level: info
|
|
5
|
+
|
|
6
|
+
query_frontend:
|
|
7
|
+
search:
|
|
8
|
+
duration_slo: 5s
|
|
9
|
+
throughput_bytes_slo: 1.073741824e+09
|
|
10
|
+
metadata_slo:
|
|
11
|
+
duration_slo: 5s
|
|
12
|
+
throughput_bytes_slo: 1.073741824e+09
|
|
13
|
+
trace_by_id:
|
|
14
|
+
duration_slo: 5s
|
|
15
|
+
|
|
16
|
+
distributor:
|
|
17
|
+
max_attribute_bytes: 10485760
|
|
18
|
+
receivers:
|
|
19
|
+
otlp:
|
|
20
|
+
protocols:
|
|
21
|
+
grpc:
|
|
22
|
+
endpoint: 127.0.0.1:14317
|
|
23
|
+
http:
|
|
24
|
+
endpoint: 127.0.0.1:14318
|
|
25
|
+
|
|
26
|
+
ingester:
|
|
27
|
+
max_block_duration: 5m # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
|
|
28
|
+
|
|
29
|
+
compactor:
|
|
30
|
+
compaction:
|
|
31
|
+
block_retention: 1h # overall Tempo trace retention. set for demo purposes
|
|
32
|
+
|
|
33
|
+
metrics_generator:
|
|
34
|
+
registry:
|
|
35
|
+
external_labels:
|
|
36
|
+
source: tempo
|
|
37
|
+
cluster: docker-compose
|
|
38
|
+
storage:
|
|
39
|
+
path: /var/tempo/generator/wal
|
|
40
|
+
remote_write:
|
|
41
|
+
- url: http://127.0.0.1:9090/api/v1/write
|
|
42
|
+
send_exemplars: true
|
|
43
|
+
traces_storage:
|
|
44
|
+
path: /var/tempo/generator/traces
|
|
45
|
+
|
|
46
|
+
storage:
|
|
47
|
+
trace:
|
|
48
|
+
backend: local # backend configuration to use
|
|
49
|
+
wal:
|
|
50
|
+
path: /var/tempo/wal # where to store the wal locally
|
|
51
|
+
local:
|
|
52
|
+
path: /var/tempo/blocks
|
|
53
|
+
|
|
54
|
+
overrides:
|
|
55
|
+
defaults:
|
|
56
|
+
metrics_generator:
|
|
57
|
+
processors: [service-graphs, span-metrics, local-blocks] # enables metrics generator
|
|
58
|
+
generate_native_histograms: both
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Proxy, if you need it
|
|
2
|
+
# HTTP_PROXY=http://localhost:7890
|
|
3
|
+
# HTTPS_PROXY=http://localhost:7890
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Other environment variables, as needed. You can refer to the environment variables configuration for the client version, making sure not to have ACCESS_CODE.
|
|
7
|
+
# OPENAI_API_KEY=sk-xxxx
|
|
8
|
+
# OPENAI_PROXY_URL=https://api.openai.com/v1
|
|
9
|
+
# OPENAI_MODEL_LIST=...
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# ===========================
|
|
13
|
+
# ====== Preset config ======
|
|
14
|
+
# ===========================
|
|
15
|
+
# if no special requirements, no need to change
|
|
16
|
+
LOBE_PORT=3210
|
|
17
|
+
CASDOOR_PORT=8000
|
|
18
|
+
MINIO_PORT=9000
|
|
19
|
+
APP_URL=http://localhost:3210
|
|
20
|
+
AUTH_URL=http://localhost:3210/api/auth
|
|
21
|
+
|
|
22
|
+
# Postgres related, which are the necessary environment variables for DB
|
|
23
|
+
LOBE_DB_NAME=lobechat
|
|
24
|
+
POSTGRES_PASSWORD=uWNZugjBqixf8dxC
|
|
25
|
+
|
|
26
|
+
AUTH_CASDOOR_ISSUER=http://localhost:8000
|
|
27
|
+
# Casdoor secret
|
|
28
|
+
AUTH_CASDOOR_ID=a387a4892ee19b1a2249
|
|
29
|
+
AUTH_CASDOOR_SECRET=dbf205949d704de81b0b5b3603174e23fbecc354
|
|
30
|
+
CASDOOR_WEBHOOK_SECRET=casdoor-secret
|
|
31
|
+
|
|
32
|
+
# MinIO S3 configuration
|
|
33
|
+
MINIO_ROOT_USER=admin
|
|
34
|
+
MINIO_ROOT_PASSWORD=YOUR_MINIO_PASSWORD
|
|
35
|
+
|
|
36
|
+
# Configure the bucket information of MinIO
|
|
37
|
+
S3_PUBLIC_DOMAIN=http://localhost:9000
|
|
38
|
+
S3_ENDPOINT=http://localhost:9000
|
|
39
|
+
MINIO_LOBE_BUCKET=lobe
|
|
40
|
+
|
|
41
|
+
GF_SECURITY_ADMIN_PASSWORD=YOUR_GRAFANA_PASSWORD
|
|
42
|
+
|
|
43
|
+
# Configure for casdoor
|
|
44
|
+
origin=http://localhost:8000
|