From ecfe6a864d0648eb8ebafc88b560ab8e5b682932 Mon Sep 17 00:00:00 2001 From: Anye <53684988+Anyexyz@users.noreply.github.com> Date: Fri, 13 Sep 2024 13:35:30 +0800 Subject: [PATCH] Add Logto (#2111) --- apps/logto/1.19.0/data.yml | 70 +++++++++++++++++++++++++++ apps/logto/1.19.0/docker-compose.yml | 20 ++++++++ apps/logto/README.md | 25 ++++++++++ apps/logto/data.yml | 14 ++++++ apps/logto/logo.png | Bin 0 -> 8306 bytes 5 files changed, 129 insertions(+) create mode 100644 apps/logto/1.19.0/data.yml create mode 100644 apps/logto/1.19.0/docker-compose.yml create mode 100644 apps/logto/README.md create mode 100644 apps/logto/data.yml create mode 100644 apps/logto/logo.png diff --git a/apps/logto/1.19.0/data.yml b/apps/logto/1.19.0/data.yml new file mode 100644 index 00000000..d576c063 --- /dev/null +++ b/apps/logto/1.19.0/data.yml @@ -0,0 +1,70 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: postgresql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: logto + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: logto + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: logto + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 3001 + envKey: PANEL_APP_PORT_HTTP_LOGTO + labelEn: Logto Port + labelZh: Logto 监听的端口 + required: true + rule: paramPort + type: number + - default: 3002 + envKey: PANEL_APP_PORT_HTTP + labelEn: Logto Admin Port + labelZh: Logto 管理控制台端口 + required: true + rule: paramPort + type: number + - default: http://localhost:3001 + edit: true + envKey: LOGTO_ENDPOINT_URL + labelEn: Logto Endpoint + labelZh: Logto 服务地址 + required: true + rule: paramHttp + type: text + - default: http://localhost:3002 + edit: true + envKey: LOGTO_ADMIN_ENDPOINT_URL + labelEn: Logto Admin Endpoint + labelZh: Logto 管理控制台地址 + required: true + rule: paramHttp + type: text \ No newline at end of file diff --git a/apps/logto/1.19.0/docker-compose.yml b/apps/logto/1.19.0/docker-compose.yml new file mode 100644 index 00000000..1ced8942 --- /dev/null +++ b/apps/logto/1.19.0/docker-compose.yml @@ -0,0 +1,20 @@ +networks: + 1panel-network: + external: true +services: + logto: + container_name: ${CONTAINER_NAME} + image: svhd/logto:1.19.0 + entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"] + networks: + - 1panel-network + ports: + - ${HOST_IP}:${PANEL_APP_PORT_HTTP_LOGTO}:3001 + - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:3002 + environment: + - TRUST_PROXY_HEADER=1 + - DB_URL=postgres://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} + - ENDPOINT=${LOGTO_ENDPOINT_URL} + - ADMIN_ENDPOINT=${LOGTO_ADMIN_ENDPOINT_URL} + labels: + createdBy: "Apps" \ No newline at end of file diff --git a/apps/logto/README.md b/apps/logto/README.md new file mode 100644 index 00000000..35b872e7 --- /dev/null +++ b/apps/logto/README.md @@ -0,0 +1,25 @@ +# Logto + +Logto 是一个为现代应用和 SaaS 产品设计的 Auth0 替代方案。它提供了无缝的开发者体验,非常适合个人和成长中的公司。 + +🧑‍💻 **全面的前后端身份解决方案** + +- 通过 Logto SDK 启用基于 OIDC 的身份验证。 +- 支持无密码登录,提供包括电子邮件、电话号码、用户名、Google、Facebook 等社交登录方式。 +- 提供美观的 UI 组件,可通过自定义 CSS 满足您的业务需求。 +- 拥有开放的社区,许多热心的贡献者和用户。查看我们社区贡献资源的 [awesome 列表](./AWESOME.md)。 + +📦 **开箱即用的基础设施** + +- 提供现成的管理 API,作为您的身份验证提供者,无需额外实现。 +- 提供 SDK,在多个平台和语言中无缝集成您的应用程序,适应您的开发环境。 +- 提供灵活的连接器,支持通过社区贡献扩展,并可自定义支持 SAML、OAuth 和 OIDC 协议。 + +💻 **企业级解决方案** + +- 实现基于角色的访问控制(RBAC),为广泛的用例提供可扩展的角色授权。 +- 提供用户管理和审计日志,以了解与身份相关的用户信息并维护安全性。 +- 启用单点登录(SSO)和多因素身份验证(MFA),无需额外编写代码。 +- 利用 Logto 组织轻松构建多租户应用程序。 + +我们以更易于理解的方式将此解决方案称为 "[客户身份访问管理 (CIAM)](https://en.wikipedia.org/wiki/Customer_identity_access_management)",或简称 "客户身份解决方案"。 \ No newline at end of file diff --git a/apps/logto/data.yml b/apps/logto/data.yml new file mode 100644 index 00000000..34687eb0 --- /dev/null +++ b/apps/logto/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + crossVersionUpdate: true + document: https://docs.logto.io/ + github: https://github.com/logto-io/logto + key: logto + limit: 0 + name: Logto + shortDescEn: Logto is an open-source Auth0 alternative designed for modern apps + and SaaS products. + shortDescZh: 专为现代应用和 SaaS 产品设计的开源 Auth0 替代品 + tags: + - Security + type: tool + website: https://logto.io/zh-CN/ diff --git a/apps/logto/logo.png b/apps/logto/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3691e4b6c974de6168ddd9b6d2afe663227b7105 GIT binary patch literal 8306 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%0D_i#4J8$F3Fl${1aqhOAN*|j(Q6#R7|}) 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 literal 0 KcmV+b0RR6000031