# ferry
**Repository Path**: garrettxia/ferry
## Basic Information
- **Project Name**: ferry
- **Description**: 本系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。
- **Primary Language**: Go
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://fdevops.com:8001/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 696
- **Created**: 2025-12-08
- **Last Updated**: 2025-12-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 基于Gin + Vue + Element UI前后端分离的工单系统
新版工单演示地址(非开源):[http://1.94.48.125:8000/](http://1.94.48.125:8000/)
账号密码:lanyulei / lanyulei
**流程中心**
通过灵活的配置流程、模版等数据,非常快速方便的生成工单流程,通过对流程进行任务绑定,实现流程中的钩子操作,目前支持绑定邮件来通知处理,当然为兼容更多的通知方式,也可以自己写任务脚本来进行任务通知,可根据自己的需求定制。
兼容了多种处理情况,包括串行处理、并行处理以及根据条件判断进行节点跳转。
可通过变量设置处理人,例如:直接负责人、部门负责人、HRBP等变量数据。
**系统管理**
基于casbin的RBAC权限控制,借鉴了go-admin项目的前端权限管理,可以在页面对API、菜单、页面按钮等操作,进行灵活且简单的配置。
[//]: # (演示demo: [http://fdevops.com:8001/#/dashboard](http://fdevops.com:8001/#/dashboard))
[//]: # (```)
[//]: # (账号:admin)
[//]: # (密码:123456)
[//]: # ()
[//]: # (演示demo登陆需要取消ldap验证,就是登陆页面取消ldap的打勾。)
[//]: # (```)
文档: [https://www.fdevops.com/docs/ferry](https://www.fdevops.com/docs/ferry-tutorial-document/introduction)
视频教程(由群内好友<稳定>提供,非常感谢。):
* ferry工单系统需要的软件准备 https://www.bilibili.com/video/BV1sA411s7jE
* ferry源代码下载后第一次运行 https://www.bilibili.com/video/BV1oy4y1v7LR
```
需注意,因有人恶意删除演示数据,将可删除的数据全都删除了,因此演示的Demo上已经将删除操作的隐藏了。
但是直接在Github或者Gitee下载下来的代码是完整的,请放心。
如果总是出现此类删除数据,关闭演示用户的情况的话,可能考虑不在维护demo,仅放置一些项目截图。
请大家一起监督。
```
## 功能介绍
下面对本系统的功能做一个简单介绍。
工单系统相关功能:
- 工单提交申请
- 工单统计
- 多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单)
- 自定义流程
- 自定义模版
- 任务钩子
- 任务管理
- 催办
- 转交
- 手动结单
- 加签
- 多维度处理人,包括(个人,变量(创建者、创建者负责人))
- 排他网关,即根据条件判断进行工单跳转
- 并行网关,即多个节点同时进行审批处理
- 通知提醒(目前仅支持邮件)
- 流程分类管理
权限管理相关功能,使用casbin实现接口权限控制:
- 用户、角色、岗位的增删查改,批量删除,多条件搜索
- 角色、岗位数据导出Excel
- 重置用户密码
- 维护个人信息,上传管理头像,修改当前账户密码
- 部门的增删查改
- 菜单目录、跳转、按钮及API接口的增删查改
- 登陆日志管理
- 左菜单权限控制
- 页面按钮权限控制
- API接口权限控制
## 快速安装部署
### 方式一:一键部署脚本(推荐)
**适用系统:**
- ✅ 阿里云 Linux 3.2104 U12
- ✅ CentOS 7+
- ✅ RHEL 7+
- ✅ Ubuntu 18.04+ / Ubuntu 24.04
- ✅ Debian 10+
**部署步骤:**
1. **克隆项目**
```bash
git clone https://github.com/lanyulei/ferry.git
cd ferry
```
2. **确保 ferry_web 目录存在**
```bash
# 如果 ferry_web 目录不存在,需要单独克隆前端项目
git clone https://github.com/lanyulei/ferry_web.git ferry_web
```
3. **运行一键部署脚本**
```bash
# 添加执行权限
chmod +x deploy.sh
# 使用 root 用户执行(脚本会自动安装 Docker 和 Docker Compose)
sudo ./deploy.sh
```
4. **访问系统**
- 前端地址: `http://服务器IP:8002`
- 默认账户: `admin` / `123456`
- ⚠️ 登录时如启用LDAP,需取消勾选"LDAP登陆"选项
**脚本功能:**
- ✅ 自动检测并安装 Docker 和 Docker Compose
- ✅ 自动配置 Docker 镜像加速(阿里云镜像源)
- ✅ 检查系统环境和必要文件
- ✅ 自动构建 Docker 镜像
- ✅ 自动启动所有服务(MySQL、Redis、Ferry)
- ✅ 自动初始化数据库
- ✅ 显示服务状态和访问信息
**常用命令:**
```bash
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f ferry
# 查看所有服务日志
docker-compose logs -f
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 重新构建并启动
docker-compose up -d --build
# 进入容器调试
docker exec -it ferry sh
# 手动初始化数据库(如果自动初始化失败)
docker exec -it ferry /opt/workflow/ferry/ferry init -c=/opt/workflow/ferry/config/settings.yml
```
**注意事项:**
- ⚠️ 首次部署需要确保 `ferry_web` 目录存在且包含前端源码
- ⚠️ 脚本会自动安装 Docker 和 Docker Compose,需要 root 权限
- ⚠️ 默认数据库密码为 `123456`,生产环境建议修改 `docker-compose.yml` 中的密码
- ⚠️ 默认管理员账户为 `admin/123456`,首次登录后请立即修改密码
- ⚠️ 如果端口 8002 被占用,请先停止占用该端口的服务或修改 `docker-compose.yml` 中的端口配置
### 方式二:手动 Docker Compose 部署
**前提条件:**
- 已安装 Docker 和 Docker Compose
- 项目目录包含 `ferry_web` 前端源码
**部署步骤:**
1. **构建并启动服务**
```bash
docker-compose build --no-cache
docker-compose up -d
```
2. **初始化数据库(首次运行)**
```bash
docker exec -it ferry /opt/workflow/ferry/ferry init -c=/opt/workflow/ferry/config/settings.yml
```
3. **访问系统**
- 前端地址: `http://localhost:8002`
- 默认账户: `admin` / `123456`
### 方式三:本地开发部署
详细文档: [Docker 快速部署 ferry 工单系统](https://www.fdevops.com/docs/ferry-tutorial-document/docker-ferry-install)
## 战略合作
* [VForm 一款高效的Vue 2 / Vue3 的低代码表单可视化设计,一键生成源码,享受更多摸鱼时间](https://vform666.com/vform3.html)
## 特别感谢
* [go-admin # 不错的后台开发框架](https://github.com/go-admin-team/go-admin)
* [vue-element-admin # 不错的前端模版框架](https://github.com/PanJiaChen/vue-element-admin)
* [vue-form-making # 表单设计器,开源版本比较简单,如果有能力的话可以自己进行二次开发 ](https://github.com/GavinZhuLei/vue-form-making.git)
* [wfd-vue # 流程设计器](https://github.com/guozhaolong/wfd-vue)
* [machinery # 任务队列](https://github.com/RichardKnop/machinery.git)
等等...
## 鸣谢
特别感谢 [JetBrains](https://www.jetbrains.com/?from=ferry) 为本开源项目提供免费的 [IntelliJ GoLand](https://www.jetbrains.com/go/?from=ferry) 授权
## License
[MIT](https://github.com/lanyulei/ferry/blob/master/LICENSE)
Copyright (c) 2024 lanyulei