diff --git a/apps/lobe-chat/config.json b/apps/lobe-chat/config.json new file mode 100644 index 00000000..7f50be32 --- /dev/null +++ b/apps/lobe-chat/config.json @@ -0,0 +1,43 @@ +{ + "name": "Lobe Chat", + "available": true, + "port": 3210, + "exposable": true, + "id": "lobe-chat", + "description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.", + "tipi_version": 1, + "version": "0.116.4", + "categories": ["ai"], + "short_desc": "LLM chatbot framework", + "author": "https://github.com/lobehub", + "source": "https://github.com/lobehub/lobe-chat", + "website": "https://github.com/lobehub/lobe-chat", + "form_fields": [ + { + "type": "text", + "label": "OpenAI API Key", + "required": true, + "env_variable": "OPENAI_API_KEY" + }, + { + "type": "url", + "label": "OpenAI API URL", + "required": false, + "env_variable": "OPENAI_PROXY_URL" + }, + { + "type": "text", + "label": "Custom Models", + "hint": "Comma separated list of model IDs", + "required": false, + "env_variable": "CUSTOM_MODELS" + }, + { + "type": "password", + "label": "Password", + "required": false, + "env_variable": "ACCESS_CODE" + } + ], + "supported_architectures": ["arm64", "amd64"] +} diff --git a/apps/lobe-chat/docker-compose.yml b/apps/lobe-chat/docker-compose.yml new file mode 100644 index 00000000..d8b20b44 --- /dev/null +++ b/apps/lobe-chat/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3.9' +services: + lobe-chat: + container_name: lobe-chat + image: lobehub/lobe-chat:v0.116.4 + environment: + - OPENAI_API_KEY=${OPENAI_API_KEY} + - OPENAI_PROXY_URL=${OPEANAI_PROXY_URL} + - CUSTOM_MODELS=${CUSTOM_MODELS} + - ACCESS_CODE=${ACCESS_CODE} + ports: + - ${APP_PORT}:3210 + restart: unless-stopped + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.lobe-chat-web-redirect.redirectscheme.scheme: https + traefik.http.services.lobe-chat.loadbalancer.server.port: 3210 + # Web + traefik.http.routers.lobe-chat-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lobe-chat-insecure.entrypoints: web + traefik.http.routers.lobe-chat-insecure.service: lobe-chat + traefik.http.routers.lobe-chat-insecure.middlewares: lobe-chat-web-redirect + # Websecure + traefik.http.routers.lobe-chat.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lobe-chat.entrypoints: websecure + traefik.http.routers.lobe-chat.service: lobe-chat + traefik.http.routers.lobe-chat.tls.certresolver: myresolver + # Local domain + traefik.http.routers.lobe-chat-local-insecure.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`) + traefik.http.routers.lobe-chat-local-insecure.entrypoints: web + traefik.http.routers.lobe-chat-local-insecure.service: lobe-chat + traefik.http.routers.lobe-chat-local-insecure.middlewares: lobe-chat-web-redirect + # Local domain secure + traefik.http.routers.lobe-chat-local.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`) + traefik.http.routers.lobe-chat-local.entrypoints: websecure + traefik.http.routers.lobe-chat-local.service: lobe-chat + traefik.http.routers.lobe-chat-local.tls: true diff --git a/apps/lobe-chat/metadata/description.md b/apps/lobe-chat/metadata/description.md new file mode 100644 index 00000000..0aed4a3e --- /dev/null +++ b/apps/lobe-chat/metadata/description.md @@ -0,0 +1,13 @@ +# Lobe Chat + +LobeChat is an open-source, high-performance chatbot framework that supports +speech synthesis, multimodal, and extensible +([Function Call](https://platform.openai.com/docs/guides/function-calling)) plugin system. + +## Settings +| Environment Variable | Required | Description | Example | +| -------------------- | -------- | ------------| --------| +| `OPENAI_API_KEY` | Yes | API key for OpenAI. You can generate it on [your OpenAI account page](https://platform.openai.com/api-keys). **Note:** Keep your `OPENAI_API_KEY` secure to prevent unauthorized access. | `sk-xxxxxx...xxxxxx` | +| `OPENAI_PROXY_URL` | No | Override the default OpenAI API base URL for requests. **Caution:** Only use a trusted proxy to ensure the security of your data. | `https://api.chatanywhere.cn/v1`
The default value is
`https://api.openai.com/v1` | +| `ACCESS_CODE` | No | Password to avoid leaking. If you want to have multiple passwords, use a comma separated list. **Security Best Practice:** Avoid storing passwords directly in environment variables. Use a secrets management service to protect sensitive information. | `awCTe)re_r74` or `rtrt_ewee3@09!` or `code1,code2,code3` | +| `CUSTOM_MODELS` | No | Control the model list. Use `+` to add a model, `-` to hide a model, and `model_name=display_name` to customize the display name of a model, separated by commas. | `qwen-7b-chat,+glm-6b,-gpt-3.5-turbo` | diff --git a/apps/lobe-chat/metadata/logo.jpg b/apps/lobe-chat/metadata/logo.jpg new file mode 100644 index 00000000..13df2a97 Binary files /dev/null and b/apps/lobe-chat/metadata/logo.jpg differ