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