开源Filestash 搭建“多合一”文件管理器

开源Filestash 搭建指南

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


一、Filestash 核心定位

主要功能:是一个功能强大的"多合一"文件管理器。它可以让你直接用网页浏览器管理分散在各个地方的文件,比如 SFTP、Google Drive、FTP、WebDAV、Git 仓库等。它既是你的文件管家,也是随身的百宝箱,支持在线播放音乐、视频,还能像网盘一样生成分享链接。不管是开发、日常文件管理,还是公司内部存储整合,这个项目都能轻松应对。

解决痛点

  • 企业数据分散在FTP/SFTP/S3/WebDAV等不同存储,管理困难
  • 需要简洁安全的文件共享方案,替代臃肿的Nextcloud/ownCloud
  • 快速实现私有化网盘部署,避免公有云数据泄露风险

产品定位

  • 轻量级:单个Docker容器即可运行(资源占用<100MB)
  • 协议聚合器:统一管理多种存储后端
  • 零客户端依赖:纯Web端操作,移动设备完美适配

二、核心功能全景

功能类别 具体能力
存储支持 FTP/SFTP/S3/MinIO/WebDAV/Backblaze/Dropbox/Git/MySQL等20+协议
文件管理 在线预览(Office/PDF/图片/视频)、压缩解压、批量操作、回收站
安全控制 双因素认证、IP白名单、文件加密链接、审计日志
协同办公 文件分享(密码/时效控制)、在线编辑(OnlyOffice集成)、评论标注
扩展能力 Webhook通知、自定义CSS/JS、插件系统(Go语言开发)

三、详细搭建教程(Docker方案)

基础要求

  • Linux服务器 (1核1G+)
  • Docker & Docker Compose
  • 域名(可选,推荐配置)
python 复制代码
# 创建数据目录
mkdir -p /opt/filestash/{data,config}
mkdir -p /opt/filestash/data/state/log
tree /opt/filestash/data -L 3
chmod -R 775 /opt/filestash/data
chown -R 1000:1000 /opt/filestash/data

# 1. 创建docker-compose.yml
cat > /opt/filestash/docker-compose.yml <<EOF
version: '3'
services:
  filestash:
    image: machines/filestash
    container_name: filestash
    user: "1000"
    environment:
      - APP_SECRET=your_strong_password_here  # 安全密钥
      - LISTEN_PORT=8334                     # 监听端口
    volumes:
      - /opt/filestash/data:/app/data:rw       # 持久化数据
      - /opt/filestash/config:/app/config     # 配置文件
    ports:
      - "8334:8334"                          # 主机端口:容器端口
    restart: unless-stopped
EOF

# 2. 启动服务
docker-compose -f /opt/filestash/docker-compose.yml up -d

# 3. 验证状态
docker logs filestash --tail 50

如果配置有问题

重建容器(强制更新配置)

python 复制代码
docker-compose down
docker-compose up -d --force-recreate

访问控制台

http://服务器IP:8334 → 首次登录设置管理员账户密码,然后进入后台

如果没有FTP或者S3存储,可直接选择local 使用本地进行存储

重新访问http://服务器IP:8334

密码为上面首次登录设置管理员账户密码


四、存储后端配置实战

案例1:连接SFTP服务器

  1. 控制台点击 "+" → 选择 SFTP
  2. 参数配置:
python 复制代码
主机: sftp.yourcompany.com
端口: 22
用户名: deploy
认证方式: 
   - 密码认证(推荐密钥认证)
   - 私钥路径: /app/config/ssh_key  # 需提前挂载密钥
  1. 高级选项:
python 复制代码
根目录: /data/team_docs  # 限制访问路径
文件过滤: *.docx,*.xlsx  # 只显示办公文档

案例2:接入AWS S3存储桶

python 复制代码
服务提供商: AWS S3
区域: ap-southeast-1
存储桶名称: company-backup
访问密钥: AKIAXXXXXXXXXXXXXXXX
秘密密钥: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
访问策略: 
  - 只读模式(禁止删除)
  - 文件大小限制: <500MB

五、企业级功能实操

在线协作

python 复制代码
# 启用OnlyOffice集成
1. 编辑config.yml
   office_editing: 
     enabled: true
     api_url: "http://onlyoffice-server"

2. 重启服务
docker-compose restart

审计日志

日志路径:/opt/filestash/data/logs/audit.log

python 复制代码
[2023-10-27 14:30:22] User:admin@company.com IP:172.16.1.23 
Action: DOWNLOAD File:"/财务报告Q3.pdf" 

六、性能优化方案

Nginx反向代理配置

python 复制代码
server {
    listen 80;
    server_name files.yourdomain.com;
    
    location / {
        proxy_pass http://localhost:8334;
        proxy_set_header X-Real-IP $remote_addr;
        
        # WebSocket支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    
    # 强制HTTPS
    return 301 https://$host$request_uri;
}

HTTPS配置(Let's Encrypt)

python 复制代码
certbot --nginx -d files.yourdomain.com

资源限制策略

python 复制代码
# 修改docker-compose.yml
deploy:
  resources:
    limits:
      memory: 512M
    reservations:
      memory: 256M

七、故障排除指南

故障现象 排查命令 解决方案
无法加载存储后端 docker exec filestash netstat -tunlp 检查端口连通性
文件上传中断 tail -f /opt/filestash/data/logs/error.log 调整Nginx超时设置
预览功能失效 浏览器F12查看Console错误 检查OnlyOffice服务状态
登录后闪退 rm /opt/filestash/config/.session_* 清除会话缓存

八、同类产品对比

特性 Filestash Nextcloud Seafile
部署复杂度 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐
存储协议支持 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐
移动端体验 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
集群支持
资源占用 <100MB >1GB >500MB

九、适用场景建议

  • 推荐使用
    • 中小企业统一文件门户
    • 开发团队管理服务器文件
    • 替代FTP客户端的Web方案
    • 临时安全文件分享场景
  • 不推荐使用
    • 需要完整日历/邮件套件
    • 超大规模分布式存储
    • 需要精细权限控制(AD集成弱)
相关推荐
OpenCSG4 小时前
【活动预告】2025斗拱开发者大会,共探支付与AI未来
人工智能·ai·开源·大模型·支付安全
科技新知5 小时前
大厂AI各走“开源”路
人工智能·开源
TGITCIC5 小时前
LLaVA-OV:开源多模态的“可复现”革命,不只是又一个模型
人工智能·开源·多模态·ai大模型·开源大模型·视觉模型·大模型ai
Oo小刚oO9 小时前
Node-Red的配置文件
开源
Oo小刚oO9 小时前
Node-Red的部署与启动
开源
半夏微凉半夏殇18 小时前
除了arm 还有那些开源的芯片架构
arm开发·架构·开源
ajassi200019 小时前
开源 C++ QT QML 开发(二十二)多媒体--ffmpeg编码和录像
c++·qt·开源
言之。1 天前
介绍近期github上有名的开源项目
开源·github
惘嘫、冋渞1 天前
CentOS 7上Python3.10报错 No module named ‘_ssl‘
开源