基于华为openEuler部署EspoCRM开源客户关系管理平台【华为根技术】
前言
在数字化转型的浪潮中,客户关系管理(CRM)系统成为了企业提升竞争力的关键因素之一。EspoCRM作为一款开源的CRM解决方案,以其灵活性和强大的功能受到了广泛的关注。基于华为openEuler操作系统部署EspoCRM,不仅可以享受到openEuler提供的高性能、高安全性的运行环境,还能充分利用其对多硬件架构的支持,为企业构建一个稳定可靠的CRM平台。本文将详细介绍如何在openEuler上进行EspoCRM的部署与应用,帮助企业快速搭建起属于自己的客户关系管理系统。
一、相关服务介绍
1.1 openEuler系统介绍
- 简介
openEuler
是华为发起并主导的一个开源操作系统项目,它基于Linux内核开发,致力于为企业级应用提供安全、稳定、可靠的操作环境。自2019年正式开源以来,openEuler迅速吸引了全球众多开发者和技术爱好者的关注,并逐渐形成了一个活跃的开源社区。该系统不仅支持多种处理器架构(如x86、ARM等),而且通过持续的技术创新,在性能优化、安全性增强以及容器化支持等方面展现了显著的优势。
- 主要特点
- 开源性:openEuler遵循开源协议,允许任何个人或组织自由获取、使用、修改及分发系统代码,这极大地促进了技术创新与共享。
- 高性能与稳定性:通过对Linux内核进行深度优化,openEuler能够提供出色的运行效率和稳定性,满足企业级应用场景的需求。
- 安全性:提供了包括安全启动、数据加密在内的多重安全保障措施,确保用户数据的安全性。
- 容器化支持:兼容Docker和Kubernetes等容器技术,便于开发者构建、部署和管理容器化应用。
- 丰富的生态系统:拥有庞大的开发者社区和丰富的软件库,为用户提供广泛的软件支持和服务。
1.2 EspoCRM介绍
EspoCRM 简介:
EspoCRM
是一款免费开源的客户关系管理(CRM)平台,旨在帮助各规模企业高效管理客户信息、销售流程、营销活动及客户支持,提升客户关系维护能力。
主要特点:
- 开源透明度:开放源代码,用户可审查数据处理机制,保障系统透明与安全。
- 高度定制化:支持自定义实体、字段、关系和功能,灵活适配不同业务需求。
- 简洁的用户界面:界面直观美观,操作简单,降低学习成本,提升使用效率。
- REST API 集成:提供强大的 REST API,便于与第三方应用和服务无缝集成。
- 社区支持:拥有活跃的开发者社区,提供持续的技术支持、插件扩展与版本更新。
二、本次实践介绍
2.1 本次实践介绍
1.本次实践环境为个人测试环境,生产环境请谨慎;
2.本次实践主要是在openEuler系统下部署EspoCRM开源客户关系管理平台审核平台。
2.2 本次环境规划
本次环境规划如下所示:
服务器 | HostName | IP地址 | 操作系统 | 内核版本 | 部署项目 | 备注 |
---|---|---|---|---|---|---|
VM虚拟机 | openEuler-server | 192.168.3.83 | openEuler 24.03 (LTS) | 6.6.0-28.0.0.34.oe2403.x86_64 | EspoCRM | —— |
三、本地环境检查
3.1 检查系统版本
检查当前系统版本,当前系统版本为
openEuler 24.03 (LTS)
。
[root@openEuler-server ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
3.2 检查内核版本
检查当前内核版本,如下所示:
[root@openEuler-server ~]# uname -r
6.6.0-28.0.0.34.oe2403.x86_64
3.3 检查本地IP
查看本地IP地址,本次实践本地IP设置为
192.168.3.83/24
。
[root@openEuler-server ~]# ifconfig ens18
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.83 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::be24:11ff:feaa:bfa5 prefixlen 64 scopeid 0x20<link>
ether bc:24:11:aa:bf:a5 txqueuelen 1000 (Ethernet)
RX packets 1267 bytes 134016 (130.8 KiB)
RX errors 0 dropped 64 overruns 0 frame 0
TX packets 321 bytes 36697 (35.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.4 检查Docker环境
本次实践需要提前部署好Docker环境,检查Docker版本如下所示:
[root@openEuler-server ~]# docker -v
Docker version 26.1.3, build b72abbb
四、部署EspoCRM系统
4.1 下载EspoCRM镜像
拉取EspoCRM镜像,镜像名称及版本为:
espocrm/espocrm:8.4.2-apache
。
docker pull espocrm/espocrm:8.4.2-apache
docker pull mysql:8.0
4.2 创建EspoCRM容器
创建部署目录后,按如下方法设置目录权限。
mkdir -p /data/espocrm && cd /data/espocrm
chmod -R 777 /data/espocrm/
本次实践采用 Docker Compose 方式进行部署,在部署目录下创建 docker-compose.yaml 文件,可根据实际需求自定义配置宿主机的端口映射等参数。
vim docker-compose.yaml
version: '3'
services:
mysql:
image: mysql:8.0
container_name: espocrm-mysql
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: espocrm
MYSQL_USER: espocrm
MYSQL_PASSWORD: database_password
volumes:
- ./data:/var/lib/mysql
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-u espocrm", "--password=database_password", "-h", "localhost"]
retries: 3
timeout: 5s
espocrm:
image: espocrm/espocrm:8.4.2-apache
container_name: espocrm-web
environment:
ESPOCRM_DATABASE_PLATFORM: Mysql
ESPOCRM_DATABASE_HOST: mysql
ESPOCRM_DATABASE_USER: espocrm
ESPOCRM_DATABASE_PASSWORD: database_password
ESPOCRM_ADMIN_USERNAME: admin
ESPOCRM_ADMIN_PASSWORD: password
ESPOCRM_SITE_URL: "http://192.168.3.83:9500"
volumes:
- ./web:/var/www/html
restart: always
ports:
- 9500:80
depends_on:
mysql:
condition: service_healthy
espocrm-daemon:
image: espocrm/espocrm:8.4.2-apache
container_name: espocrm-daemon
volumes:
- ./web:/var/www/html
restart: always
entrypoint: docker-daemon.sh
espocrm-websocket:
image: espocrm/espocrm:8.4.2-apache
container_name: espocrm-websocket
environment:
ESPOCRM_CONFIG_USE_WEB_SOCKET: "true"
ESPOCRM_CONFIG_WEB_SOCKET_URL: "ws://192.168.3.83:8081"
ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN: "tcp://*:7777"
ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN: "tcp://espocrm-websocket:7777"
volumes:
- ./web:/var/www/html
restart: always
entrypoint: docker-websocket.sh
ports:
- 8081:8080
🛠️ EspoCRM Docker 环境变量说明
服务 | 环境变量 | 默认值/示例 | 说明 |
---|---|---|---|
mysql (MySQL 数据库) | MYSQL_ROOT_PASSWORD |
root_password |
设置 MySQL 的 root 用户密码。必须设置,否则容器无法启动。 |
MYSQL_DATABASE |
espocrm |
指定容器启动时自动创建的数据库名称。 | |
MYSQL_USER |
espocrm |
创建一个非 root 的数据库用户,用于 EspoCRM 连接。 | |
MYSQL_PASSWORD |
database_password |
上述用户的密码。EspoCRM 将使用此凭据连接数据库。 | |
espocrm (Web 应用) | ESPOCRM_DATABASE_PLATFORM |
Mysql |
指定数据库平台类型,此处为 MySQL。 |
ESPOCRM_DATABASE_HOST |
mysql |
数据库主机地址。在 Docker Compose 中,服务名 mysql 即为容器内网络中的主机名。 |
|
ESPOCRM_DATABASE_USER |
espocrm |
连接数据库的用户名,需与 MySQL 服务中 MYSQL_USER 一致。 |
|
ESPOCRM_DATABASE_PASSWORD |
database_password |
连接数据库的密码,需与 MYSQL_PASSWORD 一致。 |
|
ESPOCRM_ADMIN_USERNAME |
admin |
EspoCRM 系统的管理员用户名。 | |
ESPOCRM_ADMIN_PASSWORD |
password |
EspoCRM 管理员账户的初始密码。建议部署后修改。 | |
ESPOCRM_SITE_URL |
"http://192.168.3.83:9500" |
EspoCRM 实例的外部访问 URL。用于生成邮件链接、WebSocket 连接等。必须正确配置,否则功能异常。 | |
espocrm-websocket (WebSocket 服务) | ESPOCRM_CONFIG_USE_WEB_SOCKET |
"true" |
启用 WebSocket 功能,支持实时通知、聊天等。 |
ESPOCRM_CONFIG_WEB_SOCKET_URL |
"ws://192.168.3.83:8081" |
外部客户端连接 WebSocket 的地址(前端使用)。 | |
ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN |
"tcp://*:7777" |
ZeroMQ 订阅者监听地址(内部服务通信),* 表示监听所有接口。 |
|
ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN |
"tcp://espocrm-websocket:7777" |
ZeroMQ 提交者连接地址,指向本容器自身,用于内部消息队列通信。 |
- 执行以下命令,开始创建EspoCRM容器。
docker compose up -d
4.3 检查EspoCRM容器状态
检查EspoCRM容器状态,确保EspoCRM容器正常启动。
[root@openEuler-server espocrm]# docker compose ps
WARN[0000] /data/espocrm/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
espocrm-daemon espocrm/espocrm:8.4.2-apache "docker-daemon.sh" espocrm-daemon 5 minutes ago Up 4 minutes 80/tcp
espocrm-mysql mysql:8.0 "docker-entrypoint.s…" mysql 5 minutes ago Up 5 minutes (healthy) 3306/tcp, 33060/tcp
espocrm-web espocrm/espocrm:8.4.2-apache "docker-entrypoint.s…" espocrm 5 minutes ago Up 5 minutes 0.0.0.0:9500->80/tcp, :::9500->80/tcp
espocrm-websocket espocrm/espocrm:8.4.2-apache "docker-websocket.sh" espocrm-websocket 5 minutes ago Up 4 minutes 80/tcp, 0.0.0.0:8081->8080/tcp, :::8081->8080/tcp
4.4 检查EspoCRM容器日志
检查EspoCRM容器运行日志
docker compose logs
五、登录EspoCRM首页
5.1 访问EspoCRM初始页
访问地址:http: //IP地址:9500,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
5.2 登录EspoCRM
默认的账号/密码: admin/password,直接登录即可。
六、EspoCRM基本使用
6.1 设置系统语言
右上角进入设置界面——Preferences,选择语言为Simplified Chinese (China),时区选择 Asia/Shanghai,确认保存即可。
6.2 创建客户信息
在客户管理模块,点击“创建客户”,自定义填写客户信息,如下所示:
6.3 创建知识库
在知识库模块中,点击“创建文章”,填写文章名称和内容,保存即可。
浏览知识库中文章内容,如下所示:
七、体验与总结
通过本次实践,我们不仅成功地在华为openEuler操作系统上部署了EspoCRM,还深入体验了这款开源CRM系统的强大功能和灵活配置。整个部署过程简便快捷,得益于openEuler系统的稳定性,确保了EspoCRM能够高效稳定运行。未来,随着业务的发展和技术的进步,我们可以进一步探索EspoCRM与其他企业级应用的集成,以及openEuler系统在更多场景下的应用潜力,助力企业实现更加智能化的客户关系管理。
- 点赞
- 收藏
- 关注作者
评论(0)