提示

时信魔方最新版本是 3.0 ,我们正全力推进 3.0 版本的开发,目前的 2.5、2.7 版本转入维护状态。如果您需要使用其他发行版本,建议您到 时信魔方官方站点 了解详情。

如果您需要的是一款成熟的社交协作产品,可以使用 司派 ,这是一款已经上线的产品。

服务器安装指南

时信魔方团队仅提供支持 64-bit x86 架构的 时信魔方服务器 程序版本,如果您需要其他架构的服务器版本,需要您从源代码编译并构建。

时信魔方的服务器主要由以下几个服务器类型构成:

  • 魔方引擎调度服务器 - 所有魔方终端都与其建立连接,该服务器主要功能是管理各个接入的终端连接。

  • 魔方引擎服务单元服务器 - 与调度服务器直接相连的服务器,是魔方业务功能的处理服务器。

  • 魔方媒体单元服务器 - 进行与音视频等媒体数据流相关的操作的服务器。

  • 魔方控制台服务器 - 便于对魔方各个服务器节点进行管理和配置的辅助程序,可选择性进行安装。

  • 魔方应用服务器 - 魔方提供的基础应用程序的服务器,魔方为开发者预先开发了即时通信应用程序,该服务器就是与各个应用程序配套的服务器程序,可选择性安装。

从构建版本安装

一般的,我们建议使用构建版本进行安装和配置,推荐使用 UbuntuCentOS 进行安装。

  1. 获取构建版本。

    • 下载预构建版本:

      curl -o cube-server-3.0.tar.gz \
          https://static.shixincube.com/cube/prebuild/cube-server-3.0.tar.gz
      
    • 解压安装包:

      tar -xzf cube-server-3.0.tar.gz
      
    • 安装辅助工具:

      • 安装 ImageMagick 软件。

        sudo apt-get install imagemagick
        
    • 安装媒体服务器(可选步骤):

      sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
          gnupg
      
      # Add Kurento repository to Apt
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
      
      source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release
      
      sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
      # Kurento Media Server - Release packages
      deb [arch=amd64] http://ubuntu.openvidu.io/6.16.0 $DISTRIB_CODENAME kms6
      EOF
      
      # Install KMS
      sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
          kurento-media-server
      

      媒体服务器的配置说明请查阅 服务器配置指南 文档。

  2. 配置服务器管理控制台。

    时信魔方控制台默认使用 MySQL 数据库,编辑 cube-server-3.0/console/console.properties 配置文件:

    # console.properties
    
    # DB
    db=mysql
    
    # MySQL config
    # 数据库服务器地址
    mysql.host=127.0.0.1
    # 数据库服务器端口
    mysql.port=3306
    # 数据库 Schema
    mysql.schema=cube_3_console
    # 访问用户名
    mysql.user=cube
    # 访问密码
    mysql.password=shixin_cube_2021
    

    在配置文件里填写您的 MySQL 配置信息。

  3. 配置应用服务器(可选步骤)。

    时信魔方应用服务器默认使用 MySQL 数据库,编辑 cube-server-3.0/server-app/server.properties

    # server.properties
    
    # DB
    db=mysql
    
    # MySQL config
    # 数据库服务器地址
    mysql.host=192.168.10.121
    # 数据库服务器端口
    mysql.port=3306
    # 数据库 Schema
    mysql.schema=cube_3_app
    # 访问用户名
    mysql.user=cube
    # 访问密码
    mysql.password=shixincube
    
    # 跨域源
    http.allowOrigin=http://127.0.0.1:8080
    https.allowOrigin=https://127.0.0.1:8080
    
    # 魔方客户端的配置信息
    cube.address=127.0.0.1
    cube.domain=shixincube.com
    cube.appKey=shixin-cubeteam-opensource-appkey
    

    跨域源请根据您实际部署 Web 应用程序访问时地址和端口进行配置。

    魔方客户端的配置信息是应用程序用于设置魔方引擎时的配置信息,请参考 客户端应用程序 章节了解相关配置信息。

  4. 启动服务器管理控制台。

    按照以下步骤启动控制器台程序。

    cd cube-server-3.0/console
    chmod +x ./start.sh
    ./start.sh
    

    当您看到终端打印以下内容时,说明控制台已经启动:

    Enter "http://Your-Server-IP:7080" in your browser to login Cube Console.
    
    在浏览器中输入 "http://您的服务器IP:7080" 登录 Cube Console 。
    
  5. 启动媒体单元服务器(可选步骤)。

    如果您在 Ubuntu 系统里安装好了 KMS 服务器并且配置好了相关参数,可以执行以下命令启动服务器:

    sudo service kurento-media-server start
    

    需要关闭服务器时,执行以下命令:

    sudo service kurento-media-server stop
    
  6. 启动应用服务器(可选步骤)。

    如果您需要运行时信魔方的应用程序,并配置好的应用服务器,可以执行以下命令启动服务器:

    cd cube-server-3/server-app
    chmod +x ./start.sh
    ./start.sh
    

    需要关闭服务器时,执行以下命令:

    cd cube-server-3/server-app
    chmod +x ./stop.sh
    ./stop.sh
    
  7. 登录控制台,在控制台里启动并配置服务器。

    在浏览器里输入:http://127.0.0.1:7080 登录控制台。

    • 默认用户名:cube

    • 默认密码:shixincube


    时信魔方控制台首页截图

    时信魔方控制台首页截图

    您可以查看 时信魔方控制台使用文档 了解如何使用控制台来管理各个服务器节点。

  8. 使用脚本命令运行服务器。

    您也可以使用脚本命令启动和停止服务器,这样不需要运行控制台。进入 deploy 目录:

    cd deploy
    

    启动服务单元服务器:

    ./start-service.sh
    

    停止服务单元服务器:

    ./stop-service.sh
    

    启动调度服务器:

    ./start-dispatcher.sh
    

    停止调度服务器:

    ./stop-dispatcher.sh
    

