收藏链接这件事,大多数人停在浏览器书签栏里,直到换设备、重装系统或想找一条两年前存的文章时才发现它早已散落各处。Shaarli 提供了另一种做法:把书签存成服务器上的一组文件,用网页界面管理,可打标签、可搜索、可公开分享。它用 PHP 写成,不需要 MySQL 或 PostgreSQL 这类数据库服务,部署完就是一个能长期运行的私人链接库。
没有数据库,书签存在哪儿

Shaarli 的数据层是文件系统。每添加一条书签,它写入一条记录,标签、描述、时间戳一并保存,检索时直接读取这些文件。省掉数据库带来两个直接结果:部署时不必配置数据库连接、创建用户和授权,上传代码、给目录写权限、设置登录凭据就能跑起来;备份和迁移也简单,把数据目录打包带走,换一台机器解压即可恢复,不存在导出 SQL、导入 SQL 的中间环节。代价是当书签量级非常大时,文件检索的性能表现取决于具体环境,这一点与数据库方案不同。
添加与检索一条链接的实际动作
在 Shaarli 里保存链接的流程很短:把 URL 粘进输入框,页面会自动抓取标题和描述作为初稿,手动补上标签后保存。标签是它的主要组织手段,一条书签可以挂多个标签,点击任意标签就能筛出同类条目。搜索框支持按关键词在标题、描述和标签中查找,找旧链接时不必回忆当初存在哪个文件夹。它还提供书签的公开或私有状态,公开条目可以生成一个对外可访问的列表页,相当于用同一套数据同时充当私人收藏和链接分享页,不需要另外搭一个博客或导航站。
自托管省下的订阅费与付出的运维成本
Shaarli 以开源形式发布,代码托管在社区仓库中,采用 PHP 语言,主题覆盖书签管理、自托管等方向,在开发者社区积累了一定关注度。选择自托管意味着不用为书签服务支付订阅费用,数据留在自己的服务器上,不受第三方服务关停或改版影响。对应地,需要自己准备一台能运行 PHP 的机器、处理域名与 HTTPS、定期备份数据目录,并跟进版本更新。托管型书签服务把这些工作揽过去,代价是数据存在别人那里、功能与导出能力受服务方限制。判断标准很直接:愿意为数据掌控承担运维,就选自托管;只想点开就用、不碰服务器,托管服务更省事。
几个能落地的使用方式
把 Shaarli 当作个人知识库的入口,长期积累技术文章、工具页面和参考资料,用标签区分主题,需要时按标签调取,比浏览器书签更适合跨设备、跨浏览器的场景。也可以把它当成团队内部的链接中转站:部署在内网,成员把常用文档、后台地址、监控面板链接集中存放,公开列表页作为统一入口,省去反复在聊天记录里翻链接。对于运营个人链接分享页的人,公开书签列表可以直接当作轻量导航页使用,新增条目即更新页面,不需要改动前端代码。
| 维度 | Shaarli 的做法 | 典型托管书签服务 |
|---|---|---|
| 数据存储 | 服务器文件,无数据库 | 服务商数据库 |
| 部署方式 | 自行部署 PHP 环境 | 注册即用 |
| 成本构成 | 服务器与运维投入 | 订阅费用 |
| 数据掌控 | 完全由自己持有 | 受服务方条款约束 |
| 分享能力 | 公开列表页对外可访问 | 依服务功能而定 |
Shaarli 的定位很清楚:给愿意自己维护一台服务器的人,提供一个不依赖数据库、数据完全自持的书签与链接分享工具。依赖现成托管服务、不想碰运维的人,用它会觉得多了一层负担;把数据主权和长期可用性放在前面的人,它的文件式存储和轻量部署正好对上需求。
FAQ:常见问题
Shaarli 真的不需要数据库吗?数据存在哪里?
不需要。Shaarli 用 PHP 编写,书签数据以文件形式存放在服务器目录中,不依赖 MySQL 或 PostgreSQL。备份时直接打包数据目录即可,迁移到新服务器解压就能恢复。
自己部署 Shaarli 和用托管书签服务,主要差别在哪?
差别集中在数据归属和运维分工。自托管把书签存在自己的服务器上,不付订阅费,但要自行处理环境、域名、HTTPS 和备份;托管服务省去这些工作,数据则存放在服务商那里,导出和功能受其限制。
