1 Star 0 Fork 174

gasgas / uctoo

forked from uctoo / uctoo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

UCToo

UCToo是一套云原生分布式SaaS应用开发基础设施。符合SaaS成熟度模型Level5级标准,实现SaaS统一应用实例模板开发规范,采用开源、通用、厂商中立的技术选型。内置众多开发者效率工具,可快速进行SaaS应用的开发和运营,适合作为SaaS平台、产业互联网等产品的起始项目。开发成果可共享,可互联互通,可在UCToo应用市场商业化分发。

概述

UCToo是一系列实现云原生分布式SaaS应用开发的最佳实践的总称。以下UCToo技术体系架构请参考,并随业界技术发展持续迭代。

UCToo技术体系架构

本代码库主要包含了UCToo APP server的一个PHP技术选型的具体实现版本。

UCToo技术体系索引

  1. https://gitee.com/UCT/uctoo-app-server UCToo APP server SaaS应用实例模板服务器端开发规范
  2. https://gitee.com/uctoo/uctoo UCToo APP server PHP技术选型的具体实现版本,采用CatchAdmin,支持管理后台模块化低代码开发
  3. https://gitee.com/UCT/uctoo-api-client UCToo api client 用于对接UCToo APP server服务端接口的客户端SDK规范(暂为js技术选型的具体实现版本)
  4. https://gitee.com/UCT/uctoo-api-client-php UCToo api client PHP技术选型的具体实现版本,UCToo已内置开源版
  5. https://gitee.com/UCT/uctoo-app-server-vue UCToo APP server PC端管理后台前端界面,采用CatchAdmin Vue
  6. UCToo APImanager 模块是一个用于API管理、测试、协作的SaaS应用,UCToo已内置开源版
  7. UCToo wechatopen manager 模块是一个用于管理微信第三方平台的后台管理应用,UCToo已内置开源版
  8. UCToo wechatopen server 模块是一个用于对接微信生态所有API的标准微信第三方平台前置服务器应用,UCToo已内置开源版
  9. UCT UI 是一个多端兼容的前端UI框架,采用uni-app uView实现,支持移动端应用低代码快速开发
  10. UCToo docker 云原生分布式部署UCToo APP server 应用实例的容器项目,支持UCToo SaaS应用实例一键部署至公有云平台
  11. SaaS共享数据模型 符合多商户多应用、多端统一用户身份的一套SaaS共享数据模型,UCToo已内置开源版
  12. UCToo应用市场 支持云原生分布式SaaS应用进行商业化分发的应用市场,连接开发者和商户的开放式交易平台
  13. 微用户小程序 开发者服务小程序,提供开源项目商业化全流程运营支撑,开源版本修改自微信官方Demo小程序,提供开发者UCToo开发示例
  14. www.uctoo.com UCToo产品官网,采用UCToo APP server 开发的,支持云原生分布式的新一代SaaS服务运营支撑平台。
  15. www.uctoo.org UCTOO通用云技术开源组织,为符合level5级SaaS产品开源项目提供孵化、技术支持和商业化服务,收集和整理业界最佳实践。(筹备中)

主要特性

本项目的设计目标是提供开发人员,可以主要通过定义应用模块的数据结构,即可生成应用模块的管理后台、API接口以及默认移动应用,使得无论掌握何种技术栈的后台开发人员还是前端开发人员,都可以采用本项目快速的开发多端兼容的数字化系统和应用,并可进行灵活的二次开发。

  1. 先进技术,主流应用,开源开放。
  2. 模块可拆卸,系统只保留核心的功能,其余功能通过扩展模块来实现。
  3. 支持云原生应用开发,支持多商户多应用管理SaaS平台特性,可在多数云平台环境独立安装部署,支持云原生部署。
  4. 支持微信小程序云开发特性。
  5. 实现了微信第三方平台对接的中控服务器逻辑,并可灵活自定义与微信公众平台、微信开放平台的各种业务交互,由于第三方平台开发方式是微信交易组件、批量云开发等的依赖基础,因此建议微信相关应用开发都采用第三方平台方式。
  6. 实现了微信第三方平台应用模块化开发,各种增值应用都可以独立安装及卸载,支持模块商业化分发和部署。
  7. 已集成微信第三方平台批量代云开发,支持去中心化部署商户Web端管理平台和小程序端应用模板。
  8. catchadmin可实现商户Web端管理平台低代码快速开发,UCToo低代码模块可实现小程序、APP多端低代码快速开发。

