Seatsurfing 1.136 介绍与选型指南

面向需要在自有服务器上落地「工位/办公桌预订」系统的工程与行政团队,讲清 Seatsurfing 是什么、能做什么、与其他同类方案的量化差异,并给出选型结论;本篇为认知篇,全部数据来自官方公开来源(均标注来源与查询日期 2026-10-24)。

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):

  1. 准备一台 Linux 服务器与 Docker 运行环境(官方标注实测 Docker Engine 28.x、Podman 1.4.x、Docker Compose 2.x);
  2. 使用官方 Compose 示例一次性拉起「Seatsurfing 后端 + PostgreSQL 数据库」两个服务,数据落在持久卷;
  3. 浏览器访问管理后台(默认 http://<服务器地址>:8080/admin/),用初始管理员账号登录——官方文档给出默认账号 admin@seatsurfing.local、默认密码 Sea!surf1ng,并可通过环境变量 INIT_ORG_USER/INIT_ORG_PASS 在首次初始化时自定义;
  4. 在管理后台看到系统预置的示例楼层与工位,即可用员工入口 /ui/ 体验地图选座、预订、审批全流程;
  5. 正式启用前,把公开地址(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.136Rallly 4.16LibreBooking 7.1OfficeRnD(闭源商用)
定位工位/办公桌 + 空间预订(混合办公)会议/活动排期投票与预约会议室与资源调度(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.2v7.1.0SaaS 持续更新
技术栈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)。

八、参考链接