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

rulego-server是一个开源程序,是一个轻量级、无依赖性的工作流自动化平台。支持 iPaaS、流式计算和 AI 能力。

一、软件介绍

文末提供程序和源码下载学习

   RuleGo-Server 是一个基于 RuleGo 构建的轻量级、高性能、模块化和集成友好的自动化工作流程平台。可用于自动化编排、iPaaS(集成平台即服务)、API 编排、应用编排、AI 编排、数据处理、IoT 规则引擎、AI 助手等场景。

二、软件特征

  • 轻: 低内存使用率、高性能、部署简单、即用型、无需数据库。
  • 丰富的组件: 超过 100 个内置组件。此外,还提供了组件市场和规则链市场,支持动态安装。
  • 可视化: 支持规则链的可视化。
  • 模块 化: 按需编译和加载。
  • 热更新: 工作流支持热更新。
  • AI 支持: 支持大型模型组件。系统会自动将所有组件和规则链注册为 MCP 工具,以供 AI 助手使用。
  • 弥合最后一英里: 在 RuleGo-Server 的帮助下,第三方系统服务可以很容易地封装到 MCP 工具中。

三、HTTP API

API Documentation  API 文档

Multi-Tenancy  多租户

该项目支持多租户/用户,每个用户都有隔离的规则链数据。用户数据存储在 data/workflows/{username} 目录中。

用户权限校验默认关闭,所有作均以默认用户身份执行。要启用权限验证:

  • 通过 username 和 password 获取 Token,然后使用该 Token 访问其他接口。例:
# Whether to enable JWT authentication for APIs. If disabled, operations will be performed as the default user (admin)
require_auth = true
# JWT secret key
jwt_secret_key = r6G7qZ8xk9P0y1Q2w3E4r5T6y7U8i9O0pL7z8x9CvBnM3k2l1
# JWT expiration time
jwt_expire_time = 43200000
# JWT issuer
jwt_issuer = rulego.cc
# User list
# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.
# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.
[users]
admin = admin
user01 = user01

The frontend obtains a token through the login interface (/api/v1/login), then accesses other interfaces using the token. Example:
前端通过登录接口(/api/v1/login)获取 Token,然后使用该 Token 访问其他接口。例:

curl -H "Authorization: Bearer token" http://localhost:8080/api/resource
  • Access other interfaces using the api_key method. Example:
    使用 api_key 方法访问其他接口。例:
# Whether to enable JWT authentication for APIs. If disabled, operations will be performed as the default user (admin)
require_auth = true
# User list
# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.
# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.
[users]
admin = admin,2af255ea-5618-467d-914c-67a8beeca31d
user01 = user01

Then access other interfaces using the token. Example:
然后使用 Token 访问其他接口。例:

curl -H "Authorization: Bearer apiKey" http://localhost:8080/api/resource

Server Compilation  服务器编译

要保存已编译文件的大小,默认情况下不包含扩展组件 rulego-components。默认编译:

cd cmd/server
go build .

如果需要包含扩展组件 rulego-components,请使用 with_extend 标签进行编译:

cd cmd/server
go build -tags with_extend .

其他扩展组件库标签:

  • Register the extension component rulego-components using the with_extend tag for compilation:
    使用 with_extend 标签注册扩展组件 rulego-components 进行编译:
  • Register the AI extension component rulego-components-ai using the with_ai tag for compilation
    使用 with_ai 标签注册 AI 扩展组件 rulego-components-ai 进行编译
  • Register the CI/CD extension component rulego-components-ci using the with_ci tag for compilation
    使用 with_ci 标签注册 CI/CD 扩展组件 rulego-components-ci 进行编译
  • Register the IoT extension component rulego-components-iot using the with_iot tag for compilation
    使用 with_iot 标签注册 IoT 扩展组件 rulego-components-iot 进行编译
  • Register the ETL extension component rulego-components-etl using the with_etl tag for compilation
    使用 with_etl 标签注册 ETL 扩展组件 rulego-components-etl 进行编译

If you need to include multiple extension component libraries at the same time, you can compile with the go build -tags "with_extend,with_ai,with_ci,with_iot,with_etl" tag.
如果需要同时包含多个扩展组件库,可以使用 go build -tags "with_extend,with_ai,with_ci,with_iot,with_etl" tag 进行编译。

Server Startup  服务器启动

./server -c="./config.conf"

Or start in the background:
或者在后台启动:

nohup ./server -c="./config.conf" >> console.log &

UI  用户界面

详细信息:UI 将编译后的 ui 目录重命名为 editor 并将其放在根目录中,然后运行 server

RuleGo-Server-MCP

