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

环境需求

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

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

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

安装 Docker

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

下载安装包

image image

安装&启动

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

单机版本

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

  1. 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
  2. sudo chmod +x /usr/local/bin/docker-compose

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

版本变更请前往更新日志

  1. version: '3'
  2. services:
  3. web:
  4. image: registry.baidubce.com/aisuda/aisuda:1.5.3
  5. ports:
  6. - '8090:8085'
  7. environment:
  8. # 数据库用户名
  9. ISUDA_DB_USER: root
  10. # 数据库密码,这个密码需要和下面 mysql 镜像里的一致
  11. ISUDA_DB_PASSWORD: 'Q39sTi0i^9'
  12. ISUDA_DB_NAME: aisuda
  13. ISUDA_DB_HOST: db
  14. ISUDA_DB_PORT: 3306
  15. # id 加密密钥,建议修改
  16. ISUDA_HASHID_SALT: 'aisuda'
  17. # 数据库加密密钥,建议修改
  18. ISUDA_ENCRYPT_KEY: 'B224AD82C6206D4DD0D49B3A17BD894D8EA2DC671372BA6B270D3B3AD599A45C'
  19. # redis 地址和端口
  20. ISUDA_REDIS_HOST: redis
  21. ISUDA_REDIS_PORT: 6379
  22. # ISUDA_REDIS_PASSWORD redis 密码,
  23. # ISUDA_REDIS_ENABLE_READY_CHECK 是否开启 ready check 默认不开
  24. # 邮件 smtp 地址,用于发验证码
  25. ISUDA_EMAIL_HOST:
  26. # 邮件 smtp 端口,比如 25
  27. ISUDA_EMAIL_PORT:
  28. # 邮件用户名和密码
  29. ISUDA_EMAIL_USER:
  30. ISUDA_EMAIL_PASS:
  31. # 如果是 465 之类的 ssl 端口,请取消下面的注释
  32. # ISUDA_EMAIL_SECURE: 1
  33. # 邮件显示的发件人地址
  34. ISUDA_EMAIL_FROM: 'xxx@xxx.com'
  35. # 邮件 API,如果配置就优先使用,用于没有 smtp 的场景,细节请参考这篇文档后面的介绍
  36. # ISUDA_EMAIL_API: http://xxx.com/emailapi
  37. # 邮件 API 的签名密钥
  38. # ISUDA_EMAIL_API_PASSWORD:
  39. # license(可选,如果不填则需要在安装时提供)
  40. ISUDA_LICENSE:
  41. # 百度统计(可选)
  42. BAIDU_TONGJI_CODE:
  43. # Google Analytics(可选)
  44. GA_MEASUREMENT_ID:
  45. # 文件存储配置(可选)
  46. # DRIVER 支持 bos 或 s3
  47. ISUDA_FILE_STORAGE_DRIVER:
  48. ISUDA_FILE_STORAGE_REGION:
  49. ISUDA_FILE_STORAGE_BUCKET:
  50. ISUDA_FILE_STORAGE_AK:
  51. ISUDA_FILE_STORAGE_SK:
  52. # s3 专有,使用路径而不是域名来访问 bucket
  53. # ISUDA_FILE_STORAGE_S3FORCEPATHSTYLE:
  54. # ES 操作日志 和 api 转发日志相关
  55. # es 服务地址
  56. ISUDA_ES_URL:
  57. # es 服务帐号密码
  58. ISUDA_ES_USERNAME:
  59. ISUDA_ES_PASSWORD:
  60. # 索引文件名(可选)
  61. # ISUDA_SITE_LOG_INDEX: suda-log-{{date:YYYY-MM}}
  62. # 是否开启站点日志记录
  63. ISUDA_SITE_LOG_ENABLED:
  64. # 默认 api 转发日志不存储 发送体内容,如果开启了,将会存储 json 和 普通表单数据 内容体
  65. ISUDA_SITE_LOG_SAVE_REQUSET_PAYLOAD:
  66. # 平台级别超级管理员邮箱(如果设置为 password 这就是必填的)
  67. ISUDA_PLATFORM_ADMINISTRATORS: aa@aa.com,bb@bb.com
  68. # 登录相关
  69. # 默认的登录方式,加入配置成 oauth 表示只启用 oauth 登录方式,多个登录方式请用逗号隔开如:password,email,weixin,oauth,ldap
  70. AUTH_ENABLED_LIST: password,email
  71. # 普通用户默认登录密码,在开启 password 登录方式的时候有用
  72. ISUDA_LOGIN_DEFAULT_PASSWORD: aisuda2021
  73. # 管理员默认密码,在开启 password 登录方式的时候有用
  74. ISUDA_PLATFORM_ADMINISTRATOR_DEFAULT_PASSWORD: admin2021
  75. # oauth 登录相关
  76. # oauth 授权接口地址
  77. ISUDA_OAUTH_AUTHORIZE_URL:
  78. # oauth token 获取接口地址
  79. ISUDA_OAUTH_TOKEN_URL:
  80. # oauth clientId
  81. ISUDA_OAUTH_CLIENT_ID:
  82. # oauth clientSecret
  83. ISUDA_OAUTH_CLIENT_SECRET:
  84. # oauth scope 默认为 email
  85. ISUDA_OAUTH_SCOPE:
  86. # oauth 获取 用户 profile 的接口地址
  87. ISUDA_OAUTH_INFO_URL:
  88. # 默认为 id, 假如你的 oauth 返回的 profile 中,id 为 user_id 请填写 user_id
  89. ISUDA_OAUTH_ID_FIELD:
  90. # 默认为 name, 假如你的 oauth 返回的 profile 中,用户名为 user_name 请填写 user_name
  91. ISUDA_OAUTH_NAME_FIELD:
  92. # 邮箱地址字段,如果你的 oauth 中返回了邮箱地址,请配置,如果没有可以不配置
  93. ISUDA_OAUTH_EMAIL_FIELD:
  94. # 邮箱后缀,当你的 oauth 没有返回邮箱地址,同时又不想有绑定邮箱这个动作,可以配置这个比如:baidu.com,这样会自动根据用户名拼接个假邮箱地址。
  95. ISUDA_OAUTH_EMAIL_SUFFIX:
  96. # 默认退出是 爱速搭的退出页,如果配置了,会跳转到对应 oauth 的退出页面。
  97. ISUDA_OAUTH_LOGOUT_URL:
  98. # ldap 相关,请看后面的说明
  99. ISUDA_LDAP_URL:
  100. ISUDA_LDAP_BIND_DN:
  101. ISUDA_LDAP_BIND_CREDENTIALS:
  102. ISUDA_LDAP_SEARCH_BASE:
  103. ISUDA_LDAP_SEARCH_FILTER:
  104. ISUDA_LDAP_EMAIL_ATTRIBUTE:
  105. ISUDA_LDAP_NAME_ATTRIBUTE:
  106. ISUDA_LDAP_NICKNAME_ATTRIBUTE:
  107. # 默认不开启,开启后,应用导出将剔除敏感信息,但是意味着导入的时候你还需要额外去补填这些信息
  108. ISUDA_DISABLE_EXPORT_SENSITIVE_INFO:
  109. # 默认不开启,开启后,应用发布的时候,用开发环境权限覆盖运行态资源权限
  110. ISUDA_OVERWRITE_RUNTIME_ACL:
  111. # 默认不开启,开启后,发布环境的权限通过接口配置的接口返回的权限点进行控制
  112. ISUDA_TAKEOVER_RUNTIME_ACL:
  113. # 是否是 https,爱速搭的访问地址是 https 需要增加这个配置项
  114. # ISUDA_IS_HTTPS: true
  115. # 下面是自定义组件所需的 npm 本地镜像
  116. # NPM_REGISTRY: https://registry.npm.taobao.org
  117. # NPM_SEARCH: https://www.npmjs.com/search/suggestions
  118. db:
  119. image: registry.baidubce.com/aisuda/mysql:8
  120. command:
  121. [
  122. 'mysqld',
  123. '--character-set-server=utf8mb4',
  124. '--collation-server=utf8mb4_unicode_ci',
  125. '--skip-character-set-client-handshake',
  126. '--default-authentication-plugin=mysql_native_password',
  127. '--max-allowed-packet=1073741824',
  128. '--sort-buffer-size=512K',
  129. '--max-connections=4096'
  130. ]
  131. volumes:
  132. - ./mysql-data:/var/lib/mysql
  133. environment:
  134. MYSQL_ROOT_PASSWORD: 'Q39sTi0i^9'
  135. security_opt:
  136. - seccomp:unconfined
  137. redis:
  138. image: registry.baidubce.com/aisuda/redis:5
  139. command: ['redis-server', '--appendonly', 'yes']
  140. volumes:
  141. - ./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

