【云原生 | 拓展01】手把手教你搭建ferry开源工单系统

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: erry 是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。.....................

 🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

✒️个人主页:小鹏linux

💊个人社区:小鹏linux(个人社区)欢迎您的加入!image.gif

目录

系统功能介绍

1.准备工作

1.1 关闭防火墙和selinux

2.安装docker

2.1 更新yum索引

2.2 卸载旧版本docker

2.3 安装依赖包

2.4 设置阿里云镜像源

2.5 安装并启动docker

3.docker中部署mysql

3.1 安装启动mysql

3.2 进入mysql实例

4.docker中部署redis

4.1 安装启动mysql

4.2 查看容器是否正常启动

5.部署启动ferry

5.1 获取本机ip

5.2 安装git命令并拉取ferry代码

5.3 修改ferry配置文件

5.4 创建needinit文件

6.启动ferry

6.1 创建ferry容器并启动

6.2 查看容器状态

7.登录工单系统页面

👑👑👑结束语👑👑👑


开源软件ferry是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。

系统功能介绍

工单系统相关功能:

    • 工单提交申请
    • 工单统计
    • 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单)
    • 自定义流程
    • 自定义模版
    • 任务钩子
    • 任务管理
    • 催办
    • 转交
    • 手动结单
    • 加签
    • 多维度处理人,包括(个人,变量 (创建者、创建者负责人))
    • 排他网关,即根据条件判断进行工单跳转
    • 并行网关,即多个节点同时进行审批处理
    • 通知提醒(目前仅支持邮件)
    • 流程分类管理

    权限管理相关功能,使用 casbin 实现接口权限控制:

      • 用户、角色、岗位的增删查改,批量删除,多条件搜索
      • 角色、岗位数据导出 Excel
      • 重置用户密码
      • 维护个人信息,上传管理头像,修改当前账户密码
      • 部门的增删查改
      • 菜单目录、跳转、按钮及 API 接口的增删查改
      • 登陆日志管理
      • 左菜单权限控制
      • 页面按钮权限控制
      • API 接口权限控制

      本次部署环境为CentOS7操作系统

      1.准备工作

      1.1 关闭防火墙和selinux

      [root@xiaopeng ~]# setenforce 0                      #关闭selinux
      [root@xiaopeng ~]# systemctl stop firewalld          #关闭防火墙
      [root@xiaopeng ~]# systemctl disable firewalld        #设置开机不自启

      image.gif

      2.安装docker

      2.1 更新yum索引

      [root@xiaopeng ~]# yum makecache fast

      image.gif

      2.2 卸载旧版本docker

      [root@xiaopeng ~]# yum remove docker \
                        docker-client \
                        docker-client-latest \
                        docker-common \
                        docker-latest \
                        docker-latest-logrotate \
                        docker-logrotate \
                        docker-engine

      image.gif

      2.3 安装依赖包

      [root@xiaopeng ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

      image.gif

      2.4 设置阿里云镜像源

      [root@xiaopeng ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      [root@xiaopeng ~]# ls /etc/yum.repos.d/             #查看有docker-ce.repo生成
      bak  CentOS-7.repo  docker-ce.repo  epel.repo

      image.gif

      2.5 安装并启动docker

      [root@xiaopeng ~]# yum install -y docker-ce             #安装
      [root@xiaopeng ~]# systemctl start docker               #启动docker
      [root@xiaopeng ~]# systemctl disable docker             #设为开机自启动
      [root@xiaopeng ~]# docker version                       #查看docker版本

      image.gif

      3.docker中部署mysql

      3.1 安装启动mysql

      [root@xiaopeng ~]# docker run -d -p3306:3306 --name=mysql5 -e MYSQL_ROOT_PASSWORD=111111 mysql:5   #密码设置为111111

      image.gif

      如下图,镜像下载并完成容器启动,等待即可:

      image.gif

      3.2 进入mysql实例

      [root@xiaopeng ~]# docker exec -it mysql5 bash           #进入mysql容器
      root@df379c1e9abe:/# mysql -uroot -h127.0.0.1 -p111111   #登录mysql
      mysql> create database ferry;                            #创建数据库ferry
      mysql> exit                                              #退出mysql
      root@df379c1e9abe:/# exit                                #退出容器

      image.gif

      4.docker中部署redis

      4.1 安装启动mysql

      [root@xiaopeng ~]# docker run --name=redis6.0  -d -p 6379:6379 redis:6.0

      image.gif

      如下图,镜像下载并完成容器启动,等待即可:

      image.gif

      4.2 查看容器是否正常启动

      [root@xiaopeng ~]# docker ps -a     #STATUS列显示UP状态为容器正常启动,如下图:

      image.gif

      image.gif

      5.部署启动ferry

      5.1 获取本机ip

      [root@xiaopeng ~]# ip a

      image.gif

      5.2 安装git命令并拉取ferry代码

      [root@xiaopeng ~]# yum -y install git
      [root@xiaopeng ~]# git clone https://github.com/lanyulei/ferry.git  #拉取代码成功如下图:

      image.gif

      image.gif

      5.3 修改ferry配置文件

      [root@xiaopeng ~]# cd ferry/
      [root@xiaopeng ferry]# vim config/settings.yml
      找到如下配置:
      database:
          dbtype: mysql
          host: ferry_mysql
          name: ferry
          password: 123456
          port: 3306
          username: root
      做如下修改:
      mysql 配置(更改host 和密码为你自己的):
      host: ferry_mysql -> host: 192.168.0.3
      password: 123456 -> password: 111111
      找到如下配置:
      redis:
          url: redis://ferry_redis:6379
      做如下修改:
      redis 配置(更改host为你自己的):
      url: redis://ferry_redis:6379 -> url: redis://192.168.0.3:6379

      image.gif

      5.4 创建needinit文件

      [root@xiaopeng ferry]# touch config/needinit

      image.gif

      注意:在config 目录新建 needinit 文件, 第一次启动的时候db中没有数据,此时可以通过这命令初始化数据,服务正常启动后再删该文件(以防下次容器启动时候再次初始化)

      6.启动ferry

      6.1 创建ferry容器并启动

      [root@xiaopeng ferry]# docker run -itd --name ferry -v /root/ferry/config:/opt/workflow/ferry/config -p 8002:8002 lanyulei/ferry:1.0.1
      # 命令解释
      # docker run -it -v   宿主机目录绝对路径:容器目录绝对路径 镜像ID或NAME /bin/bash
      # -it   交互式运行容器
      # -d   在后台运行容器,并且打印容器id
      # --name ferry   容器名称为ferry
      # -v    挂载volume数据卷
      # 宿主机目录绝对路径   宿主机中config配置文件目录所在路径。挂载之后容器运行可以将当前目录的配置文件挂载到容器内指定的目录调用
      # -p 8002:8002   端口映射,注意:p小写是将容器的端口映射到宿主机的制定端口,大写是将容器的端口映射到宿主机的随机端口

      image.gif

      若失败可以下载我安装成功后打包下来的配置文件模板直接进行修改 ,配置文件模板

      如下图,镜像下载并完成容器启动,等待即可:

      image.gif

      6.2 查看容器状态

      [root@xiaopeng ferry]# docker ps -a
      # mysql、redis、ferry三个容器状态都为UP则正确,如下图:

      image.gif

      image.gif

      7.登录工单系统页面

      浏览器访问ip:8002即可,如下图:

      image.gif

      输入账号:admin

      输入密码:123456

      登录进入,如图:

      image.gif

      👑👑👑结束语👑👑👑

      image.gif

      目录
      相关文章
      |
      1月前
      |
      存储 网络协议 前端开发
      基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.7版已发布
      Android端主要更新内容: 1)[优化] 优化了首页“消息”列表中单聊类型未正确同步时的收发消息和点击后的处理逻辑; 2)[优化] 优化了首页“消息”列表中同一好友和陌生人会话不能自动合并的问题;
      59 2
      |
      1月前
      |
      存储 自然语言处理 机器人
      实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
      【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
      104 3
      |
      1月前
      |
      移动开发 网络协议 小程序
      基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.1版已发布
      RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题
      57 5
      |
      21天前
      |
      人工智能 自然语言处理 搜索推荐
      选型攻略 | 智能客服系统该怎么选?(好用的智能客服系统推荐)
      智能客服系统的选型需要综合考虑渠道功能、系统性能、客服工作管理、客户管理以及成本效益等因素。目前合力亿捷推出的智能知识库,梳理海量知识,根据不同主题对知识进行分类,使其结构更清晰。
      55 0
      |
      21天前
      |
      人工智能 自然语言处理 安全
      AI技术在智能客服系统中的应用与挑战
      【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。
      |
      1月前
      |
      存储 安全 开发工具
      百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
      本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
      55 3
      |
      1月前
      |
      前端开发 JavaScript PHP
      Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
      Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
      |
      1月前
      |
      人工智能 算法 搜索推荐
      选择智能工单系统的理由,功能与效益分析
      智能工单管理系统利用数字化技术,帮助企业高效接收、分配和解决客户请求,具备多渠道接收、智能分配和自动化处理等功能。通过实时响应、数据分析和协作工具,系统显著提升服务质量和效率,优化客户体验,成为企业提升竞争力的关键工具。Zoho Desk等系统表现尤为突出,支持多种渠道和服务功能,助力企业实现高效管理。
      51 0
      |
      3月前
      |
      数据采集 监控 测试技术
      大型IM稳定性监测实践:手Q客户端性能防劣化系统的建设之路
      本文以iOS端为例,详细分享了手 Q 客户端性能防劣化系统从0到1的构建之路,相信对业界和IM开发者们都有较高的借鉴意义。
      138 2
      |
      1月前
      |
      人工智能 自然语言处理 搜索推荐
      AI技术在智能客服系统中的应用与挑战
      【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
      258 65

      热门文章

      最新文章

      下一篇
      无影云桌面