私有部署安装
爱速搭支持私有部署,您可以部署在自己的内网,私有部署版本具备 SaaS 版本的所有功能。
环境需求
需要您的机器安装 Docker,推荐版本为18.09及以上,爱速搭可以运行在单机 Docker 环境上,如果需要集群化、高可用,可以使用 Docker 自带的 swarm 或者 k8s。
Docker 的安装建议参考官方文档,可以安装在Centos、Ubuntu、Windows、Mac等系统上。
生产环境推荐使用 Linux 操作系统,最小机器配置建议是 4 核 16G 内存。
安装 Docker
以 Mac 上安装 Docker 为例,打开Mac链接。
下载安装包
 

安装&启动
 
 通过 Docker 桌面可以看到全部为启动状态:
通过 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
首先选择一个目录作为爱速搭的安装目录,在这个目录下创建两个空目录 mysql-data 和 redis-data,然后创建 docker-compose.yml 文件, docker-compose.yml 文件内容如下:
版本变更请前往更新日志
version: '3'
services:
  web:
    image: registry.baidubce.com/aisuda/aisuda:1.9.0
    ports:
      - '8090:8085'
    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:
      # 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:
      # 默认退出是 爱速搭的退出页,如果配置了,会跳转到对应 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:
      # 是否是 https,爱速搭的访问地址是 https 需要增加这个配置项
      # ISUDA_IS_HTTPS: true
      # 下面是自定义组件所需的 npm 本地镜像
      # NPM_REGISTRY: https://registry.npm.taobao.org
      # NPM_SEARCH: https://www.npmjs.com/search/suggestions
  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_PASSWORD、ISUDA_ENCRYPT_KEY。
创建完文件后使用 docker-compose up 命令来启动,如下:

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

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

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

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

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

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

试用 License
如您有私有部署 试用需求,可发送邮件到 zhangxuming01@baidu.com 或 amis@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 服务应该返回用户信息,对于爱速搭来说,最重要的是 email 字段,通过下面参数配置 email 到底是哪个字段
- ISUDA_LDAP_EMAIL_ATTRIBUTE:默认值是 mail,如果 email 字段放email下就改成email
下面两个字段可选,用于获取用户名和昵称
- ISUDA_LDAP_NAME_ATTRIBUTE:返回的用户名字段,默认是 uid,如果不存在就用登录时输入的用户名
- ISUDA_LDAP_NICKNAME_ATTRIBUTE:返回的用户昵称字段,默认是 cn
如何部署在某个目录下?
默认情况下爱速搭需要使用独立域名,如果条件不允许,还可以通过如下环境变量让爱速搭运行在某个目录下,比如下面的配置
ISUDA_CONTEXT_PATH: '/aisuda'
这样就可以通过 /aisuda 这个目录来访问爱速搭平台了
如何在无网环境安装?
首先是 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。
分布式版本
爱速搭支持多实例部署,目前不限制实例数量,需要先装好 mysql 和 redis,然后通过环境变量连到远程的 mysql/redis 节点。
对象存储的安装
爱速搭的文件存储默认放数据库中,数据库不适合放大型文件,因此推荐使用外部文件存储,可以是支持 S3 协议的云存储,或者自己部署兼容 S3 协议的存储服务,下面以 Minio 为例介绍。
使用 Minio 首先需要在平台启动时加下面这个环境变量
然后是安装 Minio,从 官网 下载二进制文件,然后使用如下命令启动:
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server ./data --console-address ":9001"
然后访问 9001 端口,输入前面设置的 root 用户名密码。
进入后先在 Account 中创建一个用户

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

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