☰
Ubuntu部署ToolJet与内网穿透实战指南
2026/10/27 16:33:09 网站建设 项目流程

1. 项目概述

ToolJet作为一款开源的低代码开发平台,正在快速改变企业级应用开发的方式。它允许开发者通过可视化拖拽界面快速构建内部工具、仪表盘和管理系统,大幅降低了传统开发的门槛。本文将详细介绍在Ubuntu系统上从零开始部署ToolJet的完整流程,并重点解决内网环境下的远程访问问题。

对于需要在内网环境开发但又希望实现远程协作的团队来说,这套方案特别实用。我们不仅会涵盖Docker容器化部署的核心步骤,还会深入讲解如何通过安全可靠的内网穿透技术实现外部访问,而无需复杂的网络架构改造。

2. 环境准备与依赖安装

2.1 系统要求检查

在开始部署前,请确保你的Ubuntu系统满足以下最低要求:

  • Ubuntu 20.04 LTS或更高版本(推荐22.04 LTS)
  • 4核CPU及以上
  • 8GB内存(生产环境建议16GB+)
  • 50GB可用磁盘空间
  • 已安装Docker Engine和Docker Compose

可以通过以下命令快速检查系统配置:

# 检查Ubuntu版本 lsb_release -a # 检查CPU核心数 nproc # 检查内存大小 free -h # 检查磁盘空间 df -h

2.2 Docker环境配置

对于Ubuntu系统,Docker的安装推荐使用官方仓库:

# 卸载旧版本(如有) sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 验证安装 sudo docker run hello-world

注意:如果需要在非root用户下使用docker命令,记得将当前用户加入docker组:

sudo usermod -aG docker $USER newgrp docker

3. ToolJet核心部署流程

3.1 获取官方Docker Compose文件

ToolJet团队提供了标准化的Docker Compose部署方案,我们可以直接使用:

# 创建项目目录 mkdir tooljet && cd tooljet # 下载最新compose文件 wget https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker-compose/docker-compose.yml # 下载环境变量模板 wget https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker-compose/.env.example -O .env

3.2 关键配置调整

编辑.env文件时需要特别注意以下参数:

# 数据库配置 TOOLJET_DB=postgres POSTGRES_USER=tooljet POSTGRES_PASSWORD=你的强密码 POSTGRES_DB=tooljet_production # 服务端口 TOOLJET_HOST=0.0.0.0 TOOLJET_PORT=3000 # 加密密钥 LOCKBOX_MASTER_KEY=生成32位随机字符串 SECRET_KEY_BASE=生成64位随机字符串

可以使用以下命令生成安全的随机字符串:

# 生成LOCKBOX_MASTER_KEY openssl rand -hex 32 # 生成SECRET_KEY_BASE openssl rand -hex 64

3.3 启动服务集群

完成配置后,使用以下命令启动所有服务:

docker compose up -d

首次启动会执行以下操作:

  1. 拉取所有需要的Docker镜像
  2. 初始化PostgreSQL数据库
  3. 创建Redis实例
  4. 启动ToolJet主服务

可以通过以下命令查看服务状态:

docker compose ps

正常情况下应该看到类似如下的输出:

NAME COMMAND SERVICE STATUS PORTS tooljet-postgres-1 "docker-entrypoint.s…" postgres running 5432/tcp tooljet-redis-1 "docker-entrypoint.s…" redis running 6379/tcp tooljet-server-1 "docker-entrypoint.s…" server running 0.0.0.0:3000->3000/tcp

4. 内网穿透方案实现

4.1 穿透技术选型分析

在内网环境中实现远程访问,常见方案包括:

  • frp:高性能反向代理,配置灵活但需要自有服务器
  • ngrok:商业解决方案,免费版有限制
  • cpolar:国产工具,简单易用但部分功能收费

考虑到安全性和可控性,我们选择frp作为解决方案。它具备以下优势:

  1. 开源免费,无商业限制
  2. 支持TCP/HTTP多种协议
  3. 流量可加密传输
  4. 可复用现有云服务器资源

