Seatsurfing 1.136 介绍与选型指南
面向需要在自有服务器上落地「工位/办公桌预订」系统的工程与行政团队,讲清 Seatsurfing 是什么、能做什么、与其他同类方案的量化差异,并给出选型结论;本篇为认知篇,全部数据来自官方公开来源(均标注来源与查询日期 2026-10-24)。
Seatsurfing 1.136 介绍与选型指南
目标:面向需要在自有服务器上落地「工位/办公桌预订」系统的工程与行政团队,讲清 Seatsurfing 是什么、能做什么、与其他同类方案的量化差异,并给出选型结论;本篇为认知篇,全部数据来自官方公开来源(均标注来源与查询日期 2026-10-24)。
一、环境信息
本篇是认知与选型篇,不依赖本地环境;文中引用的版本、星数、发布节奏等事实均取自官方公开渠道并逐一标注来源与查询日期,未做任何本地实测推导。本组件其余三篇(部署、配置、API)才基于真实服务器实测。
信息来源清单(查询日期均为 2026-10-24):
- 官方网站:seatsurfing.io(含文档站 seatsurfing.io/docs,Self-Hosted 子文档更新时间标注为 2026-10-08 与 2026-10-15);
- 源码仓库:github.com/seatsurfing/seatsurfing(README、LICENSE、Releases);
- 版本与发布节奏:GitHub Releases 页面(Releases 列表实查);
- 社区热度:shields.io 徽章接口读取的 GitHub Star 数(shields.io,查询日期 2026-10-24);
- 官方 REST API 开发者文档入口:developer.seatsurfing.io(官网导航标注 Rest API)。
二、软件概述
Seatsurfing 是一款开源的工位与办公空间预订系统(desk booking / workplace booking),由德国公司 Seatsurfing GmbH 维护,帮助组织的员工预订工位(desk)、会议室与房间(room)。项目官方定位一句话:"Seatsurfing is a software which enables your organization's employees to book seats, desks and rooms."(来源:GitHub README,查询日期 2026-10-24)。
关键身份信息(来源:GitHub README 与官网,查询日期 2026-10-24):
- 开源协议:GPL 3.0(README Quick reference 明确标注);
- 维护方:seatsurfing.io / Seatsurfing GmbH;
- 技术栈:后端 REST API 用 Go 编写,两个 Web 前端(Booking UI 与 Admin UI)用 TypeScript/React 构建,Booking UI 为 PWA(渐进式 Web 应用,可安装到手机桌面);
- 数据库:PostgreSQL(官方自托管文档标注测试版本 PostgreSQL 16.x 与 17.x);
- 部署形态:官方提供 Docker 镜像(架构 amd64、arm64)、Compose 编排示例与 Kubernetes 文档;同时运营 SaaS 版(德国 EU 机房,10 用户以内免费,Professional 计划 30 天试用);
- 商业增强:提供付费 Plus Plugin 插件(自托管增强功能);
- 当前最新稳定版:v1.136.3(GitHub Releases 实查,2026-10-23 发布)。
与「会议室预约系统」最大的差别在于领域重心:Seatsurfing 的地图化楼层平面图(floor plan)、按工位(而非按房间)预订、办公出勤统计(presence report)等能力都是围绕「混合办公模式下谁能坐哪个座位」设计的;会议室预约只是其空间预订能力的一个子集。这一点是与后文对比对象最本质的区别。
三、核心架构
按官方 README 与自托管文档(查询日期 2026-10-24),Seatsurfing 自托管形态的组件结构如下:
1. 后端服务(单一二进制/单一服务进程):Go 编写的 REST API 服务,同时托管三个面向用户的入口:
- Booking UI(员工订座界面,PWA):路径
/ui/,支持移动端安装; - Admin UI(管理后台):路径
/admin/(内部重定向到/ui/admin/); - REST API:与前端同端口提供服务(API 端点细节见本专栏《Seatsurfing 1.136 API 使用详解》)。
2. PostgreSQL 数据库:唯一持久化依赖,存放组织、用户、楼层、工位、预订等全部业务数据;官方 Compose 示例将数据库与应用一并编排。
3. 可选 Valkey 缓存:环境变量 CACHE_TYPE=valkey 时启用外部 Valkey/Redis 兼容缓存,默认使用内置缓存。
4. 认证体系:内置密码登录(含 TOTP 两步验证、Passkey),同时支持外部身份源(Auth Providers):OIDC/OAuth2 SSO、Kerberos 等;配套 SCIM 用户自动开通(官网导航含 SCIM Provisioning)。
5. 集成生态(官网导航,查询日期 2026-10-24):Microsoft Teams 应用、Atlassian Confluence Cloud 应用、Microsoft Exchange 日历联动、CalDAV 日历订阅(偏好设置可见 CalDAV 日历列表接口)、AI Assistant 与 MCP Server(2026 年新增的 AI 助手特性)。
6. 反向代理与 TLS:官方自托管文档推荐前置反向代理做 TLS 终结(文档标注实测 Traefik 2.x);也可由应用直接以 HTTP 对外(通过 PUBLIC_SCHEME/PUBLIC_PORT 声明公开地址)。
架构上的显著特点是「应用本体只有一个服务」:REST API、订座界面、管理界面由同一个进程在同一个端口提供服务,部署面只有应用 + 数据库两个必选组件,这大幅降低了自托管门槛(对比许多同类系统需要应用 + 前端 + 数据库 + 缓存多件套)。
四、功能特性
以下特性清单综合官网导航(Features/Key Concepts/Roles and Permissions 等)与自托管文档(查询日期 2026-10-24),并在本专栏实测篇中逐项验证(部署与配置见《Seatsurfing 1.136 Docker Compose 部署指南》):
- 地图化楼层平面图:上传楼层图片作为地图,在地图上拖放绘制工位/房间(矩形、坐标、旋转角),员工在地图上点选工位预订;系统初始化即自带一张示例楼层与 17 个示例工位(官方默认数据)。
- 多种空间类型:工位(desk)、会议室(conference room)、区域(area),支持设置审批(requireApproval)、最大并发预订数(maxConcurrentBookings)、时区、可预订日(bookableDays)等空间级策略。
- 预订策略(组织级设置):提前预订天数上限(max_days_in_advance,默认 14)、单次最长时长(max_booking_duration_hours,默认 12)、每用户最大预订数(max_bookings_per_user,默认 10)、删除时间窗(max_hours_before_delete)、按天预订模式(daily_basis_booking)等——名称取自系统组织设置接口实测回显。
- 审批流:空间可要求预订经管理员审批,界面与接口均有 pending approvals(待审批)列表与计数。
- 同事协同(Buddy):预订时可搜索同事并把好友加进同一天的预订;支持出勤报告(presence report)。
- 公开预订(Public Booking):可开放组织外人员预订(组织设置 public_booking_enabled 控制,默认关闭)。
- 循环预订(Recurring Booking):按周重复的长期订座(设置 allow_recurring_bookings,默认开启)。
- 角色与权限:角色(Role)体系按功能域授予 10/30 等权限档(如 bookings、users、areas、auth_providers、audit_log 等域,接口回显实测),可建服务账号角色。
- 认证与账号:密码 + TOTP + Passkey;外部 SSO(OIDC/OAuth2);SCIM 自动开通;可完全关闭密码登录(DISABLE_PASSWORD_LOGIN)强制 SSO。
- 通知邮件:预订创建/审批/批准等邮件模板(多语言),SMTP 或 Azure Communication Services 发信。
- 统计与报表:内置统计接口(用户数、预订数、工位负载率、按星期分布等)与报表隐藏开关。
- 国际化:组织级语言设置(INIT_ORG_LANGUAGE),界面多语言(含英文、德文文档)。
- 审计日志:权限域含 audit_log,管理员可查操作审计。
- Kiosk 模式:大堂签到机场景(feature_kiosk_mode 设置项)。
五、快速开始(最小可用路径)
本篇为认知篇,只给「从零到看到订座界面」的最短路径概述;逐条实测的完整安装步骤、真实命令回显与排障实录见本专栏《Seatsurfing 1.136 Docker Compose 部署指南》,此处不重复展开,也不引用实验数据。
最小路径(按官方自托管文档 Docker / Compose 篇,查询日期 2026-10-24):
- 准备一台 Linux 服务器与 Docker 运行环境(官方标注实测 Docker Engine 28.x、Podman 1.4.x、Docker Compose 2.x);
- 使用官方 Compose 示例一次性拉起「Seatsurfing 后端 + PostgreSQL 数据库」两个服务,数据落在持久卷;
- 浏览器访问管理后台(默认
http://<服务器地址>:8080/admin/),用初始管理员账号登录——官方文档给出默认账号admin@seatsurfing.local、默认密码Sea!surf1ng,并可通过环境变量INIT_ORG_USER/INIT_ORG_PASS在首次初始化时自定义; - 在管理后台看到系统预置的示例楼层与工位,即可用员工入口
/ui/体验地图选座、预订、审批全流程; - 正式启用前,把公开地址(
PUBLIC_URL三件套)、数据库口令、加密密钥(CRYPT_KEY)、SMTP 发信、SSO 身份源逐项配置好(逐项说明见《Seatsurfing 1.136 配置参数详解》)。
六、适用场景与限制
适用场景:
- 混合办公(hybrid work)企业:员工按天到岗、需要抢工位/固定工位,行政要看出勤与工位利用率;
- 多楼层/多园区组织:每个楼层一张平面图,空间按位置分层管理;
- 需要自托管且数据不出内网的组织:GPL 3.0 开源,仅依赖 PostgreSQL;
- 已有企业身份体系(Entra ID/Keycloak 等 OIDC 或 Kerberos)希望 SSO + SCIM 自动开通账号的组织;
- 需要把订座嵌入既有协作工具的团队:Teams / Confluence / Exchange / CalDAV 集成。
限制与注意(来源:官方文档与仓库,查询日期 2026-10-24):
- 仅支持 PostgreSQL 作为数据库,官方文档未提供 MySQL/SQLite 适配;
- 官方自托管文档的系统要求以 Linux + 容器化部署为基准描述,未提供 Windows 原生安装路径;
- GPL 3.0 对二次分发的传染性要求:把修改后的版本对外分发时需遵守协议(商业闭源集成应评估 Plus Plugin 或联系官方商业授权);
- 星数体量小(316 Star,2026-10-24 shields.io 实查),社区生态与第三方教程远少于大热门项目,遇到问题更多依赖官方文档与 Issue;
- 无中文官方文档(文档站为英文/德文),中文团队使用需要一定英文阅读能力;
- 组织删除(ALLOW_ORG_DELETE)默认关闭以防误删,说明官方把「防呆」置于「灵活」之前——日常运维要习惯走配置与审批。
七、同类选型对比(量化)
选型对比聚焦「工位与空间预订」这一细分域:同类开源选项包括主打会议/活动排期的 Rallly、从会议室/资源调度演进的 LibreBooking、传统会议室预约的 Easy!Appointments,以及闭源商用的 flex 办公套件 OfficeRnD。下表数据来源与查询日期均为 2026-10-24:
- Seatsurfing/Rallly/LibreBooking 的 Star 数与最新版本号:shields.io GitHub 徽章接口与 GitHub Releases 实查;
- Seatsurfing 发布节奏:GitHub Releases 列表逐条实查;
- Rallly 详细分析见站内《Rallly 4.16 介绍与选型指南》。
| 维度 | Seatsurfing 1.136 | Rallly 4.16 | LibreBooking 7.1 | OfficeRnD(闭源商用) |
|---|---|---|---|---|
| 定位 | 工位/办公桌 + 空间预订(混合办公) | 会议/活动排期投票与预约 | 会议室与资源调度(Booked 系) | Flex 办公全套(工位+会员+计费) |
| 开源与协议 | 开源 GPL 3.0(README 标注) | 开源(协议以其仓库 LICENSE 为准) | 开源(协议以其仓库 LICENSE 为准) | 闭源 SaaS |
| GitHub Star(2026-10-24) | 316 | 约 5300(5.3k) | 837 | —(无公开仓库) |
| 最新版本(2026-10-24) | v1.136.3(2026-10-23 发布) | v4.16.2 | v7.1.0 | SaaS 持续更新 |
| 技术栈 | Go + PostgreSQL,单服务托管前后端 | Node.js/TypeScript + Prisma(站内 Rallly 篇实测) | PHP + MySQL 系 | SaaS |
| 部署形态 | 应用+数据库双件套,官方 Compose/K8s 文档 | Compose 为主 | LAMP 系传统部署 | 无需部署 |
| 版本节奏(量化) | 极快:2026-09-30 至 2026-10-23 约 3.5 周内发布 11 个版本(v1.132.0→v1.136.3,Releases 实查) | 常规迭代 | 平缓(大版本 7.x) | 不可见 |
| 领域匹配:工位地图选座 | ✅ 核心能力 | ❌ 非工位域 | ⚠️ 资源排期思路,无地图化选座 | ✅ |
| 领域匹配:会议室预订 | ✅(作为空间类型) | ✅ 核心 | ✅ 核心 | ✅ |
| 出勤/利用率报表 | ✅(presence report + stats) | ❌ | ⚠️ 报表有限 | ✅ |
| SSO/SCIM | ✅ OIDC + SCIM + TOTP + Passkey | ✅ SSO | ⚠️ 有限 | ✅ |
| 中文界面 | 社区翻译,官方文档无中文 | 有社区翻译 | 有中文语言包 | 有中文支持(商业) |
关键差异与选型建议:
- 核心诉求是「谁坐哪个工位」(地图选座、工位粒度、出勤统计)→ Seatsurfing 是开源阵营里领域最贴合的选择;Rallly 和 LibreBooking 都不是为工位域设计的。
- 核心诉求是会议/活动的时间协调(选时段、投票、多方确认)→ 选 Rallly,别用 Seatsurfing 硬凑。
- 传统会议室资源排期(按小时订会议室、设备资源绑定)→ LibreBooking 更成熟;Seatsurfing 也能做会议室预订但没有资源审批那套细粒度。
- 要商业支持、计费、会员运营(联合办公空间) → OfficeRnD 这类闭源 SaaS,或 Seatsurfing 的 Plus Plugin 路线先小成本验证。
- 看社区活跃度:Rallly 星数最高(5.3k);LibreBooking 居中(837);Seatsurfing 星数最小(316)但发布节奏在四者中最快(3.5 周 11 版),且由公司主体全职维护——对自托管用户,「公司维护 + 高频发版」比星数更能预示问题修复速度,本批次实测(2026-10-24 部署 v1.136.3)也印证了文档与代码质量在持续快速演进。
- 兼容矩阵速查(Seatsurfing,官方文档标注):Linux 服务器;Docker Engine 28.x、Podman 1.4.x、Docker Compose 2.x;PostgreSQL 16.x/17.x;反向代理 Traefik 2.x(均来源 seatsurfing.io 自托管文档,查询日期 2026-10-24)。
八、参考链接
- 官方网站:https://seatsurfing.io
- 官方文档(自托管):https://seatsurfing.io/docs/self-hosted/docker、https://seatsurfing.io/docs/self-hosted/config
- 开发者 API 文档入口:https://developer.seatsurfing.io
- 源码仓库:https://github.com/seatsurfing/seatsurfing
- Releases 页面:https://github.com/seatsurfing/seatsurfing/releases
- 同类项目:Rallly https://github.com/lukevella/rallly、LibreBooking https://github.com/LibreBooking/LibreBooking、OfficeRnD https://www.officernd.com
- 本专栏系列:《Seatsurfing 1.136 介绍与选型指南》、《Seatsurfing 1.136 Docker Compose 部署指南》、《Seatsurfing 1.136 配置参数详解》、《Seatsurfing 1.136 API 使用详解》