自托管 · 运行在你自己的硬件上
一条 Docker 命令

你的硬件, 一个浏览器就能操控。

把 Jetson、Raspberry Pi 或本地服务器变成浏览器里的控制台。无需开发前端,就能加上实时视频、控件和遥测。

了解工作方式
JetsonRaspberry PiROS2MQTTWebSocketREST API实时视频PWA支持 Docker
flintbay.local / tracked-robot
在线
Flintbay 遥操作页面:实时摄像头、仓库平面图、仪表、急停按钮和车队列表

按机器的需要搭建控制台

先放上摄像头、摇杆、按钮和电池状态,再从六类共 42 个可复用组件里,只挑操作员用得上的。

Flintbay“控制”类组件,正在显示漫游车的实时遥测

控制

驱动、切换和调节硬件,控件专为操作员反复使用而设计。共 14 个,每个既能写入状态,也能读回状态。

ButtonToggle ButtonToggle SwitchSliderKnobDropdownSelect ButtonRadio GroupNumber InputText InputColour PickerDirection PadJoystickEmergency Stop

机器人已经能跑了,为什么还要再写一个控制程序?

做一个摇杆加视频播放器的原型很容易。但要让控制台能自动重连、保持状态同步、扛得住长时间运行、管好访问权限,还能跨设备使用,这本身就是另一个软件项目。

Flintbay 把这一层可复用的部分打包好了。你负责机器和它的逻辑,浏览器里的操控界面交给 Flintbay。

为什么要在本地运行?

响应迅速

控制链路离机器更近。

数据私有

遥测数据只留在你掌控的基础设施上。

随时可用

本地控制台不依赖互联网。

还要单独维护一套前端
视频、控制和遥测分散在不同工具里
重连、状态过期等边界情况
认证要从零写起
布局与某一台机器绑死
本地硬件却依赖云端

从端点到可用的操控界面

在 Jetson、Raspberry Pi、笔记本或服务器上运行 Flintbay。接入 ROS2、MQTT、REST 或 WebSocket,然后编排实时视频、控件和遥测,无需编写前端代码。

你提供:

  • 一台机器人、测试台或联网设备
  • ROS2、MQTT、REST 或 WebSocket 端点
  • 摄像头和遥测数据源

Flintbay 提供:

  • 实时媒体组件
  • 摇杆与方向键
  • 按钮与设定值
  • 仪表与图表
  • 变换与绑定
  • 命令执行反馈
  • 用户、角色与审计
  • 已保存的设备布局

三步完成,无需构建流程

说明数据在哪,拖入操作员需要的组件,再接好端口。仪表板全程实时运行,既不用编译,也不用部署。

  1. 1

    描述数据源

    Flintbay 数据源编辑器:MQTT 代理的名称、协议、主机和端口

    只需主机、端口和它使用的协议。无论是 REST、MQTT、ROS 2、WebSocket 还是媒体流,表单都清楚各自需要填什么,并在字段旁直接提示。

  2. 2

    拖入组件

    Flintbay 组件面板在实时仪表板上打开,其中列出显示类和控制类组件

    六类共 42 个组件,每个都能在面板中预览。你在上面搭建时,下方的页面照常运行。

  3. 3

    接好端口

    连接工作室:组件带类型的端口与为其供数的端点并排显示

    每个组件都有带类型的端口。把端口指向负载中的某个路径,绑定就完成了;连接工作室会显示哪些端口已有数据、哪些还在等待。

每一步也都对应一个 MCP 工具,AI 助手只要拿到对机器的描述,就能完成同样的工作。

为看得见、摸得着的硬件而生

先从机器人操控界面做起。同一套控制界面还能复用到测试台、实验室,或任何提供 API 的本地设备上。

机器人开发者

把实时视频、摇杆、驱动控制、电池和连接状态放进同一个浏览器视图。

研发与测试台

为执行器、传感器、摄像头和设定值搭建可复用的面板,而不是又一个用完即弃的界面。

创客与机器人实验室

为 TurtleBot、漫游车或 Jetson 项目配一个在笔记本、平板或手机上都能打开的控制台。

联网硬件

同样的组件也能控制照明、灌溉、自制的自动化装置,或任何通过 API 开放的设备。

控制、媒体和遥测集中在一处

围绕机器组织操作员视图:交互控件、实时媒体、当前状态、历史数据和结构化数据都在同一页面上。

Flintbay 页面:实时摄像头、平面图、仪表、急停按钮和车队列表并排显示

与协议无关的组件

通过声明式绑定接入 MQTT、REST、WebSocket 和 ROS2。传输方式或负载格式变化时,布局保持不变。

同一台漫游车通过 REST、MQTT、ROS 2 和 WebSocket 各显示一次,四份同时实时更新

应用层基础设施已内置

认证、工作区角色、账户管理、审计日志与系统日志、重连机制、命令模式和状态同步都是平台自带的,不必为每台机器人重新排进待办。

Flintbay 连接日志:级别、类别、按数据源的上下文、发生次数和错误类型

借助 MCP 由 AI 辅助配置

连接受支持的 AI 客户端,通过结构化工具创建数据源、端点、组件和绑定,而不是去改生成的前端代码。

连接工作室:五个已连接的数据源及其端点,旁边是由它们供数的组件

十二个面板,同一个产品

下面每一屏都是用 Flintbay 搭建、在运行状态下截取的。没有效果图,也没有改过标签:每个面板读取的都是各自的模拟现场,所以冷水机显示温度,主轴显示负载百分比。

