返回资讯中心
外部精选
软件工程
#开发者实时流

Slonbase:基于 PostgreSQL 的开源后端平台,单个 Rust 二进制提供 API 与实时功能

来源标题:Slonbase – A PocketBase like back end built on PostgreSQL

slonbase 是一个基于 PostgreSQL 的开源后端平台,以单个 Rust 二进制形式提供 REST 和实时 API、角色认证、文件存储、钩子及管理面板。每个集合对应一张真实的 PostgreSQL 表,并附带一条命令完成安装的脚本。

Hacker News 最新ayeshrodz2026/11/7 · 8 天前19 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

你的整个后端,构建在 PostgreSQL 之上。 slonbase 是一个基于 PostgreSQL 的开源后端平台:提供 REST 和实时 API、带角色的认证、 文件功能、钩子,以及可管理多个项目的管理仪表盘,全部打包在一个 Rust 二进制文件中。 每个集合都是一张真实的 PostgreSQL 表。 网站 · 功能 · 快速开始 · 安装 · API · 钩子 · 基准测试 一个用 JavaScript 客户端创建并更新任务的示例。仪表盘的网格是实时的:代码运行时,实时事件会不断到达。 🚀 在一台裸 Linux 服务器上执行一条命令:curl -fsSL https://slonbase.com/install.sh | sudo sh 它会在需要时安装 PostgreSQL,创建其角色和数据库,安装 slonbase,并创建 你的第一个超级用户。安装指南给出了手动完成每一步的方法。 🌐 slonbase.com,其中包含仪表盘导览、针对 PocketBase 和 PostgREST 的最新 基准测试,以及所有功能的一份清单。 在此之前:设置项中的每一项设置都有实际作用(主题色、自定义 登录页面和邮件、角色和 API 密钥、任务历史),还有登录锁定和速率限制测试器。 为什么选择 slonbase 在仪表盘中定义数据,即可立即获得 API、认证、实时和文件存储, 无需编写后端。slonbase 用一个二进制文件提供这些能力,可从同一个仪表盘运行任意多个相互隔离 的项目,并将你的数据保存在 PostgreSQL 中——这个数据库你可以用已有的工具进行查询、复制、备份和扩展。 slonbase 是稳定的:在同一个大版本内,升级不会破坏 API、配置、 你的数据、钩子或迁移(参见稳定性)。不过升级前仍请备份, 也非常欢迎提交 bug 报告。 slonbase 是独立的平台(独立代码库,用 Rust 从零为 PostgreSQL 编写),其 API 保持与 PocketBase 兼容——后者是启发了它的项目, 因此你可以把现有应用带过来。另请参阅 两者的差异: 一套用官方 SDK 编写的测试套件在 CI 中同时对两个服务器运行,以保持这种兼容性, 还有一个差分运行器向两者发送相同请求并比较响应 (compat/)。迁移指南列出了 差异。 当你想要零活动部件(一个文件,内置 SQLite)、当整个计划就是在一台小机器上运行一个 小应用,或者当你想用 Go 扩展它时,PocketBase 是更好的选择。 在 Linux 服务器上(Debian、Ubuntu、Fedora、RHEL、Rocky、Alma):一条命令即可安装 PostgreSQL(如果机器上没有)、创建数据库及其角色、从 签名仓库安装 slonbase,并创建你的第一个超级用户: curl -fsSL https://slonbase.com/install.sh | sudo sh 它会询问你的邮箱,并打印仪表盘地址和一个生成的密码。安装指南 展示了从裸服务器开始的每一个手动步骤。 使用 Docker。以下命令会启动 slonbase 及其 PostgreSQL 17 服务器: mkdir slonbase && cd slonbase curl -fsSLO https://raw.githubusercontent.com/ayeshrodz/slonbase/main/compose.yaml echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)" > .env docker compose up -d docker compose logs slonbase | grep "setup?token" 打开打印出的链接并创建你的第一个超级用户。就这样:仪表盘位于 http://localhost:8090/_/,API 位于 /api/。 在托管平台上:Render(一键)、Railway、 Fly.io、Coolify 和 Dokploy 都提供了带数据库的现成配置。 其他方式:.deb、.rpm 和静态二进制文件在 发布页面,apt 和 dnf 仓库在安装指南中有说明。 PostgreSQL 不随附打包:slonbase 可连接任何 14+ 服务器,无论是在同一台机器上、别处, 还是托管服务。 然后用任意 HTTP 客户端从你的应用连接,或者使用 PocketBase SDK,它们可与 slonbase 的 API 配合使用: import PocketBase from "pocketbase"; const pb = new PocketBase("http://localhost:8090"); await pb.collection("users").authWithPassword("ann@example.com", "secret"); const posts = await pb.collection("posts").getList(1, 20, { filter: 'published = true', expand: "author" }); 四处看看 记录 概览 Schema 日志 项目:指挥中心 SQL 控制台 记录编辑器 API 规则 设置:外观 邮件设计器 根据集合绘制的 schema 图:将鼠标悬停在一个集合上即可跟随其关系。 侧边栏包含各个区块和你的集合,记录在网格旁边的抽屉中打开, 状态栏显示连接、数据库和 API 基地址;浅色和深色主题遵循 GitHub 的中性色板(或你的系统)。它可在手机上使用,⌘K / Ctrl K 可跳转到任意位置,并且它只使用公共 API,因此 它能做的任何事情,你也可以用脚本实现。 这些指南也在文档站点上,带搜索功能: slonbase.com/docs。 命令 描述 slonbase serve 启动服务器(默认)。 slonbase setup 不通过 Web 向导进行设置。 slonbase health 如果本地服务器健康则退出码为 0(用于容器健康检查)。 slonbase superuser upsert|update|delete|otp ... 管理超级用户。当无法发送邮件时,otp <email> 打印用于通过 MFA 登录的一次性密码。 slonbase import-pocketbase <pb_data or backup.zip> 导入一个 PocketBase 安装。 slonbase migrate up|down|create|collections|list ... 应用、回滚或编写迁移。 slonbase project list|create|delete ... 管理项目;--project <name> 在单个项目上运行 superuser、import-pocketbase 和 migrate。 slonbase --help 列出所有选项。 在与 PocketBase 和 PostgREST 的对比中,在相同机器、相同数据和相同 HTTP 工作负载、默认设置下(请求方法及完整结果): 32 个客户端,在 4-vCPU 虚拟机上三次 10 秒运行的中位数。slonbase 在所有测试场景中都领先, 从 PocketBase 吞吐量的 1.2 倍(登录,受 bcrypt 限制)到 68 倍(过滤 列表,PostgreSQL 使用了索引)。PostgREST 是一个更精简的程序,做的也少得多(没有登录、 文件、实时或仪表盘):15 MB 的进程对 slonbase 的 40 MB。写入在 PostgreSQL 默认持久性下 领先于 PocketBase,当 PostgreSQL 做出与 SQLite 默认相同的取舍时领先更多 (synchronous_commit = off;参见原因)。列表则

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →