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

手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战

文章目录

    • 前言
    • 1.什么是Appsmith
    • 2.Docker部署
    • 3.Appsmith简单使用
    • 4.安装cpolar内网穿透
    • 5. 配置公网地址
    • 6. 配置固定公网地址
    • 总结

前言

在当今快速变化的商业环境中,企业正面临内部系统建设的双重挑战。传统开发模式不仅需要漫长的开发周期(通常需要数月),更伴随着持续攀升的维护支出。当业务部门提出创新需求时,非技术团队往往受限于编程能力,导致创意难以转化为实际应用。为破解这一发展瓶颈,本文将重点探讨一种创新实践方案——基于Appsmith的敏捷开发体系。

该智能开发平台采用图形化操作界面,使业务人员能够自主设计功能完整的应用程序。其独特价值体现在:既延续了传统开发的可定制特性,又消除了对编程技能的依赖。通过容器化部署方案(Docker)与内网穿透技术(cpolar)的协同应用,用户可快速搭建Appsmith服务架构,并实现跨网络环境的无缝访问。这种技术组合方案已验证可将系统建设成本压缩至原有水平的30%以下,同时将部署时长缩短至8小时内,为企业数字化进程注入新的效率动能。

image-20250401140647756

1.什么是Appsmith

Appsmith是一个开源低代码开发平台,它就像一个神奇的画板,你只需要将各种组件(如表格、图表、表单等)像拼图一样拖到你的“画布”上,就能快速构建出复杂的应用程序。而且,它还支持多种数据源和API调用,让你的应用连接更自由,开发更快捷。

image-20250401140956023

Appsmith的性能特色:

  1. 拖拽式开发:就像搭积木一样简单,你只需要把需要的组件拖到画布上,然后配置一下数据源,一个应用就诞生了!
  2. 多数据源支持:MySQL、PostgreSQL、MongoDB、REST API等,Appsmith都能轻松连接。
  3. 实时预览:开发过程中随时看到应用的实时效果,再也不用反复调试、刷新页面了。
  4. 强大的JavaScript支持:懂一点JavaScript?那就更好了!Appsmith允许你编写自定义逻辑,让你的应用更加灵活。
  5. 一键部署:开发完成后,你可以一键将应用部署到云端,或者导出代码进行二次开发。

2.Docker部署

本例使用Ubuntu 22.04进行演示,使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

首先创建 Appsmith 目录: 需要在本地服务器上创建一个目录来存储 Appsmith 的配置和数据。可以是任意位置

mkdir -p ~/appsmith
cd ~/appsmith

image-20250331164816925

下载 Appsmith 的 Docker Compose 文件: 可以直接从 Appsmith 的 GitHub 仓库中获取官方的 docker-compose.yml 文件:

wget https://raw.githubusercontent.com/appsmithorg/appsmith/refs/heads/release/deploy/docker/docker-compose.yml

image-20250331164858545

启动项目:

sudo docker compose up -d

image-20250331165654373

打开浏览器输入localhost:8080,就能进入到appsmith的主页了

image-20250331170651670

3.Appsmith简单使用

安装完成后,打开Appsmith,点击“Create New”按钮创建一个新的应用。

image-20250331170948352

然后,你可以在左侧的组件面板中选择需要的组件(如按钮、表单、表格等),拖放到中间的画布上进行布局。配置数据源,并将数据源绑定到组件上,使组件能够动态显示和操作数据。最后,点击右上角的“Deploy”按钮发布应用。

image-20250331171010706

4.安装cpolar内网穿透

不过我们目前只能在本地局域网内访问刚刚部署的Appsmith,如果想不在同一局域网内时,也能在外部网络环境使用手机、平板、电脑等设备远程访问与使用它,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问的需求。无需公网IP,也不用准备云服务器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5. 配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:Appsmith,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8080
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建:

image-20250401132908360

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250401132950818

现在就已经成功实现使用cpolar生成的公网地址异地远程访问本地部署的appsmith啦!

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用appsmith,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是appsmith,大家可以自定义。填写备注信息,点击保留。

image-20250401134041400

保留成功后复制保留的二级子域名地址:

image-20250401134104967

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道appsmith,点击右侧的编辑

image-20250401134135508

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250401134203724

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250401134246967

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的appsmith页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250401134407490

总结

本实践案例展示了在Ubuntu操作系统环境下成功构建Appsmith开发环境的关键步骤,并通过cpolar内网穿透技术实现了跨网络环境的远程接入。这种技术组合的价值不仅在于基础操作指导,更在于其对现代应用开发范式的革新性实践路径。无论是跨职能团队成员还是专业开发人员,都能借助这种低代码架构体系将创意转化为可执行方案,显著提升业务响应速度。

值得关注的是,Appsmith与cpolar的技术协同已展现出多维应用潜力。其在分布式团队协作、自动化流程整合、实时数据可视化等场景中均能提供创新解决方案。当技术架构与业务需求形成深度耦合时,企业将获得指数级增长的创新效能。我们建议读者在实际业务场景中拓展应用边界,通过技术社区分享实践成果,共同构建低代码技术的生态系统。这种开放协作模式将为数字化转型注入持续创新的驱动力。

http://www.xdnf.cn/news/789823.html

相关文章:

  • PPO和GRPO算法
  • 大模型的外围关键技术
  • 【面试】音视频面试
  • 亮数据网页解锁器:让数据触手探索亮数据解锁工具:打破网页数据采集的局限
  • GPIO的内部结构与功能解析
  • Spring Boot Actuator未授权访问漏洞修复
  • RS232/RS485 光电隔离转换器DAM-3210A
  • 学习STC51单片机26(芯片为STC89C52RCRC)
  • Python训练营打卡Day42
  • Java-IO流之字节输入流详解
  • Spring AOP 和 AspectJ 有什么区别
  • Unity ARPG战斗系统 _ RootMotion相关知识点
  • 如何构建自适应架构的镜像
  • Diffusion Models: A Comprehensive Survey of Methods and Applications
  • 网络攻防技术七:计算机木马
  • Java高级 | 【实验二】控制器类+相关注解知识
  • InternLM2/LM2.5/ViT/VL1.5/VL2.0笔记: 核心点解析
  • 服装产品属性描述数据集(19197条),AI智能体知识库收集~
  • ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源
  • ESOP股权管理平台完整解决方案
  • 基于LLaMA-Factory和Easy Dataset的Qwen3微调实战:从数据准备到LoRA微调推理评估的全流程指南
  • 开源模型应用落地-OpenAI Agents SDK-集成Qwen3-8B(一)
  • CDGP|数据治理:实现数据“可用不可见”“流通不流失”
  • [QMT量化交易小白入门]-六十、bt实现基于不同基准指数的量化策略回测
  • BFS进阶刷题
  • Spring 中如何开启事务?
  • 嵌入式学习笔记 - freeRTOS任务栈在初始化以及任务切换时的压栈出栈过程分析
  • 黑马程序员TypeScript课程笔记1(1-10)
  • 云开发实现新闻列表小程序
  • Cat.1与Cat.4区别及应用场景