Chibisafe 介绍与选型指南

Chibisafe(原 lolisafe)自托管文件上传与分享服务的定位、核心架构、功能特性、快速开始与同类选型对比,全部信息溯源官方仓库与文档站(查询日期 2026-10-30)。

ChibisafeChibisafe文件分享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/chibisafeNext.js 构建的 Web 界面与上传前端,通过 BASE_API_URL 指向后端内部 8001
后端(server)chibisafe/chibisafe-serverAPI 服务,负责鉴权、分块合并、数据库元数据、缩略图与统计内部 8000
入口(caddy)caddy:2-alpine极简 Caddy 实例,把前端与后端「合并成 1 个对外端口」,并直接以文件服务器角色对外吐出 uploads/ 里的文件对外 24424→80

架构上有两个值得注意的设计决策:

  1. 文件直出:上传文件的 GET 请求不经过后端应用进程,而是由 Caddy 直接以静态文件服务器方式从 uploads/ 目录吐出(Caddyfile 中 file_server + pass_thru),应用进程只处理 /api/* 与 /docs* 路径。这让大文件的下载吞吐不受 Node 进程单线程事件循环的制约。
  2. 上传内容安全策略:官方 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 分区)。

💡 技术拓展:自托管文件床的「元数据存储」常见三种形态对比——

形态代表产品特点适用场景
内嵌 SQLiteChibisafe、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):

项目星数语言/形态存储后端账号与模式桌面工作流
Chibisafe2.8kTypeScript(Next.js 前端 + Node 后端 + Caddy 入口)本地目录 / S3 兼容三模式(公开/账号/邀请制)+ 用户配额ShareX + iOS 快捷指令 + 浏览器扩展
Zipline3.5kTypeScript(Next.js 全栈)本地目录 / S3 兼容多用户 + OAuth 登录ShareX / ShareX 自定义上传器生态
PicoShare3.1kGo(单二进制 + SQLite)本地目录简单账号(管理员+访客链接),无注册体系ShareX 支持
Gokapi2.9kGo(单二进制)本地目录 / AWS S3 兼容管理员单账号为主,链接可加密与限期无内建,靠 API/第三方
XBackBone1.2kPHP(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。

八、参考链接

(以上外部链接与数据均于 2026-10-30 查询验证。)