私有部署

除了可以使用云端的在线SaaS版本,对于具有一定规模的企业团队,Sugar还支持在企业的内网环境中独立部署,这样可以对接企业内部的数据源,并且支持对接企业的内部账号进行单点登陆,无缝集成您的企业内部办公环境。

私有部署版具有当前SaaS版本的所有功能,并且对空间数目、报表个数、大屏个数不做限制。

License费用

私有部署版本需要购买License授权,License按照购买的账户数(可以登陆Sugar的用户账户数量)、使用时长(按年)进行收费。私有部署版,30账户起售,每人每年3000人民币,目前新品特价3折优惠,并且满50人折上再打9折,满100人折上再打8.5折,不限账户数的License统一为10万/年,现提供以下几种账户数的License购买方案:

  • 30人: 30 * 3000 * 0.3 = 2.7万/年
  • 50人: 50 * 3000 * 0.3 * 0.9 = 4.05万/年
  • 80人: 80 * 3000 * 0.3 * 0.9 = 6.48万/年
  • 100人:100 * 3000 * 0.3 * 0.85 = 7.65万/年
  • 不限账户数: 10万/年

一次性购买5年,我们将额外赠送5年!

购买正式的License或了解详情,请联系我们,QQ群:834706287 ;邮箱:sugar@baidu.com

License到期和续费

购买的License授权到期之后,您私有部署的Sugar将不可用,报表和大屏页面也将不能查看,但是数据不会删除,只要续费获取新的License授权就可以继续使用,之前的数据不会丢失。续费也和上面一样,请联系我们!

申请试用License

在购买正式的License之前,您可以在Sugar SaaS平台上在线申请试用的License,试用的License有效期为30天,每个公司只能申请一次。

您需要使用企业邮箱登陆Sugar SaaS在线版(点击这里登陆),并且只有公司管理员才能申请试用License,当您登陆Sugar之后,可点击这里私有部署License进行License的申请试用:

图片

点击上图的「申请试用License」,即会弹出:

图片

您需要按照现实情况填写公司的名称和公司代码,填写之后不可更改,公司代码在之后的部署安装Sugar时会用到(可以随意填写,一般是公司的英文名或拼音即可),公司名称会展示在您私有部署Sugar的空间广场的左上角,如:

图片

申请成功之后,您就可以获取到试用License的具体信息了:

图片

私有部署的安装说明

部署环境

Sugar的部署,对机器环境要求:

软件环境

  • Docker

需要您的机器安装Docker,推荐版本为v17及以上,Sugar可以直接运行在单机Docker环境上,如果需要集群化、高可用,可以使用Docker自带的swarm或者k8s;Sugar的安装部署过程中需要您对Docker的基础知识有所了解,详见Docker官网

Docker的官方镜像库在国内访问可能会比较慢,可以使用国内的镜像加速docker-cn

  • MySQL

推荐使用MySQL 5.6版本,该MySQL数据库用来存储Sugar的系统数据,MySQL需要您自己安装和运维,并且需要给Sugar创建一个空的数据库如sugarbi(排序规则使用utf8_general_ci);当然,您可以使用Docker来快速安装MySQL,详见Docker MySQL,现提供单机Docker情况下安装启动MySQL并创建sugarbi数据库流程:

图片

上图中主要的命令行(其中lovesugar123即数据库root账户的密码,您可以改成自己想要的密码):

mkdir ~/mysqlData
docker run --name sugar-mysql -p 3306:3306 -v ~/mysqlData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=lovesugar123 -d mysql:5.6
docker run -it --link sugar-mysql:mysql --rm mysql:5.6 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
CREATE DATABASE IF NOT EXISTS `sugarbi` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

对于MySQL,我们建议您进行每天定时备份,防止机器故障导致数据丢失,使用上图的方式,我们已经将MySQL的数据挂载到了~/mysqlData文件夹下。

硬件环境

如果用户数不多(如不超过100人)且不严格要求高可用,单机运行即可,否则视具体情况推荐使用Docker swarm集群方式扩展机器;每台机器的配置建议:内存8G或以上、CPU(4核或以上,如Intel至强E5、酷睿i7或以上)、硬盘(256GB SSD 或以上)

下载

我们提供了两种获取Sugar安装包镜像的方式:

1、Docker Hub

Sugar的镜像已经上传到Docker的官方镜像库,您可以使用以下命令获取Sugar镜像(Sugar目前有两个模块,都需要拉取):

docker pull sugarbi/sugar:1.5.2
docker pull sugarbi/sugar-migration:1.5.2
// 查看刚刚拉取的镜像
docker images

