Chibisafe 介绍与选型指南
Chibisafe(原 lolisafe)自托管文件上传与分享服务的定位、核心架构、功能特性、快速开始与同类选型对比,全部信息溯源官方仓库与文档站(查询日期 2026-10-30)。
Chibisafe 介绍与选型指南
目标:本篇是 Chibisafe 的认知与选型篇,解决「Chibisafe 是什么、能做什么、与同类自托管文件上传/分享服务相比该怎么选」的问题。全篇信息均溯源自官方仓库与官方文档站(来源与查询日期 2026-10-30 已逐项标注),部署实测与配置细节见本专栏后续篇章。
一、环境信息
本篇为认知溯源篇,不依赖本地部署环境,以下列出溯源所用的信息源与版本事实(查询日期均为 2026-10-30):
- 软件名称:Chibisafe(前身为 lolisafe,2017 年发布,2020 年前后更名为 Chibisafe)
- 最新稳定版本:v6.7.0(来源:GitHub Releases 页
https://github.com/chibisafe/chibisafe/releases/latest重定向与 releases 列表第一条,https://img.shields.io/github/v/tag/chibisafe/chibisafe.json交叉确认) - 开源许可:MIT(来源:仓库 README 徽章与 LICENSE 文件)
- 主仓库:
chibisafe/chibisafe(来源:GitHub) - 社区热度:GitHub Stars 约 2.8k(来源:
https://img.shields.io/github/stars/chibisafe/chibisafe.json,查询日期 2026-10-30) - 官方文档站:https://chibisafe.app (Docusaurus 构建,含 Installation / Storage / Uploaders 三大分区)
- 官方镜像:
chibisafe/chibisafe(前端)与chibisafe/chibisafe-server(后端),发布于 Docker Hub(来源:官方文档 Running with Docker 页)
二、软件概述
Chibisafe 是一个用 TypeScript 编写的自托管文件上传与分享服务,官方的定位描述是「a file uploader service written in typescript that just works」(来源:仓库 README,查询日期 2026-10-30)。它接受文件、照片、文档等任意类型的内容,上传完成后返回一个可直接分发的分享链接。服务支持三种运行模式:公开模式(任何人可上传)、用户账号模式与邀请制模式(invite-only),由管理员在后台一键切换。
对个人与团队而言,Chibisafe 解决的核心痛点是「把文件快速变成一个链接」:截图、录屏、日志、安装包、设计稿等临时性内容,用完即走,不必走网盘客户端或即时消息附件这类笨重通道。它自带完整的管理后台(dashboard),实例名称、速率限制、单文件大小上限、允许的扩展名、站点元信息等几乎所有配置都可以在 Web 界面里直接修改,不需要手工编辑配置文件——这也是它与很多「配置全靠 YAML」的同类产品的显著差异。
从版本演进看,v6(代号 Holo)是一次大规模重构:前端与后端拆分为两个独立服务,对外统一由一个入口端口(默认 24424)合并暴露;v5 迁移 v6 只需复制 uploads/ 与 database/ 两个目录,启动时自动执行数据库迁移;早于 v5 的版本则不支持直接迁移,官方建议新建实例(来源:仓库 README「Migrate from older versions」节,查询日期 2026-10-30)。
三、核心架构
Chibisafe v6 的官方 Docker 形态由三个服务组成(来源:官方文档 https://chibisafe.app/docs/installation/running-with-docker ,查询日期 2026-10-30):
| 服务 | 官方镜像 | 角色 | 端口 |
|---|---|---|---|
| 前端(web) | chibisafe/chibisafe | Next.js 构建的 Web 界面与上传前端,通过 BASE_API_URL 指向后端 | 内部 8001 |
| 后端(server) | chibisafe/chibisafe-server | API 服务,负责鉴权、分块合并、数据库元数据、缩略图与统计 | 内部 8000 |
| 入口(caddy) | caddy:2-alpine | 极简 Caddy 实例,把前端与后端「合并成 1 个对外端口」,并直接以文件服务器角色对外吐出 uploads/ 里的文件 | 对外 24424→80 |
架构上有两个值得注意的设计决策:
- 文件直出:上传文件的 GET 请求不经过后端应用进程,而是由 Caddy 直接以静态文件服务器方式从
uploads/目录吐出(Caddyfile 中file_server+pass_thru),应用进程只处理/api/*与/docs*路径。这让大文件的下载吞吐不受 Node 进程单线程事件循环的制约。 - 上传内容安全策略:官方 Caddyfile 对上传文件响应注入
Content-Security-Policy: sandbox; script-src 'none'、X-Content-Type-Options: nosniff等头部,把不可信的上传内容隔离在沙箱来源中,防止存储型脚本注入(来源:仓库 README「Uploaded file security」节,2026-10-30 查询时 README 明确要求存量安装同步更新 Caddyfile)。
数据持久化由三个目录承担:database/(内嵌数据库文件,v6 默认 SQLite,无需外部数据库)、uploads/(上传文件本体)、logs/(运行日志)。同时官方支持把存储后端切换为任意 S3 兼容对象存储(AWS S3、MinIO、Wasabi 等),切换在管理后台完成,本地目录与 S3 二选一(来源:README Features「🗄️ S3 Storage Support」及官方文档 Storage 分区)。
💡 技术拓展:自托管文件床的「元数据存储」常见三种形态对比——
形态 代表产品 特点 适用场景 内嵌 SQLite Chibisafe、PicoShare 零外部依赖、备份即拷贝目录 单机自托管 MySQL/PostgreSQL 独立库 XBackBone、Zipline 多实例共享、易于二次开发 需要外部报表/集成 纯文件系统(无库) 一些极简工具 无状态、最简 一次性传文件 Chibisafe 采用内嵌 SQLite(
database/目录),部署时无需额外准备数据库服务,是三种形态里运维成本最低的一种;本文选型也基于这一默认形态。
四、功能特性
以下特性清单全部来自仓库 README「Features of v6 aka Holo」节(查询日期 2026-10-30):
- 大文件分块上传:大文件自动分块(chunked uploads)以降低网络失败的影响,分块在服务端自动合并;
- S3 存储后端支持:可在管理后台把存储从本地目录切换为任意 S3 兼容对象存储;
- 分享直链:每个文件生成可直接访问的分享链接;
- 相册/文件夹(Albums/Folders):支持把文件归入相册或文件夹,相册同样可生成直链分享;
- 代码片段(Snippets/Gists):内置 gist 式文本片段创建与直链分享,适合分享配置片段、日志段落;
- 文件管理与标签:仪表盘内浏览、检索文件,支持瀑布流(masonry)方式浏览媒体文件,支持给文件打标签;
- 内置短链服务(URL shortener):不只收文件,也可以直接生成短链;
- 用户管理与配额:多用户、管理员可设定用户配额,支持邀请制注册;
- ShareX 开箱即用:桌面端截图/录屏一键上传(Windows 生态最常用的上传工作流);
- iOS 快捷指令:通过系统分享菜单上传文件;
- 浏览器扩展:从网页直接上传内容;
- 公开/私有/邀请制三种模式:管理员在后台切换实例的开放程度;
- 无广告无跟踪(仅记录请求 IP 日志);
- MIT 开源,可自由 fork 与商用。
把这串特性翻译成运维视角:Chibisafe 是「文件床 + 图床 + 短链服务 + 代码片段服务」四合一,且四类内容的分享链接形态完全一致(一个 URL),对使用者几乎没有学习成本。
五、快速开始(最小可用示例)
官方推荐的部署方式即 Docker Compose(来源:官方文档 Running with Docker 页,查询日期 2026-10-30;本专栏另有逐命令实测的完整部署篇)。官方给出的最小 compose 结构为三个服务:前端 chibisafe/chibisafe、后端 chibisafe/chibisafe-server、入口 caddy:2-alpine,其中后端挂载 ./database、./uploads、./logs 三个目录做持久化,Caddy 对外暴露 24424 端口(可自行改映射)。核心段落如下(官方原文节选,完整文件与逐行讲解见本专栏部署篇):
services:
chibisafe:
image: chibisafe/chibisafe:latest
environment:
- BASE_API_URL=http://chibisafe_server:8000
expose:
- 8001
restart: unless-stopped
chibisafe_server:
image: chibisafe/chibisafe-server:latest
volumes:
- ./database:/app/database:rw
- ./uploads:/app/uploads:rw
- ./logs:/app/logs:rw
expose:
- 8000
restart: unless-stopped
caddy:
image: caddy:2-alpine
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./uploads:/app/uploads:ro
ports:
- 24424:80
environment:
- BASE_URL=":80"
restart: unless-stopped
在 docker-compose.yml 旁边放置官方提供的 Caddyfile(负责 /api/* 反代到后端、其余路径按前端/静态文件分流的完整路由),然后启动:
docker compose up -d
浏览器访问 http://localhost:24424 即可进入实例。首次安装的默认管理员账号与密码均为 admin(来源:官方文档与 README 双重确认),登录后应立即修改密码——官方文档原文以 danger 级别强调这一点。
⚠️ 注意:官方特别强调,即使宿主机上已有 Nginx/Caddy 做反代,compose 栈内的 Caddy 也必须保留,不能移除或改写其路由逻辑,否则前端与后端的合并路由会断裂(来源:官方文档 danger 提示框,查询日期 2026-10-30)。
六、适用场景与限制
适合的场景:
- 个人/小团队的临时文件交换:截图、录屏、日志、构建产物的「即传即链」;
- 图床与素材分发:瀑布流浏览 + 相册管理,媒体类文件的日常归置;
- 桌面效率工作流:ShareX / iOS 快捷指令 / 浏览器扩展三条上传通路开箱即用;
- 需要对外提供「文件 + 短链 + 代码片段」统一入口的社区或团队空间;
- 想要「管理后台改配置」而非「改配置文件重启」的运维风格。
限制与注意点(来源均为官方仓库/文档,查询日期 2026-10-30):
- v6 架构下前端、后端、入口三服务缺一不可,官方明确要求保留栈内 Caddy,不能用自己的反代直接替代它合并路由;
- 早于 v5 的历史数据无法迁移到 v6,只能新建实例;
- 上传文件属不可信内容,官方要求部署时同步应用其 Caddyfile 中的安全响应头(CSP sandbox 等),自建反代或 S3 存储时需自行落地同等防护;
- 官方镜像 tag 沿用
latest/dev流(latest为稳定版、dev对应 master 分支),固定版本升级需自行关注 Releases 页; - 匿名公开模式存在被滥用的风险,公网部署建议启用用户/邀请制模式并设置速率限制(管理后台可直接配置)。
七、同类选型对比
下表从语言/形态、存储后端、账号体系、桌面工作流、社区热度五个维度,横向对比 Chibisafe 与同属「自托管文件上传/分享」赛道的四个主流项目(星数为 img.shields.io/github/stars/<repo>.json 于 2026-10-30 的返回值,其余项目事实来自各自官方仓库 README,均标注查询日期 2026-10-30):
| 项目 | 星数 | 语言/形态 | 存储后端 | 账号与模式 | 桌面工作流 |
|---|---|---|---|---|---|
| Chibisafe | 2.8k | TypeScript(Next.js 前端 + Node 后端 + Caddy 入口) | 本地目录 / S3 兼容 | 三模式(公开/账号/邀请制)+ 用户配额 | ShareX + iOS 快捷指令 + 浏览器扩展 |
| Zipline | 3.5k | TypeScript(Next.js 全栈) | 本地目录 / S3 兼容 | 多用户 + OAuth 登录 | ShareX / ShareX 自定义上传器生态 |
| PicoShare | 3.1k | Go(单二进制 + SQLite) | 本地目录 | 简单账号(管理员+访客链接),无注册体系 | ShareX 支持 |
| Gokapi | 2.9k | Go(单二进制) | 本地目录 / AWS S3 兼容 | 管理员单账号为主,链接可加密与限期 | 无内建,靠 API/第三方 |
| XBackBone | 1.2k | PHP(Laravel) | 本地目录 / S3(经插件) | 多用户 | ShareX / ShareNX / Linux 脚本模板内建 |
解读与选型建议:
- 要「全家桶」式的文件床体验(图床 + 短链 + 片段 + 相册 + 用户配额 + 全功能管理后台),Chibisafe 与 Zipline 是最接近的两个:Zipline 星数更高(3.5k)且以 Next.js 单体形态部署更紧凑;Chibisafe 的管理后台覆盖面(从站点名到速率限制全部 UI 化)与「短链/片段四合一」的完整度更突出,且官方文档站(chibisafe.app)独立成站、维护活跃;
- 要极简与低资源:PicoShare(Go 单二进制 + SQLite,3.1k)最轻,分享语义是「下载链接不过期、不转码」,适合纯下载分发场景,但没有瀑布流/相册这类媒体体验;
- 要链接安全与限时分发(对外给客户传包、下载次数/有效期控制),Gokapi(Go,2.9k)主打「轻量 AWS S3 兼容存储 + 链接加密与限期」,权限模型最克制;
- PHP 技术栈存量环境:XBackBone(PHP/Laravel,1.2k)可以直接放进既有 PHP 运行环境,ShareX 配置模板最完善,但项目迭代节奏慢于前四者;
- 综合来看:「要功能全面的现代化文件床、且希望配置全在后台完成」选 Chibisafe;「要最省心的一把梭」选 PicoShare/Gokapi;「要 OAuth 与 Next.js 生态集成」选 Zipline。
八、参考链接
- 官方网站与文档:https://chibisafe.app
- 官方 Docker 部署文档:https://chibisafe.app/docs/installation/running-with-docker
- GitHub 仓库:https://github.com/chibisafe/chibisafe
- Releases 页:https://github.com/chibisafe/chibisafe/releases
- 官方 Discord 社区:https://discord.gg/5g6vgwn
- Zipline 仓库:https://github.com/diced/zipline
- PicoShare 仓库:https://github.com/mtlynch/picoshare
- Gokapi 仓库:https://github.com/Forceu/gokapi
- XBackBone 仓库:https://github.com/sergix44/xbackbone
(以上外部链接与数据均于 2026-10-30 查询验证。)