我们建议您在控制台里启动或停止时信魔方的服务器,当然,如果您需要进一步了解服务器的架构和集群结构可以查看 时信魔方服务器架构 文档。


从源代码安装

注解

时信魔方代码同时托管在 GiteeGitHub 两个站点,您可以任选其一获取源代码。

  1. 安装前准备

    您需要在您的开发环境中正确安装以下工具,如果您已经配置好了请跳过该步骤:

    1. 安装 Java SE 。建议从 Oracle 官网下载安装包后,按照安装程序引导进行安装。时信魔方需要的最低版本为 Java SE 8

    2. 安装 Apache Ant

      • 适用 Ubuntu 的安装命令:sudo apt-get install ant

      • 适用 CentOS 的安装命令:sudo yum -y install ant

    3. 安装开发与构建工具。

      执行以下命令安装基础构建工具:

      sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
          build-essential \
          ca-certificates \
          cmake \
          git \
          gnupg
      
    4. 安装辅助软件:

      • 安装 ImageMagick 软件。

        sudo apt-get install imagemagick
        
  2. 获取源代码。

    准备目录结构:

    mkdir cube
    cd cube
    

    从代码库检出源代码和依赖库:

    git clone https://gitee.com/shixinhulian/cube-server-dependencies
    git clone https://gitee.com/shixinhulian/cube-server
    git clone https://gitee.com/shixinhulian/cube-media-unit
    

    git clone https://github.com/shixincube/cube-server-dependencies
    git clone https://github.com/shixincube/cube-server
    git clone https://github.com/shixinhulian/cube-media-unit
    
  3. 编译服务器。

    进入 cube-server 目录:

    cd cube-server
    

    编译 Release 版:

    make build
    

    或者编译 Debug 版:

    make build-debug
    

    执行部署命令:

    make install
    

    成功执行部署之后,时信魔方的工程文件将全部部署到 cube-server/deploy 目录下。

    小技巧

    更多的构建命令请使用 make help 查看。

    编译媒体单元( 可选步骤 ):

    • 安装依赖库

      # Add Kurento repository to Apt
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83
      
      source /etc/upstream-release/lsb-release 2>/dev/null || source /etc/lsb-release
      
      sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
      # Kurento Media Server - Nightly packages
      deb [arch=amd64] http://ubuntu.openvidu.io/dev $DISTRIB_CODENAME kms6
      EOF
      
      sudo apt-get update
      
      sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
          kurento-media-server-dev
      
    • 编译 KMS 项目

      cd cube-media-unit/kms
      
      export MAKEFLAGS="-j$(nproc)"
      ./bin/kms-build-run.sh
      
  4. 配置控制台

    配置控制台的数据库。进入 console 目录:

    cd console
    

    编辑配置文件 console.properties

    vi console.properties
    

    配置文件的相关数据库配置项说明如下:

    # DB
    db=mysql
    
    # MySQL Config
    # 数据库服务器地址
    mysql.host=192.168.100.122
    # 数据库服务器端口
    mysql.port=3307
    # 数据库 Schema
    mysql.schema=cube_console
    # 访问用户名
    mysql.user=cube
    # 访问密码
    mysql.password=shixincube
    
  5. 启动控制台

    chmod +x ./start.sh
    ./start.sh
    

    在浏览器里输入:http://127.0.0.1:7080 登录控制台。

    • 默认用户名:cube

    • 默认密码:shixincube


    之后即可在控制台操作服务器程序。

    时信魔方控制台首页截图

    时信魔方控制台首页截图

    您可以查看 时信魔方控制台使用文档 了解如何使用控制台来管理各个服务器节点。

  6. 使用脚本命令运行服务器。

    您也可以使用脚本命令启动和停止服务器,这样不需要运行控制台。进入 deploy 目录:

    cd deploy
    

    启动服务单元服务器:

    ./start-service.sh
    

    停止服务单元服务器:

    ./stop-service.sh
    

    启动调度服务器:

    ./start-dispatcher.sh
    

    停止调度服务器:

    ./stop-dispatcher.sh
    
  7. 配置应用服务器(可选步骤)。

    配置控制台的数据库。进入 server-app 目录:

    cd server-app
    

    编辑配置文件 server.properties

    vi server.properties
    

    配置文件的相关配置项说明如下:

    # server.properties
    
    # DB
    db=mysql
    
    # MySQL config
    # 数据库服务器地址
    mysql.host=192.168.10.121
    # 数据库服务器端口
    mysql.port=3306
    # 数据库 Schema
    mysql.schema=cube_3_app
    # 访问用户名
    mysql.user=cube
    # 访问密码
    mysql.password=shixincube
    
    # 跨域源
    http.allowOrigin=http://127.0.0.1:8080
    https.allowOrigin=https://127.0.0.1:8080
    
    # 魔方客户端的配置信息
    cube.address=127.0.0.1
    cube.domain=shixincube.com
    cube.appKey=shixin-cubeteam-opensource-appkey
    

    跨域源请根据您实际部署 Web 应用程序访问时地址和端口进行配置。

    魔方客户端的配置信息是应用程序用于设置魔方引擎时的配置信息,请参考 客户端应用程序 章节了解相关配置信息。

  8. 启动/停止应用服务器(可选步骤)。

    配置应用服务器后,在 server-app 目录下可执行以下命令启动应用服务器:

    ./start.sh
    

    server-app 目录下可执行以下命令停止应用服务器:

    ./stop.sh
    

Docker 镜像

[TODO - hidden]


检查安装

通过以下命令验证服务器控制台是否正在运行:

$ ps -ef | grep cube.console.container.Main | grep -v 'grep' | awk '{print $2}'
8722

该命令将回显控制台进程的 PID 信息。

如果您没有修改调度服务器、服务单元服务器和媒体单元服务器的端口,可以通过 netstat 命令来检测对应的端口是否已就绪。

调度服务器默认使用 7000 端口,7070 端口和 7077 端口等:

$ netstat -al -p tcp | grep 7000
tcp6       0      0 [::]:7000               [::]:*                  LISTEN      -

服务单元服务器默认使用 6000 端口:

$ netstat -al -p tcp | grep 6000
tcp6       0      0 [::]:6000               [::]:*                  LISTEN      -

媒体单元服务器默认使用 6700 端口:

$ netstat -al -p tcp | grep 6700
tcp6       0      0 [::]:6700               [::]:*                  LISTEN      -

我们也可以使用下面的命令来检测服务器的监听端口是否可用。

检查调度服务器的监听端口是否可用:

$ telnet 127.0.0.1 7000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

检查服务单元服务器的监听端口是否可用:

$ telnet 127.0.0.1 6000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.