1.5.2是目前Sugar的最新版本,其他的版本可参考这里。此种方式要求您的部署机器能够连接互联网(当然您也可以不必手动pull镜像,在下面的「安装」章节中Docker会自动判断本机的镜像情况从而自动拉取镜像);如果您的部署机器不能直接连接到互联网,可以使用下面的方式。

2、直接在线下载

如果您的部署机器不能连接互联网,您可以在联网的机器上点击这里下载,然后将下载的安装包拷贝到部署机器上,注意:如果您使用swarm来同时部署到多台机器上,需要将下载的安装包文件拷贝到所有部署机器上,并且以下的操作也需要在所有部署机器上执行。

在部署的机器上,进入到您拷贝的安装包的同目录下,

docker load -i ./sugarbi-1.5.2.tar.gz
// 上面的命令会执行数十秒,然后执行以下命令查看刚刚load的镜像
docker images

使用上面的两种方式下载Sugar的安装镜像,在最后执行docker images都能看到如下展示即证明下载成功:

图片

同步Sugar数据库

下载完安装包,要运行Sugar,首先要做的就是要同步Sugar所需要的MySQL数据库结构,这里的数据库就是上面的「部署环境」章节中需要您安装的MySQL。我们将数据库结构的同步也做成了Docker的镜像,上一步下载的安装包中有两个镜像,其中的sugar-migration就是用来做数据库结构的同步。同步数据库结构分两步:

1、新建一个migration-env文件,并用文本编辑器打开,复制以下的内容并填写相应部分:

DB_USERNAME=root
DB_PASSWORD=lovesugar123
DB_NAME=sugarbi
DB_HOSTNAME=填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
DB_PORT=3306

2、在migration-env文件的目录下执行以下命令来启动sugar-migration(如果您使用的swarm集群方式来部署Sugar,也只需要在一台机器上运行一次即可):

docker run -d -p 7776:8581 --name sugar-migration --env-file migration-env sugarbi/sugar-migration:1.5.2

最后在浏览器上访问 http://部署的机器ip:7776 如果是本机部署,即访问 http://127.0.0.1:7776 首次访问大约需要数十秒,请不要刷新浏览器耐心等待一会,如果同步成功将会看到类似下面的结果:

图片

之后如果您多次访问该页面,将会看到这样的成功提示:

图片

运行Sugar

进行该步之前,请务必确认已经进行了上一步的「同步Sugar数据库」。Sugar是基于Docker容器化的运行模式,所以安装也会比较简单,主要是提供相应的配置文件(MySQL连接配置、license配置等),其他基本就是一键启动。Sugar的启动有两种方式,分别对应Docker单机模式和多机集群模式:

一、Docker单机运行

在Docker单机环境下运行Sugar很简单,分两步:

  • 1、新建一个env文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
sugar_can_connect_local_ip=true

# MySQL数据库相关
sugar_db_username=root
sugar_db_password=lovesugar123
sugar_db_database=sugarbi
sugar_db_host=填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
sugar_db_port=3306

# license相关
sugar_company=license的公司代码
sugar_license=具体license

# 登陆形式,支持 demo、email、password、oauth
# 如果是最初步的测试,可以使用demo方式,后面的其他登陆方式的配置都可以不用填写
sugar_login_type=demo

# email登陆模式的配置
sugar_email_host=
sugar_email_port=
sugar_email_username=
sugar_email_password=
sugar_email_from=

# oauth登陆模式的配置
sugar_oauth_authorize_url=
sugar_oauth_token_url=
sugar_oauth_client_id=
sugar_oauth_client_secret=
sugar_oauth_scope=
sugar_oauth_info_url=
sugar_oauth_data_username=
sugar_oauth_data_useremail=
sugar_oauth_email_suffix=

上面每项配置的具体含义详见下一章节运行配置说明

  • 2、在env文件的目录下执行以下命令来启动Sugar

为了能让您方便的看到Sugar的日志,所以我们使用Docker的Volume将日志挂载到宿主机,新建文件夹~/sugar-log(Sugar的运行日志将存贮在这个目录下,当然目录名称您可以随意修改,同步替换下面命令中的即可):

docker run -d -p 8580:8580 --name sugar -v ~/sugar-log:/sugar-app/log --env-file env sugarbi/sugar:1.5.2

最后在浏览器上访问 http://部署的机器ip:8580 如果是本机部署,即访问 http://127.0.0.1:8580

二、swarm集群运行

Docker多机集群模式,我们推荐使用Docker自带的swarm,关于如何使用swarm请参考Docker官方文档。使用swarm部署Sugar分两步:

  • 1、新建一个sugar-compose.yml文件,并用文本编辑器打开,复制以下的内容并填写相应部分:

