1 Star 0 Fork 119

chg / 金合技术中台

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


Logo

金合技术中台

于晏啊,你还是改不了你随手star的毛病
现代化的下一代企业级技术中台,简洁、高效、稳定、开放

官网 | 文档 | 在线演示 | 提交Bug

演示环境账号:

  • 平台管理员:admin Security123$%^
  • 租户管理员:iking_admin Security123$%^

Stargazers Forks

Vuejs Vite TypeScript VSCODE

OpenJDK SpringBoot Maven IDEA

目录
  1. 平台概述
  2. 快速开始
  3. 使用说明
  4. 技术路线
  5. 关于我们
  6. 贡献
  7. License
  8. 联系我们

平台概述

界面预览

ASSETS-LOGIN ASSETS-WORKBENCH ASSETS-APPROVE-SUBMIT ASSETS-APPROVE-LIST ASSETS-APPROVE-EXECUTE ASSETS-APPLICATION ASSETS-APPLICATION-PAGE

特性

  • 企业级产品/UI设计,满足各类业务场景需求。
  • 经历我司内部项目生产环境的反复锤炼,确保高效稳定运行。
  • 双技术架构,单体/微服务无缝切换。
  • 双业务架构,小型管理系统可使用后台管理模式,大型业务系统可使用Saas平台模式。
  • 全面的通用能力支撑,系统管理、文件服务、日志审计、任务调度等应有尽有。
  • 完整实现“中国式审批”的各类需求,开箱即用。
  • 高灵活度的消息中心,随心配置模板、多渠道(站内/微信/短信/钉钉)触达。
  • 深度集成第三方组件/平台,包括积木报表、OnlyOffice、KKFile。
  • 支持多种登录方式,包括短信验证码登录、微信扫码登录、微信小程序登录等。
  • 支持多种数据库,包括MySQL、Postgresql、Oracle。
  • 支持多种对象存储服务,包括Minio、腾讯COS、阿里OSS等。
  • ...

技术架构

  • 单体/微服务无缝切换 TechArch

  • 全模块化设计 ModuleArch

系统架构

  • 功能全景 SystemArch
  • 多租户使用流程 TenantFlow

快速开始

准备工作

  1. 确保网络通畅,能够正常访问互联网。条件允许时可开启VPN,加快镜像下载速度。
  2. 安装Docker服务。
    • 设置Yum源。
      yum install -y yum-utils
      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • 安装Docker Engine,containerd,以及Docker Compose。
      yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    • 启动Docker服务并设置为开机自启。
      systemctl start docker
      systemctl enable docker
  3. 创建映射目录。
    mkdir -p /opt/lite/mysql/conf /opt/lite/mysql/data /opt/lite/redis/data /opt/lite/redis/config /opt/lite/minio/data /opt/lite-ui
  4. 任意目录创建docker-compose.yml文件,并写入以下内容。
    version: '3.8'
    services:
      mysql:
        image: mysql:8.3.0
        ports:
          - 3306:3306
        volumes:
          - /opt/lite/mysql/conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf 
          - /opt/lite/mysql/data/:/var/lib/mysql/
        privileged: true
        environment:
          - MYSQL_ROOT_PASSWORD=Abc123++
          - MYSQL_DATABASE=iking_framework
          - TZ=Asia/Shanghai
        restart: always
        container_name: mysql
        command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
          interval: 10s
          timeout: 5s
          start_period: 60s
    
      redis:
        image: redis:7.2.4
        ports:
          - 6379:6379
        volumes:
          - /opt/lite/redis/data:/data
          - /opt/lite/redis/config/redis.conf:/usr/local/etc/redis/redis.conf
        privileged: true
        restart: always
        container_name: redis
        command: redis-server --requirepass Abc123++ --appendonly yes --notify-keyspace-events Ex
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 30s
          timeout: 20s
          start_period: 60s
    
      minio:
        image: minio/minio:RELEASE.2024-01-31T20-20-33Z
        ports:
          - 9000:9000
          - 9090:9090
        volumes:
          - /opt/lite/minio/data:/data
        privileged: true
        environment:
          - MINIO_ROOT_USER=minio
          - MINIO_ROOT_PASSWORD=Abc123++
        restart: always
        container_name: minio
        command: server /data --console-address ":9090" -address ":9000"
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
          interval: 30s
          timeout: 20s
          start_period: 60s
    
      lite:
        image: ikingtech/lite:1.1.2
        ports:
          - 8000:8000
        privileged: true
        environment:
          - SRV_PORT=8000
          - MYSQL_HOST=127.0.0.1
          - MYSQL_PORT=3306
          - MYSQL_SCHEMA_NAME=iking_framework
          - MYSQL_USERNAME=root
          - MYSQL_PASSWORD=Abc123++
          - REDIS_HOST=127.0.0.1
          - REDIS_PORT=6379
          - REDIS_DB=1
          - REDIS_PASSWORD=Abc123++
          - OSS_ENABLED=true
          - OSS_STORAGE_TYPE=AWS_S3
          - OSS_HOST=http://127.0.0.1:9000
          - OSS_ACCESS_KEY=minio
          - OSS_SECRET_KEY=Abc123++
          - OSS_DEFAULT_BUCKET=iking
          - OSS_REGION=us-east-1
        restart: always
        container_name: lite
    
      ui:
        image: ikingtech/lite-ui:1.1.2
        volumes:
          - /opt/lite-ui:/home/nginxWebUI
        privileged: true
        restart: always
        container_name: lite-ui
        command: /bin/bash
        network_mode: "host"

