收起左侧

飞牛NAS神器!一键部署开源悟空CRM,客户管理+销售跟踪+智能报表全搞定

0
回复
252
查看
[ 复制链接 ]

11

主题

44

回帖

0

牛值

fnOS系统内测组

fnOS1.0上线纪念勋章社区上线纪念勋章

【飞牛NAS神器!一键部署开源悟空CRM,客户管理+销售跟踪+智能报表全搞定】

大家好!今天分享一个超级实用的部署教程——在飞牛NAS上使用Docker Compose一键部署悟空CRM开源版!这可是企业级客户关系管理系统,完全免费开源,功能强大到让你惊喜!

悟空CRM官网地址:https://www.5kcrm.com/crm

开源项目地址:https://github.com/WuKongOpenSource/Wukong_AI_CRM_15

🚀 开源版悟空CRM核心特色功能

📊 全面的客户管理

  • 360°客户视图,完整客户档案管理
  • 客户分级分类,精准客户画像
  • 客户跟进记录,永不丢失商机
  • 客户生命周期全流程管理

💰 强大的销售管理

  • 销售机会管道可视化
  • 销售预测与业绩分析
  • 合同订单全流程管理
  • 回款计划与应收账款跟踪

🔄 智能化工作流

  • 自定义审批流程
  • 任务分配与协同办公
  • 日程提醒与待办事项
  • 工作日志自动生成

📈 数据报表与分析

  • 销售漏斗分析
  • 员工业绩排行榜
  • 客户来源统计
  • *业务数据多维报表

🌐 多端协同

  • PC端完整功能
  • 移动端适配
  • 团队协同协作
  • 权限精细管控

📋 部署要求

  • 至少4GB内存(推荐8GB以获得流畅体验)

  • 20GB以上存储空间

  • 到https://github.com/WuKongOpenSource/Wukong_AI_CRM_15项目地址下载项目文件

    image.png

    把初始化文件下载到NAS

    image.png

🛠 5分钟快速部署步骤

1创建所有必要目录,把项目初始化数据文件放入到对应文件内

image.png

可以登录SSH一键添加目录,也可以新建文件夹。

mkdir -p /vol1/1000/Docker/wukongCRM/{mysql,redis,minio,elasticsearch,wukong,nginx}

2.docker compose一键部署

# Docker Compose 版本
version: '3.8'