下面已经将Sugar运行日志挂载到了宿主机的/sugar-log目录下,需要您手动在所有机器上新建该目录,当然您可以使用其他的目录来存储日志。

version: "3.3"

services:
  web:
    image: sugarbi/sugar:1.5.2
    deploy:
      mode: replicated
      # 部署的份数,可多份来提高系统的高可用性
      replicas: 3
      restart_policy:
        condition: on-failure
    ports:
      - "8580:8580"
    volumes:
      - "/sugar-log:/sugar-app/log"
    networks:
      - overlay
    environment:
      sugar_can_connect_local_ip: 'true'

      # MySQL数据库相关
      sugar_db_username: root
      sugar_db_password: lovesugar123
      sugar_db_database: sugarbi
      sugar_db_host: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
      sugar_db_port: 3306

      # license相关
      sugar_company: 
      sugar_license: 

      # 登陆形式,支持 demo、email、password、oauth
      # 如果是最初步的测试,可以使用demo方式,后面的其他登陆方式的配置都可以不用填写
      sugar_login_type: demo
      
      # email登陆模式的配置
      sugar_email_host: 
      sugar_email_port: 
      sugar_email_username: 
      sugar_email_password: 
      sugar_email_from: 

      # oauth登陆模式的配置
      sugar_oauth_authorize_url: 
      sugar_oauth_token_url: 
      sugar_oauth_client_id: 
      sugar_oauth_client_secret: 
      sugar_oauth_scope: 
      sugar_oauth_info_url: 
      sugar_oauth_data_username: 
      sugar_oauth_data_useremail: 
      sugar_oauth_email_suffix: 

networks:
  overlay:

上面每项配置的具体含义详见下一章节运行配置说明

  • 2、在sugar-compose.yml文件的目录下执行以下命令来启动Sugar
docker stack deploy --compose-file sugar-compose.yml sugar

最后在浏览器上访问 http://部署的机器ip:8580 即可看到Sugar的运行页面。

使用swarm时,我们建议使用管理工具:portainer.io。当然,您也可以选择使用k8s来代替swarm,根据上面的配置文件,您可以很容易迁移到k8s上。

运行配置说明

无论是Docker单机还是Docker集群模式运行Sugar,基本都是配置一些env环境变量,下面对这些环境变量配置进行说明:

  • sugar_can_connect_local_ip:用来控制Sugar的数据源中是否能够连接局域网的ip,一般私有部署情况下,配置为true即可,配置false可以让Sugar只能连接公网域名和ip

  • MySQL数据库相关,这块是用来配置Sugar所依赖的MySQL数据库,详见Sugar所需的软件环境

    • sugar_db_username: 用户名
    • sugar_db_password: 密码
    • sugar_db_database: 数据库名称
    • sugar_db_host: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
    • sugar_db_port: 端口号
  • License配置,详见申请试用License

    • sugar_company: 公司代码
    • sugar_license: 详细的License内容(长串字符)
  • 登陆账号相关

    • sugar_login_type: 登陆账号的类型,支持demo、password、email、oauth,下面对这四种登陆形式分别说明
  • 1、demo

sugar_login_type配置为demo表示测试环境,登陆时必须使用企业邮箱,但是验证码不会通过邮件发送,而是直接展示在页面上,用户直接复制页面上展示的验证码即可登陆,如下图:

图片

  • 2、password

sugar_login_type配置为demo表示使用Sugar平台自带的账号体系,用户通过用户名、密码来登陆Sugar,账号可由公司的管理员统一录入。

如果您之前已经使用其他的登陆方式进行了部署并登陆过了Sugar私有版(例如:之前使用demo方式部署并且登陆使用了,即您私有部署的Sugar中已经有账户了),那么直接使用之前登陆的企业邮箱以及默认密码sugar12345即可直接登陆。如果是初次部署,之前还没有任何用户登陆过Sugar私有版,在登陆之前我们需要创建一个默认账户(此账户将会成为公司的管理员),使用浏览器访问 http://部署的机器ip:8580/openapi/createUser?name=*** 即可创建一个默认的公司管理员账户,其中的***需要按照实际情况替换成您的企业邮箱如zhangsan@baidu.com

创建完默认账户后,在登陆时直接使用默认密码sugar12345即可登陆:

图片

默认的公司管理员账户登陆之后,可以在「公司管理」的「用户管理」中来添加其他的用户(添加的其他用户,登陆密码同样是默认的sugar12345):

图片

所有的用户在登陆之后,可点击页面顶部的「个人中心」,然后进入「个人信息管理」来修改登陆密码:

