官网:https://www.fdevops.com/docs/ferry-tutorial-document
工作流创建指引:https://www.fdevops.com/docs/ferry-tutorial-document/work-order/create-new-process
平台是由go语言开发的,整体而言工单流程这块可以使用,UI也比较漂亮。
任务管理:
添加shell/python脚本需要主要首行添加解释器才能执行脚本,否则报错
shell:#!/bin/bash
python: #!/usr/bin/python3
任务管理–脚本存放路径:
/data/ferry/static/scripts
文件/图片上传目录,与用户头像存储:
/data/ferry/static/uploadfile
# 1. 拉取代码,
git clone https://gitee.com/yllan/ferry.git
# 2. 进入工作路径
cd ferry
# 3. 交叉编译(centos)
env GOOS=linux GOARCH=amd64 go build
更多交叉编译内容,请访问 https://www.fdevops.com/2020/03/08/go-locale-configuration
# 4. config目录上传到项目根路径下,并确认配置信息是否正确
vim config/settings.yml
1). 修改为自己的数据库信息
2). 修改为自己的邮件服务器地址
其他的根据情况来修改调整
# 4. 创建日志路径及静态文件经历
mkdir -p logs static/uploadfile static/scripts static/template
# 5. 将本地项目下static/template目录下的所有文件上传的到,服务器对应的项目目录下static/template
# 6. 连接数据库,并创建数据库(5.7版本以上,因为使用了json数据类型)
create database ferry charset 'utf8mb4';
# 7. 初始化数据
./ferry init -c=config/settings.yml
# 8. 启动程序,推荐通过"进程管理工具"进行启动维护
nohup ./ferry server -c=config/settings.yml > /dev/null 2>&1 &
script: # 任务脚本存放路径,实现原理是前端填写脚本直接创建文件到该目录,不可能支持多节点
path: ./static/scripts
settings:
application: # server相关配置
domain: localhost:8002
host: 0.0.0.0
ishttps: false
mode: dev
name: ferry-test
port: "8002"
readtimeout: 1
writertimeout: 2
database: # 数据库配置
dbtype: mysql
host: 127.0.0.1
name: ferry
password: ferry@2020
port: 3306
username: ferry
domain: # 平台url配置。目前看源码,主要是用来邮件通知工单url跳转用的。
gethost: 1
url: localhost:9527
email: # email相关配置
alias: ferry
host: smtp.163.com
pass: your password
port: 465
user: fdevops@163.com
gorm: # go orm相关配置参数,可能需要优化
logmode: 0
maxidleconn: 0
maxopenconn: 20000
jwt: # jwt加密secret,生产环境可以修改
secret: ferry
timeout: 86400
ldap: # ldap相关配置
anonymousquery: 0
basedn: dc=fdevops,dc=com
bindpwd: 123456
binduserdn: admin
host: localhost
port: 389
tls: 0
userfield: uid
log: # 日志相关配置
compress: 1
consolestdout: 1
filestdout: 0
level: debug
localtime: 1
maxage: 30
maxbackups: 300
maxsize: 10240
path: ./logs/ferry.log # 该路径配置好叻,但是二进制启动情况下没有往里写入。
redis: # redis配置
url: redis://ferry123456@127.0.0.1:6379
ssl:
key: keystring
pem: temp/pem.pem
# 1. 拉取代码:
git clone https://gitee.com/yllan/ferry_web.git
# 2. 进入工作路径
cd ferry_web
# 3. 安装依赖
npm config set registry https://registry.npm.taobao.org
npm install
# 若npm install安装失败,可尝试使用一下命令安装
npm install --unsafe-perm
# 4. 修改 .env.production 文件
# base api
VUE_APP_BASE_API = 'http://10.18.255.76:8002' # 修改为您自己的域名
# 5. 编译
npm run build:prod
# 6. nginx配置,根据业务自行调整即可
server {
listen 80; # 监听端口
server_name workorder.wisers.com.cn;
#charset koi8-r;
access_log /logs/nginx/ferry_access.log main;
error_log /logs/nginx/ferry_error.log;
location ^~ / { # 这行很重要!!!原来不是模糊匹配,url经常丢,导致页面404等奇怪现象偶尔发生
root /data/ferry/web;
index index.html index.htm; #目录内的默认打开文件,如果没有匹配到index.html,则搜索index.htm,依次类推
}
#ssl配置省略
location /api {
# rewrite ^.+api/?(.*)$ /$1 break;
proxy_pass http://10.18.255.76:8002; #node api server 即需要代理的IP地址
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 登陆
location /login {
proxy_pass http://10.18.255.76:8002; #node api server 即需要代理的IP地址
proxy_redirect off;
proxy_ignore_client_abort on;
proxy_max_temp_file_size 256m;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 32k;
proxy_temp_file_write_size 64k;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 刷新token
location /refresh_token {
proxy_pass http://10.18.255.76:8002; #node api server 即需要代理的IP地址
proxy_set_header Host $host:$server_port;
}
# 接口地址
location /swagger {
proxy_pass http://10.18.255.76:8002; #node api server 即需要代理的IP地址
proxy_set_header Host $host:$server_port;
}
# 后端静态文件路径
location /static/uploadfile {
proxy_pass http://10.18.255.76:8002; #node api server 即需要代理的IP地址
proxy_set_header Host $host:$server_port;
}
#error_page 404 /404.html; #对错误页面404.html 做了定向配置
# redirect server error pages to the static page /50x.html
#将服务器错误页面重定向到静态页面/50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}