Gm-aaa's blog.

Filetash:快速搭建自己的云文件管理器

字数统计: 861阅读时长: 3 min
2025/11/16
loading

Filestash 是一个轻量级、开源的现代 Web 文件管理器

官网:https://www.filestash.app/

用一句话概括它的核心逻辑:它不是一个存储系统(像 Nextcloud),而是一个连接现有存储协议的“通用网关”或“前端皮肤”。

它的核心理念是:你的数据依然保存在原来的地方(如 S3、SFTP 服务器、WebDAV 等),Filestash 只是提供了一个像 Dropbox 一样优雅的 Web 界面来管理和访问这些数据。

核心特性与支持的协议

标准协议: SFTP (SSH), FTP, FTPS, WebDAV.

对象存储: S3 (AWS, MinIO, Wasabi, 阿里云 OSS 等)。

云盘服务: Google Drive, Dropbox, OneDrive.

开发相关: Git (作为一个 Git 的 Web GUI 使用)。

本地数据库: Mysql, Postgres (作为简单的数据库查看器)。

关键功能亮点

极低资源占用: 后端使用 Go 语言编写,前端是 React。内存占用极低,非常适合树莓派或低配 VPS 运行。

在线上传: 可以在web端随时随地上传文件至指定的存储。

强大的预览功能:

  • 视频/音频: 支持在线流媒体播放,支持转码(Transcoding),可以在浏览器里直接看 NAS 里的电影。
  • 图片: 拥有类似 Lightroom 的简单修图功能,支持大量 RAW 格式预览。
  • 文档: 支持 Office 文档预览。

分享机制: 可以像百度网盘一样生成公共分享链接,支持设置密码和过期时间。

Demo预览

image-20251120190220911

image-20251120190321327

image-20251120190412992

部署

我采用最方便快捷的docker-compose来部署filetash

version: '2'
services:
app:
container_name: filestash
image: machines/filestash
restart: always
environment:
- APPLICATION_URL=https://你的域名.com
# 如果你需要使用高阶功能,才需要配GDPR等选项或数据库连接
ports:
- "8334:8334"
volumes:
- ./filestash_data:/app/data/state/

volumes:
filestash_data:

随后采用Nginx反代

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name 你的域名;

# --- SSL 证书配置 (Certbot 默认路径) ---
# 请确保您已为 file.gmaaa.cloud 申请了证书
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;

# --- SSL 安全优化 ---
ssl_session_timeout 1d;
ssl_session_cache shared:SSL_FILE:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;

# --- 核心配置 ---

# 解除上传大小限制 (重要:否则无法上传大文件)
client_max_body_size 0;

location / {
# 反向代理到 Filestash 端口
proxy_pass http://127.0.0.1:8334;
proxy_buffering off;
proxy_cache off;
# 传递头部信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Origin $scheme://$http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_headers_hash_max_size 1024;
proxy_headers_hash_bucket_size 128;
proxy_cookie_path /api/ /;
proxy_cookie_path / /;
proxy_cookie_flags ~ secure httponly samesite=lax;
proxy_cookie_domain ~^.*$ $host;
proxy_redirect http:// https://;
proxy_redirect http://127.0.0.1:8334/ https://$host/;
# 这能确保 Chrome/Edge 绝对不会因为“不安全”而丢弃 Cookie
proxy_cookie_path / "/; secure; HttpOnly; SameSite=Lax";
proxy_set_header X-Forwarded-Scheme $scheme;
# --- WebSocket 支持 (Filestash 必须) ---
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}

总结

Filestash 是一个“中间件”性质的文件管理器。

  • 优点: 极快、兼容性极强(S3/SFTP)、无侵入性(不乱改文件结构)、部署简单。
  • 缺点: 缺乏多用户协同办公功能(如在线同时编辑 Word),大文件上传受限于浏览器和反代配置。

如果你只是想要一个干净、快速的界面来通过网页访问你分散在各处(NAS、云服务器、对象存储)的文件,它是目前开源界的最佳选择之一。

CATALOG
  1. 1. Filestash 是一个轻量级、开源的现代 Web 文件管理器
  2. 2. 核心特性与支持的协议
  3. 3. 关键功能亮点
  4. 4. Demo预览
  5. 5. 部署
  6. 6. 总结