RuleGo-Server 支持 MCP(模型上下文协议)。启用后,系统会自动将所有已注册的组件、规则链和 API 注册为 MCP 工具。这使得 AI 助手(如 Windsurf、Cursor、Codeium 等)可以通过 MCP 协议直接调用这些工具,实现与应用系统的深度集成。文档: rulego-server-mcp

配置文件参数

config.conf

# Data directory
data_dir = ./data
# Whitelist for cmd component commands
cmd_white_list = cp,scp,mvn,npm,yarn,git,make,cmake,docker,kubectl,helm,ansible,puppet,pytest,python,python3,pip,go,java,dotnet,gcc,g++,ctest
# Whether to load third-party Lua libraries
load_lua_libs = true
# HTTP server
server = :9090
# Default user
default_username = admin
# Whether to log node execution logs to the log file
debug = true
# Maximum node log size, default 40
max_node_log_size =40
# Resource mapping, supports wildcards, multiple mappings separated by commas, format: /url/*filepath=/path/to/file
resource_mapping = /editor/*filepath=./editor,/images/*filepath=./editor/images
# Node pool file, in rule chain JSON format, example: ./node_pool.json
node_pool_file=./node_pool.json
# Save run log to file
save_run_log = false
# Maximum script execution time
script_max_execution_time = 5000
# Whether to enable JWT authentication for APIs
require_auth = false
# JWT secret key
jwt_secret_key = r6G7qZ8xk9P0y1Q2w3E4r5T6y7U8i9O0pL7z8x9CvBnM3k2l1
# JWT expiration time, in milliseconds
jwt_expire_time = 43200000
# JWT issuer
jwt_issuer = rulego.cc
# MCP server configuration
[mcp]
# Whether to enable the MCP service
enable = true
# Whether to use components as MCP tools
load_components_as_tool = true
# Whether to use rule chains as MCP tools
load_chains_as_tool = true
# Whether to add a rule chain API tool
load_apis_as_tool = true
# Exclude component list
exclude_components = comment,iterator,delay,groupAction,ref,fork,join,*Filter
# Exclude rule chain list
exclude_chains =# pprof configuration
[pprof]
# Whether to enable pprof
enable = false
# pprof address
addr = 0.0.0.0:6060# Global custom configuration, components can access values using ${global.xxx}
[global]
# Example
sqlDriver = mysql
sqlDsn = root:root@tcp(127.0.0.1:3306)/test# User list
# Configure usernames and passwords in the format username=password[,apiKey]. The apiKey is optional.
# If apiKey is configured, the caller can access other interfaces directly using the apiKey without logging in.
[users]
admin = admin,2af255ea5618467d914c67a8beeca31d
user01 = user01,2af255ea5618467d914c67a8beeca51c

软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:https://github.com/rulego/rulego-server

相关文章:

  • 消防营区管控:从智能仓储、装备管理、应急物资调用等多维度出发
  • Kotlin协程Semaphore withPermit约束并发任务数量
  • 华为仓颉智能体开发框架 Cangjie Magic深度解析
  • AI绘制流程图,方法概述
  • 解锁C++ gRPC:快速入门指南
  • Flutter Notes | 我用到的一些插件整理
  • java的lambda和stream流操作
  • 麦科信汽车诊断示波器在机车维修领域中的应用实例
  • Sqlite3交叉编译全过程
  • 使用pnpm第一次运行项目报错 ERR_PNPM_NO_PKG_MANIFEST No package.json found in E:\
  • Java拼团项目
  • AI——K近邻算法
  • JESD204B标准及其在高速AD采集系统中的应用详解
  • Ubuntu 修改语言报错Failed to download repository information
  • 从Archery到NineData:积加科技驱动数据库研发效能与数据安全双升级
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_自定义单元格大小示例(CalendarView01_07)
  • ASP.NET 中 OAuth 2.0/OpenID Connect 深度集成指南
  • “AI问诊助手”落地武汉市中心医院,深兰科技助力医疗数智化升级
  • eplan许可证无法识别硬件信息
  • 利用DeepSeek设计一个HTML批量转换工具设计
  • 最高检:去年共受理审查逮捕侵犯知识产权犯罪13486人
  • 同比增长1.2倍!一季度货物贸易项下跨境资金净流入2063亿美元
  • 上海之旅相册②俄罗斯Chaika:客居六年,致上海的情书
  • 古文启蒙佳作!锺叔河《念楼学短合集》出修订版
  • 一条水脉串起七个特色区块,上海嘉定发布2025年新城行动方案
  • 人大书报资料中心与中科院文献中心共筑学科融合创新平台