图片

  • 3、email,sugar_login_type配置为email表示使用邮箱发送验证码的方式来登陆,这种方式和Sugar的SaaS在线版一样。这种方式要求您的公司有企业邮箱服务,需要您给Sugar平台配置一个企业邮箱账号,该邮箱账号用来给您的公司员工发送登陆验证码邮件,所以需要您填写配置文件中的这些配置:

    • sugar_email_host: 您的企业邮箱服务器的域名或ip
    • sugar_email_port: 企业邮箱服务器的端口号
    • sugar_email_username: 给Sugar使用的邮箱账户用户名,如zhangsan
    • sugar_email_password: 给Sugar使用的邮箱账户密码
    • sugar_email_from: Sugar发送邮件时的发件人邮箱,一般和邮箱用户名强相关,如zhangsan@baidu.com
  • 4、oauth,sugar_login_type配置为oauth,Sugar支持使用OAuth 2.0的方式对接企业内部账号的单点登陆系统,需要您对配置文件中的以下配置进行填写:

    • sugar_oauth_authorize_url: Sugar向您的Oauth服务端申请认证的URI,如 https://your-authorization-server-host/auth
    • sugar_oauth_token_url: Sugar向您的Oauth服务端获取Access Token的URI,如 https://your-authorization-server-host/token
    • sugar_oauth_client_id: 您的Oauth服务端给Sugar分配的client_id
    • sugar_oauth_client_secret: 您的Oauth服务端给Sugar分配的client_secret
    • sugar_oauth_scope: 授权的范围scope,依赖您的Oauth服务端是否需要,不需要时可以不填
    • sugar_oauth_info_url: 通过认证后,Sugar向您的Oauth服务端获取当前登陆用户详细信息的API,如https://your-authorization-server-host/userinfo
    • sugar_oauth_data_username: 用户详细信息的API返回数据中用来表示用户名的字段名,如name
    • sugar_oauth_data_useremail: 用户详细信息的API返回数据中用来表示用户邮箱的字段名,如email
    • sugar_oauth_email_suffix: 如果用户详细信息的API返回数据中没有邮箱字段,那么我们将默认使用 用户名@${sugaroauthemail_suffix} 方式来拼凑成邮箱,所以需要您配置您公司的企业邮箱后缀,如baidu.com

Sugar使用的是OAuth 2.0的授权码模式,可参考这里了解Oauth 2.0的授权码模式

上面的OAuth 2.0的配置,前五项都是标准的Oauth配置,后四项是用来配置Sugar通过您的Oauth服务端认证后,获取当前登陆用户的详细信息的API以及该API返回的数据字段信息。访问该API时,我们在请求的header头文件中加上了Authorization: Bearer ${access_token}这样的 access_token 信息,并且在API的参数中也加上了,如:https://your-authorization-server-host/userinfo?access_token=${access_token} 该API的返回必须是JSON格式数据,对于最后三项配置我们根据返回JSON的不同格式来做简单的示例:

  • 返回JSON如:{usermail: 'zhangsan@baidu.com', username: 'zhangsan'} 那么最后三项配置为:

    • sugar_oauth_data_username: username
    • sugar_oauth_data_useremail: usermail
    • sugar_oauth_email_suffix:

此时返回的JSON数据中用户的邮箱,所以不需要配置sugar_oauth_email_suffix

  • 返回JSON如:{name: 'zhangsan'} 那么最后三项配置为:

    • sugar_oauth_data_username: name
    • sugar_oauth_data_useremail:
    • sugar_oauth_email_suffix: baidu.com

此时返回的JSON数据中没有用户的邮箱,所以不需要配置sugar_oauth_data_useremail,但是必须要配置sugar_oauth_email_suffix(注意并不是固定的baidu.com,需要根据实际情况替换成您的企业邮箱后缀)

  • 返回JSON如:{email: 'zhangsan@baidu.com'} 那么最后三项配置为:

    • sugar_oauth_data_username:
    • sugar_oauth_data_useremail: email
    • sugar_oauth_email_suffix:

此时返回的JSON数据中只有用户的邮箱,只需要配置邮箱字段名sugar_oauth_data_useremail即可

Sugar的更新升级

您可以查看更新日志来了解Sugar的版本更新具体内容。您在安装部署了Sugar私有版之后,随时都可以下载最新版的安装包并重新部署,我们做了很好的兼容性,能够让您之前制作的所有报表和大屏在最新版上仍然能够正常运行。

每次更新到最新版的Sugar时,注意:一定要再次「同步Sugar数据库」,这样才能运行最新版的Sugar,我们在数据库同步程序中做了兼容,不会丢失您之前的数据(如已经制作好的报表、大屏以及权限设置等所有数据);并且,如果是使用的Docker单机版部署的则需要停止正在运行的container,然后才能启动Sugar。

本页内容