diff --git a/.github/README.md b/.github/README.md
index 4c0e63a18..4c3319bae 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -86,6 +86,7 @@
| 🟢 |
| Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 |
| 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 |
| LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
+| 🟢 |
| Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
| 🟢 |
| 苹果CMS V10 | https://www.maccms.la/ | 基于ThinkPHP和Layui的多功能开源免费内容管理系统 | |
| 🟢 |
| Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 |
| MDC-NG | https://github.com/mdc-ng/mdc-ng/ | 成人电影数据采集工具 | |
diff --git a/README.md b/README.md
index 14f33f0b1..47ee1aba2 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,7 @@
| 🟢 |
| Kimai | https://www.kimai.org/ | 基于网络的多用户时间追踪应用 | |
| 🟢 |
| 问卷星 | https://www.limesurvey.org/ | 在线问卷调查程序 | |
| 🟢 |
| LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
+| 🟢 |
| Logto | https://logto.io/ | 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。 | |
| 🟢 |
| 苹果CMS V10 | https://www.maccms.la/ | 基于ThinkPHP和Layui的多功能开源免费内容管理系统 | |
| 🟢 |
| Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 |
| MDC-NG | https://github.com/mdc-ng/mdc-ng/ | 成人电影数据采集工具 | |
diff --git a/apps/logto/1.22.0/data.yml b/apps/logto/1.22.0/data.yml
new file mode 100644
index 000000000..aac2f13e9
--- /dev/null
+++ b/apps/logto/1.22.0/data.yml
@@ -0,0 +1,104 @@
+additionalProperties:
+ formFields:
+ - child:
+ default: ""
+ envKey: PANEL_POSTGRES_SERVICE
+ required: true
+ type: service
+ default: postgresql
+ envKey: PANEL_POSTGRES_TYPE
+ labelZh: Postgres 服务 (前置检查)
+ labelEn: Postgres Service (Pre-check)
+ required: true
+ type: apps
+ values:
+ - label: PostgreSQL
+ value: postgresql
+ - default: 3002
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: 3001
+ edit: true
+ envKey: PANEL_APP_PORT_API
+ labelZh: API 端口
+ labelEn: API port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "http://127.0.0.1:3001"
+ edit: true
+ envKey: ENDPOINT
+ labelZh: OIDC 发行者域名
+ labelEn: OIDC Issuer Domain
+ required: true
+ type: text
+ - default: "http://127.0.0.1:3002"
+ edit: true
+ envKey: ADMIN_ENDPOINT
+ labelZh: 控制台重定向地址
+ labelEn: Admin Redirect URL
+ required: true
+ type: text
+ - default: "false"
+ edit: true
+ envKey: ADMIN_DISABLE_LOCALHOST
+ labelZh: 禁用后台访问
+ labelEn: Disable Admin Access
+ required: true
+ type: select
+ values:
+ - label: 禁用访问
+ value: "true"
+ - label: 允许访问
+ value: "false"
+ - default: "127.0.0.1"
+ edit: true
+ envKey: POSTGRES_HOST
+ labelZh: 数据库 主机地址
+ labelEn: Database Host
+ required: true
+ type: text
+ - default: 5432
+ edit: true
+ envKey: POSTGRES_PORT
+ labelZh: 数据库 端口
+ labelEn: Database Port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "logto"
+ edit: true
+ envKey: POSTGRES_NAME
+ labelZh: 数据库 名称
+ labelEn: Database Name
+ required: true
+ rule: paramCommon
+ type: text
+ - default: "logto"
+ edit: true
+ envKey: POSTGRES_USER
+ labelZh: 数据库 用户名
+ labelEn: Database Username
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: POSTGRES_PASSWORD
+ labelZh: 数据库 密码
+ labelEn: Database Password
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: ""
+ edit: true
+ envKey: REDIS_URL
+ labelZh: 中央缓存 Redis
+ labelEn: Central Cache Redis
+ required: false
+ type: text
diff --git a/apps/logto/1.22.0/docker-compose.yml b/apps/logto/1.22.0/docker-compose.yml
new file mode 100644
index 000000000..133de468d
--- /dev/null
+++ b/apps/logto/1.22.0/docker-compose.yml
@@ -0,0 +1,27 @@
+networks:
+ 1panel-network:
+ external: true
+
+services:
+ logto:
+ image: svhd/logto:1.22.0
+ container_name: ${CONTAINER_NAME}
+ labels:
+ createdBy: "Apps"
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_API}
+ - ${PANEL_APP_PORT_HTTP}
+ entrypoint: [ "sh", "-c", "npm run cli db seed -- --swe && npm start" ]
+ env_file:
+ - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
+ - ${ENV_FILE:-/etc/1panel/envs/default.env}
+ environment:
+ - NODE_ENV=production
+ - PORT=${PANEL_APP_PORT_API}
+ - ADMIN_PORT=${PANEL_APP_PORT_HTTP}
+ - TRUST_PROXY_HEADER=true
+ - CASE_SENSITIVE_USERNAME=true
+ - DB_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_NAME}
diff --git a/apps/logto/1.22.0/envs/default.env b/apps/logto/1.22.0/envs/default.env
new file mode 100644
index 000000000..cd05f46e6
--- /dev/null
+++ b/apps/logto/1.22.0/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/apps/logto/1.22.0/envs/global.env b/apps/logto/1.22.0/envs/global.env
new file mode 100644
index 000000000..e10989fe4
--- /dev/null
+++ b/apps/logto/1.22.0/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/apps/logto/1.22.0/scripts/init.sh b/apps/logto/1.22.0/scripts/init.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/logto/1.22.0/scripts/init.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/logto/1.22.0/scripts/uninstall.sh b/apps/logto/1.22.0/scripts/uninstall.sh
new file mode 100644
index 000000000..c86c4fbca
--- /dev/null
+++ b/apps/logto/1.22.0/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/logto/1.22.0/scripts/upgrade.sh b/apps/logto/1.22.0/scripts/upgrade.sh
new file mode 100644
index 000000000..07fb8c3fe
--- /dev/null
+++ b/apps/logto/1.22.0/scripts/upgrade.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/logto/README.md b/apps/logto/README.md
new file mode 100644
index 000000000..2edb8247e
--- /dev/null
+++ b/apps/logto/README.md
@@ -0,0 +1,47 @@
+# Logto
+
+开发者更好的身份基础设施,以及 Auth0 的开源替代方案。
+
+
+
+
+
+## 简介
+
+Logto 是一个开源的身份和访问管理(IAM)平台,旨在简化客户身份和访问管理(CIAM)和员工身份管理。
+基于单点登录(SSO)、基于 OIDC 的认证和多租户 SaaS 功能,Logto 提供了一种可扩展、安全且对开发者友好的现代 Web 和移动应用认证管理方式
+
+## 特性
+
+🧑💻 全栈式身份解决方案
+
++ 启用基于 OpenID Connect (OIDC) 的身份验证,使用 Logto SDKs。
++ 支持无密码登录,以及电子邮件、电话号码、用户名、谷歌、Facebook 和其他社交登录方式等多种选项。
++ 提供美观的 UI 组件,具有可定制的 CSS 以满足您的业务需求。
+
+📦 即插即用型基础设施
+
++ 包含一个可立即使用的管理 API,作为您的身份验证提供者,从而消除了额外实现的需求。
++ 提供无缝集成您的应用程序与 Logto 的 SDK,支持多平台和语言,适用于您的开发环境。
++ 提供可扩展的连接器,可由社区贡献进行扩展,并可通过 SAML、OAuth 和 OIDC 协议进行定制。
+
+💻 企业级解决方案
+
++ 实现可扩展授权的基于角色的访问控制(RBAC)。
++ 启用用户管理,通过审计日志跟踪与身份相关的活动并维护安全。
++ 支持无需最小编码的单点登录(SSO)和多因素认证(MFA)。
++ 利用Logto 组织轻松构建多租户应用程序。
+
+## 安装说明
+
+### `中央缓存 Redis` 配置
+
+基本格式, 请根据实际情况修改, 遵循 [Redis协议](https://www.iana.org/assignments/uri-schemes/prov/rediss):
+
+```env
+REDIS_URL=redis://:@:
+```
+
+---
+
+
diff --git a/apps/logto/data.yml b/apps/logto/data.yml
new file mode 100644
index 000000000..ed104d4a7
--- /dev/null
+++ b/apps/logto/data.yml
@@ -0,0 +1,15 @@
+additionalProperties:
+ key: logto
+ name: Logto
+ tags:
+ - WebSite
+ - Middleware
+ - Local
+ shortDescZh: 开发者更好的身份基础设施,以及 Auth0 的开源替代方案。
+ shortDescEn: A better identity infrastructure for developers, and an open-source alternative to Auth0.
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://logto.io/
+ github: https://github.com/logto-io/logto/
+ document: https://docs.logto.io/
diff --git a/apps/logto/logo.png b/apps/logto/logo.png
new file mode 100644
index 000000000..438246a8e
Binary files /dev/null and b/apps/logto/logo.png differ