产品架构

  1. 系统融合了众多优秀开源项目,采纳通用技术,每周持续集成业界最佳实践。UCToo开发团队扩展了微信应用开发相关功能,对接了微信公众平台和开放平台的所有接口,使其允许在任何类型的微信应用项目中使用。
  2. 采用catchadmin、easywechat开发UCToo 2.0版本,相关资料请参考https://www.catchadmin.com/https://www.easywechat.com
  3. 使用了uctoo/think-easywechat SDK 集成catchadmin (TP6+VUE) 和 easywechat 4,支持微信第三方平台、微信小程序云开发、微信支付服务商等特性
  4. 第三方平台配置信息保存在 wechatopen 表。授权到第三方平台的公众号/小程序等帐号信息保存在 wechatopen_applet表,wechatopen 表的参数用来初始化 easywechat SDK,wechatopen_applet表的参数用来作为第三方平台代公众号/小程序实现业务的帐号信息
- UCToo V2 技术选型采用了前后端分离的catchadmin框架,
  同时结合腾讯云CloudBase云原生开发平台的特性,
  可实现SaaS应用实例模板去中心化部署,
  使得本项目符合Level 5 级SaaS产品的主要特性
  (Level 5级SaaS产品定义请参考本项目开发文档 https://www.kancloud.cn/doc_uctoo/uctoo_dev )

安装教程

可通过以下开源项目进行二次开发。

  1. UCToo-docker项目源码 https://gitee.com/UCT/uctoo-docker
  2. UCToo应用模板服务器端PHP项目 https://gitee.com/uctoo/uctoo
  3. UCToo应用模板PC端VUE项目 https://gitee.com/UCT/uctoo-app-server-vue

cloudbase 一键云端部署说明

  1. 推荐使用cloudbase 一键部署。如安装时提示无本地环境,请先登录腾讯云->云开发cloudbase->环境总览开通一个云开发环境(目前只支持按量计费)。
  2. 必须先一键部署UCToo应用模板服务器端PHP项目。项目部署完成后,在腾讯云->云开发cloudbase->我的应用,可以获取到后台访问地址,此地址即为后端baseAPI地址。
  3. 通过腾讯云->云开发cloudbase->云托管->uctooserver服务->uctooserver-xxx版本->实例->Webshell登录后端实例(如果版本下没有实例,请先访问后端首页,激活一个实例运行),命令行 cd 至 /var/www/html/uctoo目录下,运行 php think uctoo:install 命令初始化数据库(如果安装命令运行失败,提示数据库休眠,请稍等几秒待数据库激活后再运行一遍命令。uctoo:install命令目前只支持cloudbase一键安装环境)。
  4. 再一键部署UCToo应用模板PC端VUE项目。项目初始化部署时,用户需要填写以上步骤2获取到的baseAPI地址。前端VUE项目即可从baseAPI获取后端服务。部署完成后,在腾讯云->云开发cloudbase->我的应用,可以获取到前端访问地址。
  5. 可通过腾讯云->云开发cloudbase->静态网站托管查看已部署的前端项目代码。
  6. 可以通过腾讯云->云原生数据库TDSQL-C->登录,管理数据库。如果数据库未启动,请先启动。
  7. 可以通过腾讯云->文件存储管理挂载的CFS文件系统。文件系统挂载于后端 /var/www/html 目录,用于保存用户UCToo APP server代码和静态资源文件等内容。
  8. 初始化安装后,cloudbase自动分配的前后端访问地址与用户自定义配置的前后端域名不一致,需在云托管->服务配置->HTTP访问服务配置(后端baseAPI地址),以及静态网站托管->基础配置->自定义域名配置(前端访问网址),用户设置的域名才可以生效。
  9. 安装完成后,可用初始化安装设置的超管帐号登录管理后台,通过系统管理->模块管理功能安装更多内置模块,也可以到UCToo应用市场 https://appstore.uctoo.com 购买更多模块安装至本地实例。

CI/CD 建议

  1. 一键云端部署将git库的代码复制到了CFS持久化运行和保存变更。
  2. 可以fork 源码库进行二次开发。修改Dockerfile中的git 地址部署二次开发版本。可通过删除CFS中的/var/www/html/uctoo/public/index.php文件进行覆盖安装。
  3. 可在Webshell中 /var/www/html/uctoo/ 目录运行 php think uctoo:install -r 命令重置数据库内容至初始安装。
  4. 产品内置API管理模块,可提供开发测试、持续迭代等基础特性。

运行环境依赖

PHP >= 7.1.0
Mysql >= 5.5.0 (需支持innodb引擎)
PDO PHP Extension
MBstring PHP Extension
CURL PHP Extension
ZIP Extension
Composer

分步骤安装

  1. 安装catchadmin,请参考 https://www.catchadmin.com/ 相关文档
  2. 本项目后端PHP源码地址 https://gitee.com/uctoo/uctoo , 前端VUE源码地址 https://gitee.com/UCT/uctoo-app-server-vue
  3. 此项目依赖于以下扩展https://gitee.com/UCT/think-easywechat ,在项目根目录运行命令 composer require uctoo/think-easywechat:dev-master 安装
  4. 在微信开放平台open.weixin.qq.com 注册认证开发者帐号,创建第三方平台,配置第三方平台参数,其中授权事件接收URL 填写为 https://域名/wechatopen/authevent ,消息与事件接收URL 填写为
https://域名/wechatopen/eventmessage/appid/$APPID$
  1. 在wechatopen插件第三方平台菜单,添加微信第三方平台配置信息,仅需填写appid、appsecret、encodingAesKey、token 4个参数
  2. 在微信开放平台open.weixin.qq.com 提交测试第三方平台,通过测试后提交全网发布
  3. 授权公众号、小程序到此第三方平台,进行增值应用开发。

云原生安装

  1. 可在 https://www.uctoo.com 注册开发者帐号,登录管理后台,通过云开发功能模块,即可采用云原生方式开通和部署一套独立的UCToo运行实例。

docker安装

可参考uctoo-docker项目 https://gitee.com/UCT/uctoo-docker

使用手册

具体请参考 https://www.kancloud.cn/doc_uctoo/manual

开发说明

具体请参考开源版开发手册 https://www.kancloud.cn/doc_uctoo/uctoo_dev 及 本开源项目示例

问题反馈

开发者交流QQ群984748053 更多信息请关注UCToo微信第三方运营平台 https://www.uctoo.com

参考资料:

UCToo 使用文档 https://www.kancloud.cn/doc_uctoo/manual
开发文档 https://www.kancloud.cn/doc_uctoo/uctoo_dev
UCT UI文档 https://uct-1257264070.cos-website.ap-guangzhou.myqcloud.com
演示 https://www.uctoo.com

catchadmin 文档 https://www.catchadmin.com/docs/
演示 https://www.catchadmin.com/

ThinkPHP 文档 https://www.thinkphp.cn

easywechat 文档 https://www.easywechat.com/

微信开放平台 https://open.weixin.qq.com/
微信公众平台 https://mp.weixin.qq.com/
微信支付 https://pay.weixin.qq.com
腾讯云开发 https://cloud.tencent.com/product/tcb

UCTOO开源组织 https://www.uctoo.org/ 筹备中

CNCF 官网 https://www.cncf.io/
项目 https://github.com/cncf

版权信息

UCToo遵循Apache2开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有Copyright © 2014-2021 by UCToo (https://www.uctoo.com)

All rights reserved

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

UCToo是一套云原生分布式SaaS应用开发基础设施。符合SaaS成熟度模型Level5级标准,实现SaaS统一应用实例模板开发规范,采用开源、通用、厂商中立的技术选型。内置众多开发者效率工具,可快速进行SaaS应用的开发和运营,适合作为SaaS平台、产业互联网等产品的起始项目。开发成果可共享,可互联互通,可在UCToo应用市场商业化分发。 展开 收起
PHP
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/gasgas/uctoo.git
git@gitee.com:gasgas/uctoo.git
gasgas
uctoo
uctoo
master

搜索帮助

14c37bed 8189591 565d56ea 8189591