可以试用到 2022 年 6 月的 license。

  1. BEE0crzxMVPzH2nBt7LkwYmSUMRtiNmkdhYnDGdJl+rQxNTwAIPMW+COKG5MvdfNZuRpuKSK0FGVcPVU2FaPtO+N+lqzC4W386FmdHDRilCW3ida/W1OTYyeVvreZaspRrigwp8BWfUeuO19yAOETnfUM6d2HRz337OEKfaOBH0slJwo34bAgq2zhmR9hi5a4ClznAJytBsvOqPmtgvKWWI39ssnuwo3/yWlRguhtdwlEQwpUIeqk5qwiB4Y6v31

邮箱登录

如果开启了邮箱登录,可以通过接收邮件验证码来登录,但需要配置 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

如何部署在某个目录下?

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

  1. ISUDA_CONTEXT_PATH: '/aisuda'

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

如何在无网环境安装?

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

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

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

  1. docker pull registry.baidubce.com/aisuda/aisuda:1.5.3
  2. docker pull registry.baidubce.com/aisuda/mysql:8
  3. docker pull registry.baidubce.com/aisuda/redis:5
  4. docker save -o suda.tar registry.baidubce.com/aisuda/aisuda:1.5.3
  5. docker save -o mysql.tar registry.baidubce.com/aisuda/mysql:8
  6. docker save -o redis.tar registry.baidubce.com/aisuda/redis:5

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

  1. docker load -i suda.tar
  2. docker load -i mysql.tar
  3. docker load -i redis.tar

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

amis 镜像内部端口是 8888。

分布式版本

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

无 Docker 环境下的安装

参考这里

后续版本升级

如果有版本升级,需要先停服务,运行 ./node_modules/.bin/pm2 kill,然后清空目录,复制新的爱速搭版本。

对象存储的安装

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

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

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

  1. 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

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

image