form1.cn
Make a little progress every day

启动mochat开源的scrm系统(PHP版)

19th of June 2021 Linux Command 2121

感谢mochat开源他们的srcm系统,官网:https://mo.chat/


第一步,准备一台linux服务器

推荐centos7及以上,服务器最好是纯净的,主要是80、443、3306等端口mochat会使用,如果你本机上已在用这些端口,在安装mochat时就需要去修改它的配置文件。

我们采用mochat官网推荐的安装方法,使用mochat做好的docker-compose直接构建,十分方便


第二步,下载mochat源代码,将两个源代码统一放在一个目录中

mochat源码:https://gitee.com/mochat/mochat?_from=gitee_search

构建容器源码:https://gitee.com/mochat/docker-compose


第三步,安装docker与docker-compose

这个网上有很多教程,你可以去自行搜索安装


第四步,解析三个二级域名到该服务器的IP

1,用于请求api的地址

2,用于访问后台管理页面

3,用来显示侧边栏


第五步,在docker-compose\service\nginx\conf.d找到nginx的配置文件

这个目录将会和nginx中的容器进行映射,修改后的配置文件自动同步到nginx容器中

将域名对应的都配置了,root 目录 和 logs 目录不要更改


第六步,将mochat和docker-compose中所有 .sample 都复制一份为正式文件

比如:.cp docker-compose.sample.yml docker-compose.yml

然后修改docker-compose/.env文件,主要修改以下配置,其它的配置基本不用改

# mochat配置
## mochat.超级管理员手机号
MOCHAT_ADMIN=131****
## mochat.超级管理员密码
MOCHAT_PASSWORD=x*****
## mochat.dashboard域名,不包含http://
DASHBOARD_URL=scrm.form1.com
## mochat.sidebar域名,不包含http://
SIDEBAR_URL=sidebar.form1.com
## mochat.api-server域名,不包含http://
API_SERVER_URL=scrmapi.form1.com
OSS_ACCESS_ID=LT7667u3jAK
OSS_ACCESS_SECRET=Tr4eq1AJHU7yh^&HJmKrEH9a
OSS_BUCKET=mediss
OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com

修改mochat\api-server\.env

## 文件存储类型

FILE_DRIVER=oss

## aliyun-oss

OSS_ACCESS_ID=LTAIfdsdfmu3jAK

OSS_ACCESS_SECRET=Tr4eq1AmsdfsdfsdfsdfKrEH9a

OSS_BUCKET=medidsfcess

OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com

## 其它配置

APP_DOMAIN=http://scrmapi.form1.cn

JS_DOMAIN=http://sidebar.form1.cn


在修改mochat中的后台管理页面和测边栏的.env文件

把域名都修改正确

比如:VUE_APP_API_BASE_URL=http://api.mochat.dev



第七步,在以上步骤都OK的情况下,构建容器

进入docker-compose目录中运行:

docker-compose build

成功后运行:

docker-compose up  # 这条得等一会,你得弄一个screen -S scrm


之后查看容器情况

docker-compose ps

如果出现以下状态,表标环境和系统 已OK

backend       /bin/sh -c sh -c "composer ...   Up       0.0.0.0:9501->9501/tcp
dashboard     docker-entrypoint.sh /bin/ ...   Exit 0
mochat_init   /bin/sh -c sh -c "/tmp/wai ...   Exit 0
mysql         docker-entrypoint.sh mysqld      Up       0.0.0.0:3306->3306/tcp, 33060/tcp
nginx         /docker-entrypoint.sh ngin ...   Up       0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
redis         docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
sidebar       /bin/sh -c sh -c "yarn ins ...   Exit 0


第八步,访问你解析过来的域名,登录系统,按照官网的说明配置 企业微信的各种信息


关于消息存档的配置

1,tenant 表的 server_ips 字段 把信任IP加上 格式:["127.0.0.1"]

2,mochat给的公钥是错的,一定要自己通过私钥在生成一下公钥


如果消息存档不生效,可以在些处测试,注意公钥的版本号是否一致,必要时打印跟踪一下

/datafile/new_mochatscrm/mochat/api-server/vendor/mochat/wework-finance-sdk/src/Provider/AbstractProvider.php


关于手动生成密码

使用下面的命令生成新密码,然后用SQL替换到 user 表里的密码就可以。

php -r "var_dump(password_hash(md5('具体密码' . ".env中的SIMPLE_JWT_SECRET"), PASSWORD_BCRYPT));"


关于本地开发

1,后端开发每次修改代码后需要重新启动服务才可以

2,前端开发:

(1) 全局安装 yarn --  cnpm install yarn -g

(2) 在项目根目录执行 yarn run dev

(3) 开发完成后可执行 yarn run build 将构建的包同步到docker中


参考:https://mochat.wiki/quick-start/install.html#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A6%81%E6%B1%82