Skip to main content

私有部署安装

AI速搭支持私有部署,您可以部署在自己的内网,私有部署版本具备 SaaS 版本的所有功能。

环境需求

需要您的机器安装 Docker,推荐版本为18.09及以上,AI速搭可以运行在单机 Docker 环境上,如果需要集群化、高可用,可以使用 Docker 自带的 swarm 或者 k8s。

Docker 的安装建议参考官方文档,可以安装在CentosUbuntuWindowsMac等系统上。

生产环境推荐使用 Linux 操作系统,最小机器配置建议是 4 核 16G 内存。

安装 Docker

以 Mac 上安装 Docker 为例,打开Mac链接。

下载安装包

image image

安装&启动

image image 通过 Docker 桌面可以看到全部为启动状态: image

注意

请注意docker安装目录的磁盘空间大小

单机版本

单机版本依赖 docker-compose,在 Mac 和 Windows 下的 Docker 程序会自带,如果是 Linux 则需要执行以下命令来安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

首先选择一个目录作为AI速搭的安装目录,在这个目录下创建三个空目录 mysql-dataredis-dataaisuda-log,然后创建 docker-compose.yml 文件, docker-compose.yml 文件内容如下:

版本变更请前往更新日志

version: '3'
services:
web:
image: registry.baidubce.com/aisuda/aisuda:2.3.0
ports:
- '8090:8085'
# AI速搭日志挂载到服务器(aisuda-log为平台运行日志,为配合审计需求一般不会主动删除,自行根据需要考虑预留足够空间)
# PS:如果配置了ES,日志可存入ES中
volumes:
- ./aisuda-log:/app/log
environment:
# 数据库用户名
ISUDA_DB_USER: root
# 数据库密码,这个密码需要和下面 mysql 镜像里的一致
ISUDA_DB_PASSWORD: 'Q39sTi0i^9'
ISUDA_DB_NAME: aisuda
ISUDA_DB_HOST: db
ISUDA_DB_PORT: 3306
# 如果数据库时区是 utc 需要开启下面这个
# ISUDA_DB_TIMEZONE: utc

# id 加密密钥,建议修改
ISUDA_HASHID_SALT: 'aisuda'

# 数据库加密密钥,建议修改 PS:长度必须为64位
ISUDA_ENCRYPT_KEY: 'B224AD82C6206D4DD0D49B3A17BD894D8EA2DC671372BA6B270D3B3AD599A45C'

# redis 地址和端口
ISUDA_REDIS_HOST: redis
ISUDA_REDIS_PORT: 6379
# redis key 前缀
# ISUDA_REDIS_PREFIX:
# redis 密码
# ISUDA_REDIS_PASSWORD:
# 是否开启 ready check 默认不开
# ISUDA_REDIS_ENABLE_READY_CHECK
# 是否使用 redis cluster
# ISUDA_REDIS_CLUSTER: 1
# 是否使用 redis sentinel
# ISUDA_REDIS_SENTINEL: 1
# 如果开启 redis cluster 或 sentinel,ISUDA_REDIS_HOST 可以填入多个地址及端口,逗号分割
# ISUDA_REDIS_HOST: 'host1:6379,host2:6379'

# 邮件 smtp 地址,用于发验证码
ISUDA_EMAIL_HOST:
# 邮件 smtp 端口,比如 25
ISUDA_EMAIL_PORT:
# 邮件用户名和密码
ISUDA_EMAIL_USER:
ISUDA_EMAIL_PASS:
# 如果是 465 之类的 ssl 端口,请取消下面的注释
# ISUDA_EMAIL_SECURE: 1
# 邮件显示的发件人地址
ISUDA_EMAIL_FROM: 'xxx@xxx.com'
# 如果服务器是 SSLv3,需要注释掉下面这个
# ISUDA_EMAIL_SSLV3: 1

