春松客服部署-程序员宅基地

技术标签: 项目分享  java  intellij-idea  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fEWZETaq-1628470395423)(file:///C:\Users\student\AppData\Local\Temp\ksohtml25096\wps1.jpg)]

如何在Linux服务器上安装

https://www.cnblogs.com/kingsonfu/p/11576797.html

docker

1、首先得是64位的系统,内核版本大于3.10。用root用户操作

内核版本查看指令

uname -r

2、卸载旧版本(如果以前安装过旧版本的话)
yum remove docker
docker-common
docker-selinux
docker-engine

3、安装依赖的软件包
yum install -y yum-utils
device-mapper-persistent-data
lvm2

4、设置yum源
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo

5.1、查看docker版本列表

yum list docker-ce --showduplicates | sort -r

5.2、安装最新版docker

yum install -y docker-ce

5.3、安装指定版本docker(这里举例安装版本为 17.09.0.ce)

yum install -y docker-ce-17.09.0.ce

6、启动docker

systemctl start docker.service

7、查看docker版本并验证是否安装成功(有client和server即表示安装成功)

docker version

安装docker-compose

sudo curl -L “https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

另一方法

wget https://github.com/docker/compose/releases/download/1.24.0/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m) -O /usr/local/bin/docker-compose

Centos 为例搭建 Git 服务器。

https://www.runoob.com/git/git-server.html

部署GitLab

docker 部署git

https://www.cnblogs.com/zuxing/articles/9329152.html

服务器部署

Samurais edited this page 12 days ago · 14 revisions

春松客服部署方案

单服务器部署

使用Docker和Docker compose的方式,适合体验春松客服、开发和测试春松客服。

项目 说明
操作系统 Linux (CentOS 7.x, Ubuntu 14.x等)
Docker 版本 Docker version 1.13.x 及以上
Docker Compose 版本 version 1.23.x 及以上
防火墙端口 8035, 8036
其他软件 git
内存 >= 8GB
CPU颗数 >= 2
硬盘 >= 20GB

git clone https://github.com/chatopera/cosin.git

cd cosin

cp sample.env .env # 使用文本编辑器打开 .env 文件,并按照需求需改配置

· 配置项

KEY 默认值 说明
COMPOSE_FILE docker-compose.yml 服务编排描述文件,保持默认值
COMPOSE_PROJECT_NAME cskefu 服务实例的容器前缀,可以用其它字符串
MYSQL_PORT 8037 MySQL数据库映射到宿主机器使用的端口
REDIS_PORT 8041 Redis映射到宿主机器的端口
ES_PORT1 8039 ElasticSearch RestAPI 映射到宿主机器的端口
ES_PORT2 8040 ElasticSearch 服务发现端口映射到宿主机器的端口
CC_WEB_PORT 8035 春松客服 Web服务地址映射到宿主机器的端口
CC_SOCKET_PORT 8036 春松客服 SocketIO服务映射到宿主机器的端口
ACTIVEMQ_PORT1 8051 ActiveMQ 端口
ACTIVEMQ_PORT2 8052 ActiveMQ 端口
ACTIVEMQ_PORT2 8053 ActiveMQ 端口
DB_PASSWD 123456 数据库密码,设置到MySQL, Redis, ActiveMQ
LOG_LEVEL INFO 日志级别,可使用 WARN, ERROR, INFO, DEBUG

以上配置中,端口的各默认值需要保证在宿主机器上还没有被占用;数据库的密码尽量复杂;CC_WEB_PORTCC_SOCKET_PORT这两个值尽量不要变更;生产环境下LOG_LEVEL使用至少WARN的级别

· 安全组

如果使用云主机,要考虑到不同云服务提供商的安全组设置,允许8035和8036端口下行。

· 启动服务

cd cosin # 进入下载后的文件夹

docker-compose pull # 拉取镜像

docker-compose up -d contact-center # 启动服务

然后,从浏览器打开 http://YOUR_IP:CC_WEB_PORT/ 访问服务。 默认管理员账号: admin 密码: admin1234

其他命令

· 查看服务状态

docker-compose ps

· 查看服务日志

docker-compose logs -f contact-center

· 关闭服务

docker-compose down

· 重启服务

docker-compose restart

机器人插件的导入

cd cosin

cd public/plugins

cd chatbot

./scripts/install.sh

卸载插件

./scripts/uninstall.sh

外呼系统插件导入

春松客服:开发环境

Samurais edited this page 26 days ago · 23 revisions

本文档主要是介绍如何完成春松客服开发环境的搭建。

目录

依赖

· Git

· Java 8+

· Maven 3+

· IntelliJ IDEAEclipse

· Docker 18+

· Docker compose 1.22+

· MySQL管理客户端 Navicat for MySQL

修改maven2配置

确保在pom.xml中存在如下的maven库。

在内存在:

​ chatopera

​ Chatopera Inc.

​ https://nexus.chatopera.com/repository/maven-public

​ true

​ true

配置文件的示例见 pom.xml

如配置后不能下载,请参考配置文件

下载代码

git clone https://github.com/chatopera/cosin.git

数据库

在源码中,有默认使用docker-compose启动服务的描述文件 docker-compose.yml,用于快速准备开发环境。

Elasticsearch

春松客服依赖Elasticsearch服务,如果没有Elasticsearch服务,可以用下面的方式创建。

cd cosin

docker-compose up -d elasticsearch

Elasticsearch的配置项在application.properties是

spring.data.elasticsearch.cluster-name=elasticsearch

spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300

将cluster-nodes配置为开发服务地址,默认为"YOUR_IP:9300"

ActiveMQ

春松客服依赖ActiveMQ服务,如果没有ActiveMQ服务,可以用下面的方式创建。

cd cosin

docker-compose up -d activemq

ActiveMQ的配置项在application.properties是

spring.activemq.broker-url=tcp://localhost:61616

spring.activemq.user=admin

spring.activemq.password=admin

spring.activemq.pool.enabled=true

spring.activemq.pool.max-connections=50

将以上值修改为ActiveMQ的实际地址和密码。

MySQL

春松客服依赖MySQL服务,如果没有MySQL服务,可以用下面的方式创建。

cd cosin

docker-compose up -d mysql

在第一次执行这个命令时,mysql容器会自动创建contactcenter数据库并导入相关的表,因为该容器初始化时加载了contact-center/config/sql/cskefu-MySQL-slim.sql文件。

连接MySQL服务

使用docker-compose启动的服务

IP 用户名 密码 端口
localhost root 123456 8037

MySQL****数据字典

在线浏览数据字典

Redis

春松客服依赖Redis服务,如果没有Redis服务,可以用下面的方式创建。

docker-compose up -d redis

Redis启动后就可以,不需要其他操作。

安装插件

春松客服的一些定制化需求是通过插件的形式发布的,插件让非通用需求和定制化开发的功能的源码与基础代码分离。一些插件是付费的,一些插件是免费的,比如机器人客服插件就是免费开源的。

插件的安装和源码参考:https://github.com/chatopera/cosin/tree/osc/public/plugins

生成项目描述

文件目录介绍

目录 说明
_m2 用于Dockerfile中,构建镜像
admin 各种脚本
app 源代码
config 数据库文件
data 数据库数据
logs 日志

春松客服是基于Java开发到,使用Maven维护项目声明周期。使用Maven命令,生成项目,方便导入到IDE中。

Eclipse

cd cosin

./admin/gen-eclipse.sh

IntelliJ IDEA

cd cosin

./admin/gen-idea.sh

配置文件

春松客服是基于spring boot release 1.5.9 开发,配置文件是

cosin/contact-center/app/src/main/resources/application.properties

数据库连接等其他信息,参考该文件,如果需要覆盖这些值,在开发过程中,很常见,可以有以下两个方式:1)使用application-dev.properties;2)使用环境变量。