Flintbay 面板:Warehouse 4 · AGV fleet

Warehouse 4 · AGV fleet

REST · 漫游车模拟器

同一层楼的八台机器人:平面图上的实时位置、谁在充电、哪条通道承担着主要吞吐量。地图背景是端点提供的一张图片,换个现场只需换个文件。

MapData TableBar ChartAlarm ListTimelineValue Display
仪表板之外

那些没人想写第二遍的部分

控制台不只是组件。账户、角色、自动化用的密钥、审计记录,以及能回答“这个数据源为什么没动静”的日志,全都开箱即用。下面每个面板都是运行中产品的截图,而不是功能清单。

Flintbay 工作区成员面板:四个账户,每个都有角色下拉框

成员权限由工作区决定,而不是整个部署统一设定

同一个账户可以操控仓库现场,同时对测试台只有查看权限。平台自带 admin、editor、operator、viewer 四种角色,工作区所有者可以直接在这个面板里调整,无需管理员介入。

亲手体验控制台

在线上演示实例中注册一个账户,获得属于你自己的工作区。演示初始化会尝试从一台模拟漫游车添加实时数据源和端点,包括遥测、视频和音频。初始化只能尽力而为,激活页面会列出实际添加了哪些内容。随后,无需安装任何软件,就能添加组件,并在连接工作室里把它们连起来。只需邮箱、密码和一条激活链接。

Flintbay 编辑模式:点阵摆放网格覆盖在仍在接收实时数据的仪表板上

这是一个公共实例,可能随时重置且不另行通知。请把在上面搭建的内容都当作临时的,也不要使用你在别处用过的密码。

部署

让控制台和机器待在一起

Flintbay 以单个 Docker 镜像发布,内含 Web 应用、API、PostgreSQL 和 Redis。把它运行在机器人的 Jetson、Raspberry Pi、笔记本或附近的服务器上,硬件一就绪,界面也随之就绪。

适配边缘设备

AMD64 和 ARM64 镜像覆盖服务器、笔记本、Jetson 和 Raspberry Pi。

默认持久化

已保存的布局和配置在容器重启和镜像更新后依然保留。

本地优先

控制流量和遥测可以与硬件处在同一网络内。

内置应用安全

认证、会话、工作区角色、速率限制和审计日志都已包含在技术栈中。

GitHub 上的完整安装指南
docker-compose.yml
# 在硬件旁边运行控制台
services:
flintbay:
image: ghcr.io/flintbayhq/flintbay:0.1.7
ports:
- "19580:19580"
- "8189:8189/udp" # 实时视频
- "8189:8189/tcp"
environment:
FLINTBAY_PUBLIC_URL: http://localhost:19580
volumes:
- flintbay_data:/var/lib/flintbay
restart: unless-stopped
volumes:
flintbay_data:
$ docker compose up -d
✔ 控制台已在 :19580 就绪

0.1.7 是当前版本。:latest 始终指向最新的稳定版;生产环境请像这样固定版本,升级与否由你决定。

版本发布

发布了什么,对应哪个镜像

每个版本都是一个同时覆盖 AMD64 和 ARM64 的镜像,其索引摘要正是 cosign 所签名的内容,所以用来标识构建的是摘要,而不是标签。正在运行的部署会读取同一份列表,在本地与自己的版本比对,不会向外发送任何关于该部署的信息。

0.1.7

当前安全

发布说明仅提供英文版。

  • Refresh tokens can no longer be raced, and a signed-in request is tied to its session's account rather than to a username.
  • API key rotation keeps exact scopes and lifetime, and rotating the JWT secret no longer breaks keys or signs everyone out.
  • The joystick can drive a ROS 2 robot directly through its new twist port, and lowpass now actually smooths.
完整说明 sha256:334a697773dca690d30f5d7a2722736e03b18f5f3b7cc1b37db3e29637f91bd3
全部版本:

更早的版本以及每项变更背后的考量,请参阅更新日志。

一位开发者,一个你可以长期用下去的项目

Flintbay 由乌克兰开发者 Andrii 独立开发。它最初是为了用浏览器里的摄像头、摇杆、按钮和遥测,取代一堆实体控制器。如今它已在 Jetson 上伴随真实硬件运行,目的就是让下一台机器不必再从零写一个控制程序。

它可以免费自托管,而且会一直如此:不限席位,没有付费版,没有遥测。支持换来的是让它持续推进的时间,而这份时间也只能靠支持换来。

开发测试用的硬件

开发板、摄像头和传感器,让组件面对的是真正会出毛病的机器,而不是永远不出错的模拟对象。

持续发布的时间

集成、组件,以及那些不起眼的部分:重连、角色、审计记录。有了支持,下一个版本就不再是“也许”,而是一个周末就能完成的事。

坚持自托管

用打赏代替定价页。正因如此,你机器上的部署只听你的,也不会上报任何关于自身的信息:它唯一会获取的是公开的版本列表,而且这也可以关闭。

稳定版本
8
首次发布
2026年9月8日
最新版本
2026年9月27日
每个镜像
已签名,AMD64 + ARM64
在 Ko-fi 上支持 在 GitHub 上点 Star

一次性打赏就足够了,点 Star 更是分文不花。

打开浏览器,操控你的硬件。

摄像头、控件和遥测,集中在一个本地操作员视图中。
部署 Flintbay,接入你的端点,围绕你的机器搭建面板。

自行部署
本地运行
实时控制
内置访问控制