# 邮件 API,如果配置就优先使用,用于没有 smtp 的场景,细节请参考这篇文档后面的介绍
# ISUDA_EMAIL_API: http://xxx.com/emailapi
# 邮件 API 的签名密钥
# ISUDA_EMAIL_API_PASSWORD:

# license(可选,如果不填则需要在安装时提供)
ISUDA_LICENSE:

# 百度统计(可选)
BAIDU_TONGJI_CODE:

# Google Analytics(可选)
GA_MEASUREMENT_ID:

# 文件存储配置(可选)
# DRIVER 支持 bos 或 s3
ISUDA_FILE_STORAGE_DRIVER:
ISUDA_FILE_STORAGE_REGION:
ISUDA_FILE_STORAGE_BUCKET:
ISUDA_FILE_STORAGE_AK:
ISUDA_FILE_STORAGE_SK:
ISUDA_FILE_STORAGE_ENDPOINT:
# s3 专有,使用路径而不是域名来访问 bucket
# ISUDA_FILE_STORAGE_S3FORCEPATHSTYLE:

# ES 操作日志 和 api 转发日志相关
# es 服务地址
# ISUDA_ES_URL: http://localhost:9200'
# es 服务帐号密码
ISUDA_ES_USERNAME:
ISUDA_ES_PASSWORD:
# 如果是集群模式按如下配置
# ISUDA_ES_CLUSTER: true
# ISUDA_ES_URL: 'http://localhost:9200,http://localhost:9201'

# 索引文件名(可选)
# ISUDA_SITE_LOG_INDEX: suda-log-{{date:YYYY-MM}}

# 是否开启站点日志记录
ISUDA_SITE_LOG_ENABLED:

# 默认 api 转发日志不存储 发送体内容,如果开启了,将会存储 json 和 普通表单数据 内容体
ISUDA_SITE_LOG_SAVE_REQUSET_PAYLOAD:

# 平台级别超级管理员邮箱(如果设置为 password 这就是必填的)
ISUDA_PLATFORM_ADMINISTRATORS: aa@aa.com,bb@bb.com

# 登录相关
# 默认的登录方式,加入配置成 oauth 表示只启用 oauth 登录方式,多个登录方式请用逗号隔开如:password,email,weixin,oauth,ldap
AUTH_ENABLED_LIST: password,email

# 普通用户默认登录密码,在开启 password 登录方式的时候有用 ( 密码配置 如有特殊字符需要加 “单引号”)
ISUDA_LOGIN_DEFAULT_PASSWORD: aisuda2021

# 管理员默认密码,在开启 password 登录方式的时候有用
ISUDA_PLATFORM_ADMINISTRATOR_DEFAULT_PASSWORD: admin2021

# oauth 登录相关

# oauth 授权接口地址
ISUDA_OAUTH_AUTHORIZE_URL:

# oauth token 获取接口地址
ISUDA_OAUTH_TOKEN_URL:

# oauth clientId
ISUDA_OAUTH_CLIENT_ID:

# oauth clientSecret
ISUDA_OAUTH_CLIENT_SECRET:

# oauth scope 默认为 email
ISUDA_OAUTH_SCOPE:

# oauth 获取 用户 profile 的接口地址
ISUDA_OAUTH_INFO_URL:

# 默认为 id, 假如你的 oauth 返回的 profile 中,id 为 user_id 请填写 user_id
ISUDA_OAUTH_ID_FIELD:

# 默认为 name, 假如你的 oauth 返回的 profile 中,用户名为 user_name 请填写 user_name
ISUDA_OAUTH_NAME_FIELD:

# 邮箱地址字段,如果你的 oauth 中返回了邮箱地址,请配置,如果没有可以不配置
ISUDA_OAUTH_EMAIL_FIELD:

# 邮箱后缀,当你的 oauth 没有返回邮箱地址,同时又不想有绑定邮箱这个动作,可以配置这个比如:baidu.com,这样会自动根据用户名拼接个假邮箱地址。
ISUDA_OAUTH_EMAIL_SUFFIX:

