大家好,我是热爱开源的了不起。
你是不是也曾因为数据分散在 SFTP、FTP、WebDAV、S3 或 Git 仓库等多个地方,而每次切换客户端太麻烦?或者在外面需要随时访问公司内部存储但又要担心安全、配置复杂的问题?这些问题在远程工作、多云环境或自建服务器的情况下尤其常见。
如果有一个 web 界面,就能把这些后端统一挂起来,从浏览器里像用云盘一样管理所有文件,那该多爽!这正是 Filestash 可以帮你解决的:把各种后端存储协议在一个界面里统一呈现,操作直观、灵活又安全。
项目简介
什么是 Filestash
Filestash 是一个开源、自托管的 web 文件管理器/客户端,它支持多种存储后端与协议。你通过浏览器就能管理远程的文件,就像管理本地云盘那样简单。
它支持的协议/后端包括:FTP、FTPS、SFTP、WebDAV、Git、S3(包括 MinIO)、SMB、NFS、LDAP、甚至 Google Drive、Dropbox 等等。
项目采用 AGPL-3.0 授权协议,意味着你完全可以自由使用、修改并部署,只要你保留原有的开源许可条款。
Filestash 的设计理念偏向“模块化/插件驱动”,功能、用户认证、后端挂载、权限控制等很多部分都是通过插件来扩展或替换的。

项目安装与使用
安装方式
你可以在多种平台上安装或部署 Filestash,几种常见方式如下:
Docker
这是最常见也最方便的一种方式,适合快速启动一个实例。
1 | docker run -d \ |
你可以加环境变量配置,挂载本地目录来持久化状态或配置。官方 Docker 镜像在 Docker Hub 可用。
本地安装 / 二进制
如果你不想用 Docker,可以从 GitHub 克隆源代码然后编译。项目由 Go 与前端框架混合组成,构建过程包含后端 server、前端 client 等组件。
也可以用包管理或操作系统的方式(视乎是否有非官方包或者社区支持)来安装。依赖项一般是 Go 环境 + Node / JavaScript 构建工具(前端) + Web 服务器/反向代理(如 nginx)来提供外网访问。
Kubernetes / Helm
如果你使用 Kubernetes,也有 Helm Chart 可用来部署 Filestash。比如 jemand/helm-filestash 这样的 Helm Chart(虽然有些已归档/迁移)可以用来简化在 Kubernetes 上的部署。
简单使用案例
下面是一个基本的使用场景,假设你想用浏览器访问你的 SFTP 服务器和某个 S3 存储桶,并且允许多人访问。
1、启动实例
使用 Docker 启动 Filestash:
1 | docker run -d --name filestash \ |
2、访问界面
打开浏览器访问 http://你的服务器:8334,你会看到 Filestash 的登录/欢迎页面。
3、添加后端
登录后,在“后端连接”(Backend)界面里添加一个 SFTP 后端:填地址、端口、用户名/密码(或密钥)等。再添加一个 S3 后端,提供 AccessKey、SecretKey 和桶名。
4、浏览与操作
在左侧栏/界面里选择对应的后端,就可以浏览文件夹、上传/下载文件、重命名、删除、新建文件/文件夹等操作。
5、分享与权限
如果你要与同事共享某个文件夹或文件,可以生成“共享链接”。或者如果你启用了插件支持 LDAP、OpenID/OIDC 等,就可以让多个用户用已有身份登录。
6、API & MCP
Filestash 提供内置 API,你可以用来自动化操作(列文件、上传、下载等)。MCP(Model Context Protocol)功能甚至让你能通过命令行或 LLM 工具连接、查询文件结构。
总结
Filestash 的亮点在于它将分散的存储资源通过一个统一、直观的 Web 界面整合起来。你无需安装多个客户端,也无需在不同协议之间不断切换;它支持丰富的协议、插件驱动的认证与权限管理;界面现代、响应迅速,并且支持移动端浏览与操作。
而且,最关键的是:这是一个免费、开源的项目。你可以自托管,自己完全掌控数据、安全性和配置。对于个人、团队、学校或者小型企业来说,这种自主可控的好处非常大。
希望你能尝试用 Filestash 管理你的文件,让文件管理变得简单、清爽、有序!感兴趣的朋友赶快去试试吧 ~
1 | 项目地址:https://github.com/mickael-kerjean/filestash |