# 服务定义
services:
  # MySQL 数据库服务
  mysql:
    image: docker.io/mysql/mysql-server:8.0.32  # 使用官方 MySQL 8.0.32 镜像
    container_name: mysql  # 容器名称
    volumes:
      # 1. 挂载自定义配置文件(注意:直接挂载文件可能产生权限问题)
      - /vol1/1000/Docker/wukongCRM/mysql/my.cnf:/etc/my.cnf  
      # 2. 挂载初始化脚本目录(容器启动时会自动执行该目录下的SQL文件)
      - /vol1/1000/Docker/wukongCRM/mysql:/docker-entrypoint-initdb.d/
      # 3. 数据持久化挂载(将数据库数据保存到宿主机)
      - /vol1/1000/Docker/wukongCRM/mysql/data:/var/lib/mysql
    ports:
      - "53306:3306"  # 修改为五位数端口,避免冲突
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-wukongCrm@2025}  # root密码,支持环境变量
      MYSQL_ROOT_HOST: "%"  # 允许所有主机连接
      TZ: Asia/Shanghai  # 时区设置
      LANG: en_US.UTF-8  # 语言设置
    restart: always  # 总是重启
    command: >
      bash -c "chmod 644 /etc/my.cnf && exec /entrypoint.sh mysqld --lower_case_table_names=1"  # 设置配置文件权限并启动,表名小写
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]  # 健康检查:ping数据库
      interval: 10s  # 检查间隔
      timeout: 30s   # 超时时间
      retries: 10    # 重试次数
      start_period: 180s  # 启动后等待时间
    networks:
      - kaka  # 使用自定义网络

  # Redis 缓存服务
  redis:
    image: docker.io/redis:7.0.4  # 使用 Redis 7.0.4 镜像
    restart: always
    environment:
      REDISCLI_AUTH: ${REDIS_PASSWORD:-123456}  # Redis CLI 认证密码
    volumes:
      - /vol1/1000/Docker/wukongCRM/redis/data:/data  # 数据持久化
    command: redis-server --requirepass ${REDIS_PASSWORD:-123456}  # 启动时设置密码
    ports:
      - "56379:6379"  # 修改为五位数端口
    healthcheck:
      test: ["CMD-SHELL", "redis-cli -a ${REDIS_PASSWORD:-123456} ping | grep -q PONG"]  # 健康检查
      interval: 10s
      timeout: 30s
      retries: 5
      start_period: 10s
    networks:
      - kaka

  # MinIO 对象存储服务
  minio:
    container_name: minio
    restart: always
    image: docker.io/minio/minio:RELEASE.2024-10-02T17-50-41Z  # 特定版本MinIO
    environment:
      MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}  # 访问密钥
      MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin}  # 秘密密钥
      MINIO_DOMAIN: minio  # 域名设置
    volumes:
      - /vol1/1000/Docker/wukongCRM/minio/data:/minio_data  # 存储数据挂载
    command: minio server /minio_data --console-address ":9001"  # 启动命令,包含控制台地址
    ports:
      - "${MINIO_PORT:-59000}:9000"  # API端口改为五位数
      - "${MINIO_CONSOLE_PORT:-59001}:9001"  # 控制台端口改为五位数
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]  # 健康检查
      interval: 30s
      timeout: 20s
      retries: 3
      start_period: 60s
    networks:
      - kaka

  # MinIO 初始化服务(用于创建别名和设置权限)
  minio-init:
    image: docker.io/quay.io/minio/mc:RELEASE.2024-11-21T17-21-54Z  # MinIO客户端
    container_name: minio-init
    depends_on:
      minio:
        condition: service_healthy  # 等待minio服务健康后再启动
    entrypoint: >
      /bin/sh -c "
      sleep 10 && \  # 等待10秒确保minio完全启动
      mc alias set kaka http://minio:9000 minioadmin minioadmin && \  # 设置别名
      mc anonymous set download kaka/wukong-public || true"  # 设置公开桶的下载权限
    networks:
      - kaka
    restart: "no"  # 不重启(一次性任务)

  # Elasticsearch 搜索服务
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.13.4  # 官方ES镜像
    container_name: elasticsearch
    restart: always
    volumes:
      - /vol1/1000/Docker/wukongCRM/elasticsearch/plugins:/usr/share/elasticsearch/plugins  # 插件目录
    environment:
      ELASTIC_PASSWORD: ${ELASTICSEARCH_PASSWORD:-c6oRpADe1SW304zDjqKlNst0}  # 密码
      cluster.name: es-cluster  # 集群名称
      node.name: es0  # 节点名称
      discovery.type: single-node  # 单节点模式
      xpack.license.self_generated.type: basic  # 许可证类型
      xpack.security.enabled: "true"  # 启用安全
      xpack.security.http.ssl.enabled: "false"  # 禁用HTTPS
    ports:
      - ${ELASTICSEARCH_PORT:-59200}:9200  # ES端口改为五位数
    deploy:
      resources:
        limits:
          memory: 2g  # 内存限制
    healthcheck:
      test: ["CMD", "curl", "-s", "http://localhost:9200/_cluster/health?pretty"]  # 集群健康检查
      interval: 30s
      timeout: 10s
      retries: 50
      start_period: 120s
    networks:
      - kaka
    
  # 悟空CRM 主应用服务
  wk_crm:
    image: wuknogcrm-registry.cn-beijing.cr.aliyuncs.com/wukongcrm/wk_crm:20251015  # 私有镜像
    platform: linux/amd64  # 指定平台
    container_name: wk_crm
    restart: always
    volumes:
      - /vol1/1000/Docker/wukongCRM/wukong/logs:/opt/wk_boot/logs  # 日志目录
      - /vol1/1000/Docker/wukongCRM/wukong/config:/opt/wk_boot/config  # 配置目录
    depends_on:
      minio:
        condition: service_healthy  # 依赖所有基础服务健康状态
      redis:
        condition: service_healthy
      elasticsearch:
        condition: service_healthy
      mysql:
        condition: service_healthy
    ports:
      - "58445:8445"  # 主应用端口改为五位数
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8445/ping"]  # 应用健康检查
      interval: 30s
      timeout: 20s
      retries: 3
      start_period: 60s
    environment:
      - LANG=zh_CN.UTF-8  # 中文环境设置
      - LANGUAGE=zh_CN:zh
      - LC_ALL=zh_CN.UTF-8
    networks:
      - kaka

  # Nginx 反向代理服务
  nginx:
    container_name: nginx
    image: docker.io/nginx:latest  # 最新版Nginx
    restart: always
    volumes:
      - /vol1/1000/Docker/wukongCRM/nginx/conf.d:/etc/nginx/conf.d  # 配置文件
      - /vol1/1000/Docker/wukongCRM/nginx/cert:/etc/nginx/cert  # SSL证书
    environment:
      NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_}  # 服务器名称
      NGINX_PORT: ${NGINX_PORT:-80}  # 监听端口
    ports:
      - '58280:80'  # 映射到宿主机五位数端口
    networks:
      - kaka

# 自定义网络配置
networks:
  kaka:
    driver: bridge  # 使用桥接网络模式

以上代码是根据我自己的docker情况部署的,路径是基本NAS知识点。按需调整。


这个 Docker Compose 配置文件定义了一个完整的悟空CRM系统,包含以下核心服务:

MySQL - 关系型数据库 53306:3306

Redis - 缓存服务 56379:6379

MinIO - 对象存储服务 59000:9000

Elasticsearch - 搜索引擎 59200:9200

wk_crm - 主应用服务 58445:8445

Nginx - 反向代理服务器 58280:80

所有服务都通过自定义的 kaka网络进行通信,确保服务间的网络隔离和安全。


🌐 如何访问系统

  • •悟空CRM系统: http://你的NAS_IP:58280
  • •MinIO控制台: http://你的NAS_IP:59001 (账号: minioadmin/minioadmin)
  • •Elasticsearch: http://你的NAS_IP:59200

如果遇到打不开情况下,尝试重启一下Nginx容器,因为我测试过几次这个容器有时候启动会太快导致依赖没跟上,重启一下容器就好了。第一次会让你创建项目,剩下的自己玩。

image.png

image.png

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则