# 默认退出是 AI速搭的退出页,如果配置了,会跳转到对应 oauth 的退出页面。
ISUDA_OAUTH_LOGOUT_URL:

# ldap 相关,请看后面的说明
ISUDA_LDAP_URL:
ISUDA_LDAP_BIND_DN:
ISUDA_LDAP_BIND_CREDENTIALS:
ISUDA_LDAP_SEARCH_BASE:
ISUDA_LDAP_SEARCH_FILTER:
ISUDA_LDAP_EMAIL_ATTRIBUTE:
ISUDA_LDAP_NAME_ATTRIBUTE:
ISUDA_LDAP_NICKNAME_ATTRIBUTE:

# 默认不开启,开启后,应用导出将剔除敏感信息,但是意味着导入的时候你还需要额外去补填这些信息
ISUDA_DISABLE_EXPORT_SENSITIVE_INFO:

# 默认不开启,开启后,应用发布的时候,用开发环境权限覆盖运行态资源权限
ISUDA_OVERWRITE_RUNTIME_ACL:

# 默认不开启,开启后,发布环境的权限通过接口配置的接口返回的权限点进行控制
ISUDA_TAKEOVER_RUNTIME_ACL:

# 开启后编辑器中所有图片上传组件都会由图片管理器接管,同时应用级、组织级、平台级均可统一管理图片资源
ISUDA_ENABLE_IMAGE_MANAGE: 'on'

# 是否是 https,AI速搭的访问地址是 https 需要增加这个配置项
# ISUDA_IS_HTTPS: true

# 下面是自定义组件所需的 npm 本地镜像
# NPM_REGISTRY: https://registry.npm.taobao.org
# NPM_SEARCH: https://www.npmjs.com/search/suggestions

# 是否开启匿名登录
# ENABLE_ANONYMOUS_ACCESS: true

db:
image: registry.baidubce.com/aisuda/mysql:8
command:
[
'mysqld',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
'--skip-character-set-client-handshake',
'--default-authentication-plugin=mysql_native_password',
'--max-allowed-packet=1073741824',
'--sort-buffer-size=512K',
'--max-connections=4096'
]
volumes:
- ./mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 'Q39sTi0i^9'
TZ: 'Asia/Shanghai'
security_opt:
- seccomp:unconfined

redis:
image: registry.baidubce.com/aisuda/redis:5
command: ['redis-server', '--appendonly', 'yes']
volumes:
- ./redis-data:/data

建议修改其中的 MYSQL_ROOT_PASSWORDISUDA_ENCRYPT_KEY

创建完文件后使用 docker-compose up 命令来启动,如下: image

然后通过 docker ps 查看 mysql 所在的容器 id,使用 docker exec -it xxx 进入 MySQL 容器。 image

进入 MySQL 容器后使用 mysql -uroot -p'Q39sTi0i^9' 命令访问 MySQL,注意密码改成对应的。 image

然后使用 CREATE DATABASE aisuda CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 命令来创建数据库。 image

通过show databases可以查看当前的数据库。

image

接着访问 http://localhost:8090/install 就可以看到安装界面,按照引导执行。 image image image image

如果确认没问题,可以用 ctrl+c 关闭,然后使用 docker-compose up -d 来后台持续运行。 image

试用 License

如您有私有部署 试用需求,可发送邮件到 zhangxuming01@baidu.comamis@baidu.com

邮箱登录

如果开启了邮箱登录,可以通过接收邮件验证码来登录,但需要配置 SMTP。

密码登录

如果开启了密码登录,管理员初始密码通过环境变量 ISUDA_PLATFORM_ADMINISTRATOR_DEFAULT_PASSWORD 设置。

管理员可以在「组织架构」中添加新成员,普通成员的初始密码是 ISUDA_LOGIN_DEFAULT_PASSWORD,普通成员可以在个人中心修改密码。

