爱速搭百度低代码开发平台

爱速搭介绍

爱速搭是百度智能云推出的低代码开发平台,它灵活性强,对开发者友好,在百度内部大规模使用,有超过 4w 内部页面是基于它制作的,是百度内部中台系统的核心基础设施。

它具备以下功能:

  1. 页面制作
    1. 基于 amis 页面可视化编辑,具备超过 120 种内置组件,对于大部分中后台页面可以做到无需了解前端就能制作。
    2. 支持自定义前端组件,可以通过代码扩充定制组件。
    3. 支持导出前端项目,可以运行在任意前端框架中。
    4. 支持页面模板,可以自定义模板,快速搭建公司内常见页面。
    5. 支持自定义主题,具备 1000+ 细粒度展现控制,可自定义 CSS。
    6. 自适应移动端布局。
  2. 数据模型
    1. 具备数据模型能力,可以直连外部数据库,做到对于简单增删改查需求无需后端。
    2. 支持所有数据库基础字段,并扩展了十几种高级字段类型,并支持对字段的校验和索引设置。
    3. 支持软删除、记录操作时间。
    4. 支持设置数据字段验证。
    5. 支持设置索引规则。
    6. 支持批量导入导出数据。
    7. 支持自动生成基于模型的增删改查页面。
    8. 支持一对一、多对一、一对多、多对多关联关系。
    9. 支持通过 SQL 的方式对数据进行处理,灵活实现各种数据操作功能。
  3. API 对接
    1. 具备 API 对接能力,可以直连外部接口。
    2. 支持百度云 BOS、S3、阿里云 OSS 协议的对象存储对接。
  4. 业务编排
    1. 支持可视化编辑后端逻辑,可以对多个接口进行组合。
    2. 支持 HTTP、SQL 方式获取数据。
    3. 支持并行和串行调用。
    4. 支持循环、分支进行流程控制。
    5. 支持脚本进行自定义扩展。
  5. 业务流程
    1. 权限控制,可以控制每个节点能查看和编辑哪些数据。
    2. 支持动态查找处理人,比如上级。
    3. 流程流转判断、加签、会签。
    4. 支持打回到上个节点或前面某个节点。
    5. 流程通知。
  6. 权限控制
    1. 具备基于角色的细粒度资源控制。
    2. 可以针对页面内组件粒度进行控制,比如某个按钮对某些用户不显示。
    3. 可以对某个页面创建分享链接。
    4. 所有操作日志,所有操作都会记录,便于后续审计。
  7. 多环境
    1. 支持多套环境,相互之间数据隔离,开发时不影响正式版本的使用。
    2. 支持版本管理,可以通过回滚快速还原。
    3. 平台升级不会影响应用已发布版本。
  8. 私有部署
    1. 支持私有部署,不限制实例数,环境只依赖 Docker、MySQL、Redis,安装简单、运维成本低。
    2. 支持对接 oauth 2.0,也可以支持自定义登录协议。
    3. 可以对接自己的组织架构。
  9. 支持 OpenAPI 对系统进行操作。

爱速搭目前的客户有知名的银行及互联网公司,比如「知乎

爱速搭私有部署安装

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

文档:私有部署安装 | 爱速搭

安装docker

sudo apt install docker docker-compose

启动docker

service docker start

看看docker的状态:

service docker status
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; >
     Active: active (running) since Fri 2024-09-13 09:01:49 UTC; 1>
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 110485 (dockerd)
      Tasks: 10
     Memory: 25.1M
        CPU: 1.855s
     CGroup: /system.slice/docker.service
             └─110485 /usr/bin/dockerd -H fd:// --containerd=/run/>

Sep 13 09:01:46 ub12 systemd[1]: Starting Docker Application Conta>

创建aisuda目录,并在目录里面创建两个目录

mkdir aisuda
cd aisuda/

mkdir mysql-data
mkdir redis-data

然后创建 docker-compose.yml文件:

version: '3'
services:
  web:
    image: registry.baidubce.com/aisuda/aisuda:2.3.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:
      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:

      # 默认退出是 爱速搭的退出页,如果配置了,会跳转到对应 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,爱速搭的访问地址是 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

然后使用docker-compose up来启动

docker-compose up

报错:PermissionError

原来是需要用sudo执行:

sudo docker-compose up

启动后报错Error: Unknown database 'aisuda' 。不知道是不是内存啥的不够16G。

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

docker ps
docker exec -it xxx

总结:

现在问题卡在database报错这里。

调试

docker-compose up报错PermissionError

File "/usr/lib/python3/dist-packages/docker/api/client.py", line 221, in _retrieve_server_version

raise DockerException(

docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))

需要用sudo

sudo docker-compose up

启动后报错Error: Unknown database 'aisuda'

web_1 | Got error, gona retry in 5 seconds.

web_1 | Error: Unknown database 'aisuda'

web_1 | [89.299s][info ][gc,start ] GC(25) Pause Young (Allocation Failure)

web_1 | [89.299s][info ][gc,task ] GC(25) Using 2 workers of 4 for evacuation

不知道是不是内存啥的不够16G。

这时候浏览器打开网页:http://192.168.0.13:8090/install

显示:

Opps 出错了

复制代码
Error: Unknown database 'aisuda'
    at Packet.asError (/app/node_modules/mysql2/lib/packets/packet.js:728:17)
    at ClientHandshake.execute (/app/node_modules/mysql2/lib/commands/command.js:29:26)
    at PoolConnection.handlePacket (/app/node_modules/mysql2/lib/connection.js:456:32)
    at PacketParser.onPacket (/app/node_modules/mysql2/lib/connection.js:85:12)
    at PacketParser.executeStart (/app/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/app/node_modules/mysql2/lib/connection.js:92:25)
    at Socket.emit (node:events:390:28)
    at Socket.emit (node:domain:537:15)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:199:23)
    at TCP.callbackTrampoline (node:internal/async_hooks:130:17)

明白了,可能是宿主机里的mysql数据库对aisuda docker里面的数据库造成了干扰。。。。。

相关推荐
hccee21 分钟前
C# IO文件操作
开发语言·c#
hummhumm26 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊36 分钟前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
zmd-zk1 小时前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
好奇的菜鸟1 小时前
Go语言中的引用类型:指针与传递机制
开发语言·后端·golang
Alive~o.01 小时前
Go语言进阶&依赖管理
开发语言·后端·golang
花海少爷1 小时前
第十章 JavaScript的应用课后习题
开发语言·javascript·ecmascript
手握风云-1 小时前
数据结构(Java版)第二期:包装类和泛型
java·开发语言·数据结构
喵叔哟1 小时前
重构代码中引入外部方法和引入本地扩展的区别
java·开发语言·重构
尘浮生2 小时前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea