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

简介: 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

      目录
      相关文章
      |
      网络协议 NoSQL API
      转转客服IM系统的WebSocket集群架构设计和部署方案
      客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
      806 141
      |
      数据安全/隐私保护 容器 Go
      开源IM即时通讯系统调研
      Lumen IM 是一款企业级开源即时通讯工具,前端采用 Vue3 + Naive UI,后端基于 Go 语言,使用 WebSocket 协议。支持 Docker + Nginx 快速部署,适合私有化环境。功能包括文本、图片、文件消息,内置笔记、群聊及消息历史记录。界面美观、功能完善,适用于企业沟通、团队协作及开发者学习。提供前后端源码,便于快速搭建 IM 系统。
      开源IM即时通讯系统调研
      |
      移动开发 网络协议 小程序
      基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
      RainbowChat是一套基于开源IM即时通讯聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题。RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品。与姊妹产品RainbowTalk和RainbowChat-Web 技术同源,历经考验。
      1052 0
      基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.0版已发布
      |
      移动开发 网络协议 小程序
      鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
      RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
      529 1
      |
      机器学习/深度学习 人工智能 自然语言处理
      从0搭建AI智能客服教程(AI智能客服系统选型和实战指南)
      针对智能客服技术与业务脱节的痛点,合力亿捷通过 NLP、知识图谱及人机协同策略,助企业实现首次解决率超 70%、人力成本降 43%、年省成本超千万。其方案提升制造业问题解决率 40%,投诉转接成功率达 99%,以分场景选型助力超万家企业平衡业务与成本,成行业首选。
      |
      移动开发 缓存 前端开发
      可二次开发的在线客服系统-前后端混合渲染模式
      服务端渲染(SSR)结合API交互,提升首屏加载速度与SEO友好性,适用于混合渲染模式的Web应用。
      292 0
      |
      Kubernetes Go 数据库
      客服系统命令行程序-Cobra 命令行应用入口
      唯一客服系统是基于 Go 语言与 Cobra 框架构建的命令行工具,用于管理在线客服系统。支持启动、安装和停止服务,具备清晰的命令结构和良好的扩展性,便于维护与功能拓展。
      351 0
      |
      前端开发 JavaScript Java
      智能客服系统的技术栈解析-唯一客服系统技术架构优势
      “唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
      557 1
      |
      测试技术 Go
      客服系统程序入口文件解析-唯一客服系统源码开发
      该代码为 Go 语言编写的客服系统命令行程序入口,结构清晰,使用 cmd 包启动业务逻辑,可能基于 cobra 框架实现,具备良好可扩展性与可维护性,适用于服务启动与管理。
      455 69

      热门文章

      最新文章