管理员可以在组织架构中重置普通用户的密码。

LDAP 登录

配置 ldap 登录首先需要在 AUTH_ENABLED_LIST 里增加 ldap,然后配置 ldap 服务相关的环境变量,目前主要有这些:

  • ISUDA_LDAP_URL:ldap 服务地址,比如 ldap://xxx.com:389
  • ISUDA_LDAP_BIND_DN:ldap 的 bind dn,比如 dc=example,dc=com
  • ISUDA_LDAP_BIND_CREDENTIALS:ldap 的 bind credentials 密码
  • ISUDA_LDAP_SEARCH_FILTER:search filter,比如 (uid={{username}})
  • ISUDA_LDAP_SEARCH_BASE:search base,比如 dc=example,dc=com

接下来是用户信息字段配置,用户登录成功后 ladp 服务应该返回用户信息,对于AI速搭来说,最重要的是 email 字段,通过下面参数配置 email 到底是哪个字段

  • ISUDA_LDAP_EMAIL_ATTRIBUTE:默认值是 mail,如果 email 字段放 email 下就改成 email

下面两个字段可选,用于获取用户名和昵称

  • ISUDA_LDAP_NAME_ATTRIBUTE:返回的用户名字段,默认是 uid,如果不存在就用登录时输入的用户名
  • ISUDA_LDAP_NICKNAME_ATTRIBUTE:返回的用户昵称字段,默认是 cn

如何部署在某个目录下?

默认情况下AI速搭需要使用独立域名,如果条件不允许,还可以通过如下环境变量让AI速搭运行在某个目录下,比如下面的配置

ISUDA_CONTEXT_PATH: '/aisuda'

这样就可以通过 /aisuda 这个目录来访问AI速搭平台了

如何在无网环境安装?

首先是 Docker,Windows 和 Mac 可以通过上面的安装包离线安装,而 Linux 需要参考这里下载二进制文件来安装。

其次是 Docker-Compose,参考文档,主要是在有网环境下,在这里下载对应环境的二进制文件。

接下来需要将镜像也保存为文件,方法是找一台能联网且有 Docker 的机器,运行如下命令:

docker pull registry.baidubce.com/aisuda/aisuda:1.9.0
docker pull registry.baidubce.com/aisuda/mysql:8
docker pull registry.baidubce.com/aisuda/redis:5
docker save -o suda.tar registry.baidubce.com/aisuda/aisuda:1.9.0
docker save -o mysql.tar registry.baidubce.com/aisuda/mysql:8
docker save -o redis.tar registry.baidubce.com/aisuda/redis:5

将这三个文件上传到需要安装的服务器上,执行如下命令:

docker load -i suda.tar
docker load -i mysql.tar
docker load -i redis.tar

同样通过类似的 docker load -i amis.tar 命令来加载。

amis 镜像内部端口是 8888。

分布式版本

AI速搭支持多实例部署,目前不限制实例数量,需要先装好 mysql 和 redis,然后通过环境变量连到远程的 mysql/redis 节点。

对象存储的安装

AI速搭的文件存储默认放数据库中,数据库不适合放大型文件,因此推荐使用外部文件存储,可以是支持 S3 协议的云存储,或者自己部署兼容 S3 协议的存储服务,下面以 Minio 为例介绍。

使用 Minio 首先需要在平台启动时加下面这个环境变量

然后是安装 Minio,从 官网 下载二进制文件,然后使用如下命令启动:

MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server ./data --console-address ":9001"

然后访问 9001 端口,输入前面设置的 root 用户名密码。

进入后先在 Account 中创建一个用户

image

创建完后会显示用户的 Access Key 和 Secret Key,记下它,然后在 Buckets 中创建一个新 Bucket

image

接着在AI速搭的对象存储中将填入前面创建的 ak、sk、bucket,而 Endpoint 默认是 9000 端口,另外需要开启「强制使用目录」功能。

image