使用 application-dev.properties 覆盖默认配置

有两种方式修改默认的配置,一种是用环境变量+properties文件。

1(application-dev.properties)

web.upload-path=/Users/zhang/Desktop/cosin/contact-center/data

spring.data.elasticsearch.cluster-nodes=127.0.0.1:8040

在这里插入图片描述

spring.datasource.url=jdbc:mysql://localhost:3306/cosinee?useUnicode=true&characterEncoding=UTF-8

spring.datasource.username=root

spring.datasource.password=123456

spring.redis.host=127.0.0.1

# Redis服务器连接端口

spring.redis.port=8041

# Redis服务器连接密码(默认为空)

spring.redis.password=123456

# ActiveMQ

spring.activemq.broker-url=tcp://localhost:8052

spring.activemq.user=admin

spring.activemq.password=123456

cskefu.settings.webim.visitor-separate=true

· 设置环境变量

SPRING_PROFILES_ACTIVE=dev

· 创建application-dev.properties

touch contact-center/app/src/main/resources/application.properties

内容如下:

application-dev.properties

web.upload-path=C:/Users/Administrator/Desktop/cosins/data <—上传地址–>**


spring.data.elasticsearch.cluster-nodes=47.108.51.69:8040


spring.datasource.url=jdbc:mysql://47.108.51.69:8037/cosinee?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456