安装

  1. 进入docker-compose.yml文件所在目录,执行启动命令,并等待完成。
    docker compose up -d
  2. 启动完成后,执行以下命令确认所有容器启动成功。
    docker ps -a
  3. 浏览器中输入您的服务器IP地址即可访问平台。

💡 特别说明:

  1. 如果您的运行环境中已安装了数据库/缓存/对象存储服务等组件,您需要从docker-compose.yml文件中删除相应部分。例如,您的环境中已安装了MySQL数据库,那么从docker-compose.yml中移除以下部分的内容:

      mysql:
        image: mysql:8.3.0
        ports:
          - 3306:3306
        volumes:
          - /opt/lite/mysql/conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf 
          - /opt/lite/mysql/data/:/var/lib/mysql/
        privileged: true
        environment:
          - MYSQL_ROOT_PASSWORD=Abc123++
          - MYSQL_DATABASE=iking_framework
          - TZ=Asia/Shanghai
        restart: always
        container_name: mysql
        command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
          interval: 10s
          timeout: 5s
          start_period: 60s

    相应的,您还需要将服务启动时的环境变量进行修改。仍以MySQL为例,您需要将环境变量MYSQL_HOSTMYSQL_PORTMYSQL_SCHEMA_NAMEMYSQL_USERNAMEMYSQL_PASSWORD修改为您的数据库的信息。
    所有环境变量的说明请参考以下列表:

    变量 说明
    SRV_PORT 服务运行端口
    MYSQL_HOST 数据库服务地址
    MYSQL_PORT 数据库服务端口
    MYSQL_SCHEMA_NAME 数据库名,默认iking_framework
    MYSQL_USERNAME 数据库服务用户名
    MYSQL_PASSWORD 数据库服务密码
    REDIS_HOST Redis服务地址
    REDIS_PORT Redis服务端口
    REDIS_DB Redis DB号
    REDIS_PASSWORD Redis密码
    OSS_ENABLED 是否启用文件服务
    OSS_STORAGE_TYPE 对象存储服务类型,目前仅支持AWS_S3类型
    OSS_HOST 对象存储服务地址,格式为http://ip:port
    OSS_ACCESS_KEY 对象存储服务AccessKey
    OSS_SECRET_KEY 对象存储服务SecretKey
    OSS_DEFAULT_BUCKET 默认桶名称
    OSS_REGION 桶所在区域标识
  2. 服务默认使用iking_framework作为数据库名称,请确保您的数据库实例中没有同名的数据库。如果您希望自定义数据库名,请修改docker-compose.yml文件中的相应配置。

  3. 如果您仅需要启动平台服务,无需额外安装数据库/缓存/对象存储服务,则执行以下命令即可。

    • 前端
      docker run -itd --restart=always --name=lite-ui\
       -v /opt/lite-ui:/home/nginxWebUI\
       --privileged=true\
       --net=host\
       ikingtech/lite-ui:1.1.2\
       /bin/bash
    • 后端
      docker run -d --name lite -p 8000:8000\
       -e SRV_PORT=8000\
       -e MYSQL_HOST=${数据库服务地址}\
       -e MYSQL_PORT=${数据库服务端口}\
       -e MYSQL_SCHEMA_NAME=${数据库名称}\
       -e MYSQL_USERNAME=${数据库服务用户名}\
       -e MYSQL_PASSWORD=${数据库服务密码}\
       -e REDIS_HOST=${Redis服务地址}\
       -e REDIS_PORT=${Redis服务端口}\
       -e REDIS_DB=${Redis DB号}\
       -e REDIS_PASSWORD=${Redis服务密码}\
       -e OSS_ENABLED=true\
       -e OSS_STORAGE_TYPE=AWS_S3\
       -e OSS_HOST=${对象存储服务地址,格式为http(s)://ip:port}\
       -e OSS_ACCESS_KEY=${对象存储服务AccessKey}\
       -e OSS_SECRET_KEY=${对象存储服务SecretKey}\
       -e OSS_DEFAULT_BUCKET=${默认桶名称}\
       -e OSS_REGION=${桶所在区域标识}\
       --restart=always\
       ikingtech/lite:1.1.2

使用说明

  1. 使用平台管理员账户(默认admin/Security123$%^)登录系统。
  2. 进入租户管理,创建租户。
  3. 使用租户管理员账户(默认${租户标识}_admin/Security123$%^)登录系统,开始使用平台各项功能。
  4. 如果您不想单独创建租户,可使用平台默认租户(租户标识sys)。
  5. 平台其他各项功能请参考平台说明文档

技术路线

前端

  • vuejs 3.4.3
  • vite 4.5.0
  • element plus 2.4.4
  • pinia 2.1.7
  • vue-router 4.2.5

后端

  • JDK 17
  • Maven 4.0.0
  • Spring Boot 3.1.7
  • Spring Cloud 2022.0.4
  • Spring Cloud Alibaba 2022.0.0.0
  • Mybatis-Plus 3.5.5
  • Redis 7.2
  • MySQL 8.0+/Postgresql 16+/Oracle 11g+12c
  • Minio/Tencent COS/Ali OSS
  • RabbitMQ/RocketMQ
  • Prometheus+Grafana

关于我们

金合技术开发平台是陕西金合信息科技股份有限公司在内部孵化的技术开发平台,致力于减少项目交付在基础环境上消耗的工时,换而言之金合的技术开发平台是为项目交付而生,让项目不需要在底层的功能或环境上再消耗时间。
目前金合技术中台已经支持交付了内外部40+项目,当前版本为首个开源版本,我们迫切的想听到您的改进意见和功能建议,希望更多的开发者可以参与改进平台,助力更多开发者和企业。

贡献

社区力量是开源项目持续发展的唯一动力来源,我们真诚的希望与您一起共建这片学习、交流、成长并且获益的“小宇宙”,您的每一个建议、每一次PR我们都倍感珍惜

如果您对本项目有任何的想法,请您务必留下您的宝贵意见和建议,当然 Talk is cheap, show me the code,我们更欢迎您按照如下方式扩展本项目的功能!

  1. Fork本仓库。
  2. 创建您的功能分支 (git checkout -b feature/awsome-feature)。
  3. 提交您的修改并推送到分支上 (git commit -m 'Add some Awsome Feature' && git push origin feature/awsome-feature)。
  4. 提交PR。

License

本项目基于 Apache License Version 2.0 开源协议,请遵守以下规范。

  • 不得将本项目应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法行为。
  • 使用源代码时请保留源文件中的版权声明和作者信息。
  • 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关。

更多信息请参考项目根目录下的LICENSE文件。

联系我们

技术交流群



帖严 - tieybrain@gmail.com / ty19880929@hotmail.com
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 [2024] 陕西金合信息科技股份有限公司 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.

简介

现代化的下一代企业级技术中台,简洁、高效、稳定、开放,欢迎Star、PR! 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/chgsoft/iking-platform.git
git@gitee.com:chgsoft/iking-platform.git
chgsoft
iking-platform
金合技术中台
master

搜索帮助