当前位置: 首页 > news >正文

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

爱速搭介绍

爱速搭是百度智能云推出的低代码开发平台,它灵活性强,对开发者友好,在百度内部大规模使用,有超过 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 EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; >Active: active (running) since Fri 2024-09-13 09:01:49 UTC; 1>
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 110485 (dockerd)Tasks: 10Memory: 25.1MCPU: 1.855sCGroup: /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.0ports:- '8090:8085'environment:# 数据库用户名ISUDA_DB_USER: root# 数据库密码,这个密码需要和下面 mysql 镜像里的一致ISUDA_DB_PASSWORD: 'Q39sTi0i^9'ISUDA_DB_NAME: aisudaISUDA_DB_HOST: dbISUDA_DB_PORT: 3306# 如果数据库时区是 utc 需要开启下面这个# ISUDA_DB_TIMEZONE: utc# id 加密密钥,建议修改ISUDA_HASHID_SALT: 'aisuda'# 数据库加密密钥,建议修改 PS:长度必须为64位ISUDA_ENCRYPT_KEY: 'B224AD82C6206D4DD0D49B3A17BD894D8EA2DC671372BA6B270D3B3AD599A45C'# redis 地址和端口ISUDA_REDIS_HOST: redisISUDA_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 端口,比如 25ISUDA_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 或 s3ISUDA_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,ldapAUTH_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 clientIdISUDA_OAUTH_CLIENT_ID:# oauth clientSecretISUDA_OAUTH_CLIENT_SECRET:# oauth scope 默认为 emailISUDA_OAUTH_SCOPE:# oauth 获取 用户 profile 的接口地址ISUDA_OAUTH_INFO_URL:# 默认为 id, 假如你的 oauth 返回的 profile 中,id 为 user_id 请填写 user_idISUDA_OAUTH_ID_FIELD:# 默认为 name, 假如你的 oauth 返回的 profile 中,用户名为 user_name 请填写 user_nameISUDA_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/suggestionsdb:image: registry.baidubce.com/aisuda/mysql:8command:['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/mysqlenvironment:MYSQL_ROOT_PASSWORD: 'Q39sTi0i^9'TZ: 'Asia/Shanghai'security_opt:- seccomp:unconfinedredis:image: registry.baidubce.com/aisuda/redis:5command: ['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里面的数据库造成了干扰。。。。。

相关文章:

  • 当前时机适合进入AIGC行业吗?——行业发展阶段与市场需求的分析
  • SPI总结
  • SSM私人诊所管理系统—计算机毕业设计源码36406
  • 搜索引擎简介
  • ChatGPT-o1用来进行数据分析,对比效果很惊人!
  • 力扣字典序问题详解
  • 焊接缺陷检测系统源码分享
  • C语言-线程
  • 李宏毅机器学习2022-HW8-Anomaly Detection
  • java的匿名内部类和lambda表达式
  • C语言VS实用调试技巧
  • 隧道灯光远程控制系统的设计与实现(论文+源码)_kaic
  • Spring Boot 进阶-Spring Boot 开发第一个Web接口
  • Java集合框架与Lambda表达式实践指南(小白速看)
  • 大模型Agent开发框架对比:LangGraph/LlamaIndex/DIY
  • 【React系列】如何构建React应用程序
  • 2017 年终总结 —— 在路上
  • ComponentOne 2017 V2版本正式发布
  • ES6系列(二)变量的解构赋值
  • HTTP请求重发
  • javascript 总结(常用工具类的封装)
  • java多线程
  • JS实现简单的MVC模式开发小游戏
  • JS数组方法汇总
  • Material Design
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis字符串类型内部编码剖析
  • webpack入门学习手记(二)
  • Web设计流程优化:网页效果图设计新思路
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 近期前端发展计划
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 问题之ssh中Host key verification failed的解决
  • 我建了一个叫Hello World的项目
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 通过调用文摘列表API获取文摘
  • ​io --- 处理流的核心工具​
  • ​iOS实时查看App运行日志
  • ​渐进式Web应用PWA的未来
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • ‌JavaScript 数据类型转换
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #、%和$符号在OGNL表达式中经常出现
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2)空速传感器
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度