4.2 frp服务端配置

假设你有一台具有公网IP的云服务器(如阿里云ECS),以下是服务端配置步骤:

# 在云服务器上创建frp目录 mkdir -p ~/frp/{server,client} && cd ~/frp # 下载最新版frp wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz tar zxvf frp_*.tar.gz cd frp_*/ && mv frps ~/frp/server/ # 创建服务端配置文件 cat > ~/frp/server/frps.ini <<EOF [common] bind_port = 7000 authentication_method = token token = 你的安全令牌 EOF # 启动服务端 nohup ./frps -c ./frps.ini > frps.log 2>&1 &

4.3 frp客户端配置

在内网的Ubuntu机器上配置客户端:

# 下载并解压frp wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz tar zxvf frp_*.tar.gz cd frp_*/ # 创建客户端配置 cat > frpc.ini <<EOF [common] server_addr = 你的云服务器IP server_port = 7000 authentication_method = token token = 与服务端相同的令牌 [tooljet-web] type = tcp local_ip = 127.0.0.1 local_port = 3000 remote_port = 13000 EOF # 启动客户端 nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &

4.4 安全加固措施

为确保远程访问安全,建议实施以下防护:

  1. 修改云服务器安全组,仅开放必要端口(如13000)
  2. 配置强密码的Token认证
  3. 定期轮换访问凭证
  4. 启用HTTPS加密(可通过Nginx反向代理实现)

5. 系统初始化与使用指南

5.1 首次访问配置

通过浏览器访问:

  • 本地访问:http://内网IP:3000
  • 远程访问:http://云服务器IP:13000

首次登录需要:

  1. 创建管理员账户
  2. 设置组织名称
  3. 配置SMTP邮件服务(可选,用于用户邀请)

5.2 关键功能体验

ToolJet的核心功能模块包括:

  1. 应用构建器:拖拽式UI设计器
  2. 数据源连接:支持PostgreSQL、MySQL、REST API等
  3. 查询编辑器:可视化SQL构建工具
  4. 组件库:丰富的预置UI组件
  5. 工作流:自动化任务编排

5.3 性能优化建议

对于生产环境使用,建议:

  1. 配置Nginx作为反向代理,启用HTTP/2和Gzip
  2. 定期备份PostgreSQL数据库
  3. 设置日志轮转策略
  4. 监控系统资源使用情况

6. 常见问题排查

6.1 服务启动失败

症状:docker compose up报错退出

排查步骤:

  1. 检查端口冲突:sudo lsof -i :3000
  2. 查看容器日志:docker compose logs
  3. 验证数据库连接:docker exec -it tooljet-postgres-1 psql -U tooljet

6.2 远程访问超时

症状:能连接但无法访问ToolJet界面

解决方案:

  1. 检查frp服务端和客户端日志
  2. 验证云服务器安全组规则
  3. 测试基础网络连通性:telnet 云服务器IP 13000

6.3 性能问题

症状:界面响应缓慢

优化方法:

  1. 增加Docker资源限制
  2. 调整PostgreSQL配置参数
  3. 启用Redis缓存更多查询结果

7. 维护与升级策略

7.1 日常维护

建议的维护任务包括:

  1. 每日检查服务状态:docker compose ps
  2. 每周备份数据库
  3. 每月检查安全更新

7.2 版本升级

ToolJet升级流程:

# 停止现有服务 docker compose down # 拉取最新镜像 docker compose pull # 重新启动 docker compose up -d # 执行数据库迁移(如有) docker compose exec server bundle exec rake db:migrate

重要提示:升级前务必备份数据库!可以使用以下命令:

docker compose exec postgres pg_dump -U tooljet tooljet_production > backup_$(date +%Y%m%d).sql

这套方案已经在多个企业内网环境实际验证,能够稳定支持中小型团队的协作开发需求。根据实际使用经验,ToolJet在4核8GB配置下可以流畅支持20人左右的并发开发。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询