spring.redis.host=47.108.51.69


spring.redis.port=8041
# Redis服务器连接密码(默认为空)*
spring.redis.password=123456*


spring.activemq.broker-url=tcp://47.108.51.69:8052
spring.activemq.user=admin
spring.activemq.password=123456


**cskefu.setings.webim.visitor-separate=trur

在这里插入图片描述

# MySQL

spring.datasource.url=jdbc:mysql://192.168.2.217:7111/cosinee?useUnicode=true&characterEncoding=UTF-8

spring.datasource.username=root

spring.datasource.password=123456

spring.redis.host=192.168.2.217

在这里插入图片描述

# Redis服务器连接端口

spring.redis.port=7114

# Redis服务器连接密码(默认为空)

spring.redis.password=123456

# ActiveMQ

spring.activemq.broker-url=tcp://192.168.2.217:9007

spring.activemq.user=admin

spring.activemq.password=123456

此处可以覆盖application.properties中的任何值。

使用环境变量覆盖默认配置

同时,配置信息也可以通过环境变量方式映射,并覆盖application.properties中等配置,其映射方式为propery的键转为大写同时.和-转为_。部分环境变量:

SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/contactcenter?useUnicode=true&characterEncoding=UTF-8

SPRING_DATASOURCE_USERNAME=root

SPRING_DATASOURCE_PASSWORD=123456

并且,环境变量的值优先级高于properties文件。

导入项目到集成开发工具

以IDEA为例,导入

配置执行**/**调试

配置运行方式为Spring,应用为 com.chatopera.cc.app.Application

配置环境变量

在这里插入图片描述

执行**/**调试

点击"执行"或"调试",服务启动,然后访问 http://localhost:8035 确定服务正常运行了。

用户名:admin 密码:admin1234

热更新

在开发过程中,修改了代码,更新正在以 调试 模式运行服务,点击"执行旁边的锤子"。

更新成功后,提示

另外, 调试 模式下,也支持断点调试。

部署机器人插件

如果用Windows使用gitbash执行命令

以管理员的身份执行

Redis测试

https://www.cnblogs.com/mazhichu/p/12144539.html

*Https部署*

*Caddy*

创建目录(在root目录下)

$ mkdir -p caddy/{conf,logs,www}

$ cd caddy

目录结构为个人习惯,可以按照自己的习惯配置

配置Caddyfile

$ vi conf/Caddyfile

:80 {

log stdout

errors stdout

proxy / contact-center:8035 {

​ # 传递请求头

​ transparent

}

# 代理WebScoket

proxy /socket.io contact-center:8036 {

​ transparent

​ # WebScoket 支持

​ websocket

}

}

www.???.net {

gzip

root /opt/www

timeouts 30s

log /opt/logs/access.log

proxy /other localhost:8080

proxy /more localhost:8081 localhost:8082 #负载均衡

}

以上是在配置公网域名后的配置,还没有配置域名?那直接用 IP 就行,如下

192.168.1.2:80 192.168.1.2:443 {

gzip

root /opt/www

tls self_signed #自动签名,很重要

timeouts 30s

log /opt/logs/access.log

proxy /other localhost:8080

}

相信很多人会和我一样,caddy是在 虚拟机 上部署,但是访问却在物理机上,如果按照网上的一些配置文档,随便编写一个域名,就会无法访问,不在同一个环境了,物理机上输入自定义的域名是不可能解析出ip访问到你的虚拟机的

————————————————

caddy:

image: abiosoft/caddy:latest

container_name: caddy

restart: always

environment:

- TZ=Asia/Shanghai

- agree

- [email protected]

volumes:

- ./caddy/conf/Caddyfile:/etc/Caddyfile

- ./caddy/.caddy:/root/.caddy

- ./caddy/logs:/opt/logs

- ./caddy/www:/opt/www

ports:

- 80:80

- 443:443

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44724703/article/details/119530216

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签