Skip to content

安装教程

GargantuaX edited this page Feb 1, 2024 · 2 revisions

概述

由于会话存档服务暂时只支持Linux平台,Windows/MacOS下开发需要借助Docker来起会话存档服务,我们提供了docker-compose.yaml可以一键启动所有依赖服务,但在此之前,您需要安装docker。

服务架构

理解服务架构有助您理解后续配置 服务架构图.png 服务架构# 环境要求 Windows和MacOS平台必须要docker,Linux平台docker可选。我们提供了docker-compose.yaml文件,可以一键启动项目,无需单独安装Mysql和Redis。

  • Go
  • Mysql5.7+,推荐Mysql8
  • Redis
  • 云存储,阿里云OSS,或者腾讯云COS
  • 企业微信账号

安装Go

https://golang.org/dl/

安装Docker

Linux平台使用命令行安装,Windows和MacOS平台推荐安装 Docker Desctop

基于Docker安装

拉取代码

使用命令行或者直接下载都可以 https://github.com/openscrm/api-server

为了简化安装,代码库中已内置编译好的前端文件 我们仅在必要时更新这些编译好的文件,避免git体积膨胀 ​

编译api-server

由于我们默认在docker中运行,所以需要编译Linux版本

Windows编译

set GOOS=linux
go build -o bin/api-server
  • GOOS参数是目标平台配置,跨平台编译才需要带,可以是linux和windows
  • -o 参数指定导出文件位置

Linux编译

export GOOS=linux
go build -o bin/api-server

修改配置文件

我们提供了示例配置conf/config.example.yaml,您需要复制一份,改名为conf/config.yaml

copy conf/config.example.yaml conf/config.yaml

修改conf/config.yaml,其中带*的配置,全部需要改成适合您的。主要配置管理员手机号,应用密钥,云存储配置,企业微信配置

如果要改端口和中间件密码,请把docker/data/下面各中间件配置和docker-compose.yaml里的对应数据也改掉

# 应用基本配置
App:
  Name: openscrm
  # * 运行环境 DEV,TEST,PROD;开发和测试环境会开放调试API,生产环境请使用PROD;
  Env: DEV
  # * 应用秘钥 64位,生成命令:openssl rand -base64 64
  Key: todo
  # * 超级管理员手机号,自动设置此处手机号匹配到的员工为超级管理员权限
  SuperAdminPhone:
    - 13108329522
  # 是否开启Models自动迁移,修改Model定义自动同步Mysql表结构
  AutoMigration: true
 
# API服务配置
Server:
  #debug or release
  RunMode: debug
  # 主服务监听端口
  HttpPort: 9001
  # 会话存档服务监听端口
  MsgArchHttpPort: 9002
  ReadTimeout: 60
  WriteTimeout: 60
  # 会话存档服务访问地址
  MsgArchSrvHost: host.docker.internal
 
# Mysql数据库配置
DB:
  User: root
  Name: open_scrm_demo
  Host: host.docker.internal:9306
  Password: NWVj5IowIGk0dZlBCSF
 
# redis服务器配置
Redis:
  Host: host.docker.internal:9379
  Password: XOvqH8qXoWE4RgFScSZ
  DBNumber: 0
  IdleTimeout: 5
  ReadTimeout: 3
  DialTimeout: 5
 
# 存储配置
Storage:
  # * 存储类型, 可配置aliyun, qcloud;分别对应阿里云OSS, 腾讯云COS
  Type: aliyun
  # * 阿里云OSS相关配置,请使用子账户凭据,且仅授权oss访问权限
  AccessKeyId: todo
  AccessKeySecret: todo
  Endpoint: todo
  Bucket: todo
 
  # * 腾讯云OSS相关配置,请使用子账户凭据,且仅授权cos访问权限
  SecretID:
  SecretKey:
  BucketURL:
 
# 企业微信配置
WeWork:
  # * 企业ID,https://work.weixin.qq.com/wework_admin/frame#profile
  ExtCorpID: ww2d3e2957190c6e4c
  # * 企业微信通讯录API Secret https://work.weixin.qq.com/wework_admin/frame#apps/contactsApi
  ContactSecret: todo
  # * 企业微信客户联系API Secret https://work.weixin.qq.com/wework_admin/frame#customer/analysis
  CustomerSecret: todo
  # * 企业自建主应用ID https://work.weixin.qq.com/wework_admin/frame#apps
  MainAgentID: 10004
  # * 企业自建主应用Secret
  MainAgentSecret: todo
  # * 同步通讯录回调地址的token,客户联系共用此配置,https://work.weixin.qq.com/wework_admin/frame#apps/contactsApi,https://work.weixin.qq.com/wework_admin/frame#customer/analysis
  CallbackToken: todo
  # * 同步通讯录回调地址的AesKey, 客户联系共用此配置
  CallbackAesKey: todo
  # * 会话存档服务私钥,企业微信需开通此功能并设置好对应公钥,https://work.weixin.qq.com/wework_admin/frame#financial/corpEncryptData
  PriKeyPath: /conf/private.key
 
# 延迟队列设置(通常无需改动)
DelayQueue:
  # bucket数量
  BucketSize: 3
  # bucket在redis中的键名, %d必须保留
  BucketName: dq_bucket_%d
  # ready queue在redis中的键名, %s必须保留
  QueueName: dq_queue_%s
  # 调用blpop阻塞超时时间, 单位秒, 必须小于redis.read_timeout, 修改此项, redis.read_timeout需做相应调整
  QueueBlockTimeout: 2

配置企业微信自建应用

进入企业微信应用管理页面 没有自建应用的话请自行创建,注意应用可见范围设置到整个公司。 应用ID配置到config.yaml文件中的WeWork.MainAgentID image.png

配置企业微信回调URL

159b10d7c8c7d71301fb0a265900854 {your_server}/api/v1/callback

配置企业微信授权登录

image.png

image.png

这一步关系到企业微信扫码登录能否正常使用 授权授权回调域为

dashboard.dev.openscrm.cn:9000

dashboard.dev.openscrm.cn 和 sidebar.dev.openscrm.cn已解析到127.0.0.1,不用手动host

启动容器

进入项目主目录 复制一份docker-compose.yaml

docker-compose up 容器启动成功后,打开

http://dashboard.dev.openscrm.cn:9000/

安装完毕

搭建开发环境(可选)

我们提供的Docker镜像,默认是桥接方式,挂在宿主机的端口上的,所以要本地开发调试某个服务,docker-compose里注释掉该服务,本地起起来就可以了,他们的访问地址是一样的。

api-server开发环境

以api-server为例,docker-compose.yaml里注释掉api-server,然后重启docker容器,本地go run main.go 即可启动本地的程序替代掉容器。 Dashboard和Sidebar同理。