• Ferry工单平台部署


    简介

    官网: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

    后端采用go语言部署

    # 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 &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    config/settings.yaml配置介绍

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    前端vue使用nginx代理

    # 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配置,根据业务自行调整即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
  • 相关阅读:
    JavaWeb学习(4)注解案例:简单的测试框架
    威锋VL211是USB 3.1 Gen1集线器控制器,完全符合USB 3.1 Gen1规范
    [非线性控制理论]8_三种鲁棒控制器的比较
    C语言——判断1~100中的奇数
    如何用Postman实现自动化测试(含视频讲解)
    Java:实现动态数组类算法(附完整源码)
    关于Highcharts图表的用法总结
    yaml-cpp开源库使用
    如何让本地局域网IP端口映射到域名
    Vue 路由懒加载-问题记录
  • 原文地址:https://blog.csdn.net/qq_16240085/article/details/125502792