大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!
开源软件ferry是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。
有什么功能
工单系统相关功能:
工单提交申请
工单统计
多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单)
自定义流程
自定义模版
任务钩子
任务管理
催办
转交
手动结单
加签
多维度处理人,包括(个人,变量 (创建者、创建者负责人))
排他网关,即根据条件判断进行工单跳转
并行网关,即多个节点同时进行审批处理
通知提醒(目前仅支持邮件)
流程分类管理
权限管理相关功能,使用 casbin 实现接口权限控制:
用户、角色、岗位的增删查改,批量删除,多条件搜索
角色、岗位数据导出 Excel
重置用户密码
维护个人信息,上传管理头像,修改当前账户密码
部门的增删查改
菜单目录、跳转、按钮及 API 接口的增删查改
登陆日志管理
左菜单权限控制
页面按钮权限控制
API 接口权限控制前期准备工作
搭建docker环境
搭建docker环境可参照之前文章 centos7.2快速搭建docker
docker部署mysql
拉取并启动mysql容器,密码设置为test,端口为3306
[root@test ~]# docker run -d -p3306:3306 --name=mysql5 -e MYSQL_ROOT_PASSWORD=test mysql:5
登录mysql创建数据库
[root@test ~]# docker exec -it mysql5 bash
root@a7355653c893:/# mysql -uroot -ptest
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.36 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database ferry_test;
Query OK, 1 row affected (0.01 sec)
mysql> exit
Bye
root@a7355653c893:/# exit
exit
[root@test ~]#
docker中部署redis
[root@test ~]# docker run --name=redis6.0 -d -p 6379:6379 redis:6.0
Unable to find image 'redis:6.0' locally
6.0: Pulling from library/redis
a2abf6c4d29d: Pull complete
c7a4e4382001: Pull complete
4044b9ba67c9: Pull complete
2b1fc7c1d01d: Pull complete
956e458715d7: Pull complete
cd2a61b616a9: Pull complete
Digest: sha256:20756751c3382cf4867bef796eeda760e93022ec3decdd9803dea7a4f33f3b4b
Status: Downloaded newer image for redis:6.0
08f6ab60a6230206b33d7b72b95db6803139b7b42fba181f94f17be8c7bb7450
查看容器状态
查看STATUS,为UP即正常
[root@test ~]# docker ps -a
部署ferry
安装git并拉取ferry源码
[root@test ~]# yum -y install git
[root@test ~]# git clone https://github.com/lanyulei/ferry.git
Cloning into 'ferry'...
remote: Enumerating objects: 2729, done.
remote: Counting objects: 100% (660/660), done.
remote: Compressing objects: 100% (263/263), done.
remote: Total 2729 (delta 413), reused 446 (delta 395), pack-reused 2069
Receiving objects: 100% (2729/2729), 8.53 MiB | 14.78 MiB/s, done.
Resolving deltas: 100% (1525/1525), done.
修改ferry配置
[root@test ~]# cd ferry/
[root@test ferry]# vim config/settings.yml
#主要修改mysql的host和password以及数据库名称
database:
dbtype: mysql
host: 192.168.0.183
name: ferry_test
password: test
port: 3306
username: root
#redis的host
redis:
url: redis://192.168.0.183:6379
创建needinit文件
[root@test ferry]# touch config/needinit
注意:在config 目录新建 needinit 文件, 第一次启动的时候db中没有数据,此时可以通过这命令初始化数据,服务正常启动后再删该文件(以防下次容器启动时候再次初始化
创建freey容器并启动
[root@test ~]# docker run -itd --name ferry -v /root/ferry/config:/opt/workflow/ferry/config -p 8002:8002 lanyulei/ferry:1.0.1
Unable to find image 'lanyulei/ferry:1.0.1' locally
1.0.1: Pulling from lanyulei/ferry
59bf1c3509f3: Pull complete
dd7148a8be01: Pull complete
65cd14bd86e4: Pull complete
7aa78b60a44f: Pull complete
853a4cda0901: Pull complete
568c39c57f86: Pull complete
9f411cdb46b8: Pull complete
7c57bbaa26ba: Pull complete
03a1ebb3b05a: Pull complete
b282e453d251: Pull complete
17d249c41c8f: Pull complete
c4ebd785b260: Pull complete
9c780f01f6bf: Pull complete
Digest: sha256:867627252a41ad23c15cb03f8f1c1e88f84ede1d67573732e13a06693f0b203e
Status: Downloaded newer image for lanyulei/ferry:1.0.1
b91679037b40a138713e160ce3a33ea4c4aeb4164d8ce79f5a41c5f40d456dc5
[root@test ~]#
[root@test ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b91679037b40 lanyulei/ferry:1.0.1 "/opt/workflow/ferry…" 7 seconds ago Up 19 seconds ferry
08f6ab60a623 redis:6.0 "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis6.0
a7355653c893 mysql:5 "docker-entrypoint.s…" 15 minutes ago Up 15 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql5
[root@test ~]#
命令解释 docker run -it -v 宿主机目录绝对路径:容器目录绝对路径 镜像ID或NAME /bin/bash
-it 交互式运行容器
-d 在后台运行容器,并且打印容器id --name ferry 容器名称为ferry -v 挂载volume数据卷 宿主机目录绝对路径 宿主机中config配置文件目录所在路径。挂载之后容器运行可以将当前目录的配置文件挂载到容器内指定的目录调用浏览器访问工单系统
浏览器访问http://ip:8002即可
默认账号:admin
默认密码:123456
修改密码
码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注早九晚十二微信公众号,看到留言后会第一时间回复。