DirForge 是一个简单但实用的只读目录浏览 Web 应用,专为家庭实验室和 NAS 高级用户设计。它是一个无状态、只读的 Web 文件浏览器,没有数据库、没有后台工作进程,也不写入磁盘——只需将挂载路径指向它即可使用。这使得它非常轻量且易于部署。
主要用途
DirForge 的核心用途是让用户通过浏览器或 API 安全地浏览、搜索和获取服务器上特定目录中的文件,而无需授予写入权限。它适用于需要快速查看 NAS 或服务器文件、分享单个文件或整个文件夹、以及让 AI 助手访问文件系统的场景。
核心功能
- Web 界面:列表和网格视图,支持按名称、大小、日期排序,提供浅色/深色主题。
- 文件预览:支持文本、图片、视频、音频和 PDF 的弹窗预览,图片支持灯箱导航。
- 压缩包浏览:可在浏览器内查看 .zip、.tar、.tar.gz、.tgz 和 .gz 文件内容。
- 搜索:递归搜索,可配置深度和时间预算。
- 文件操作:支持直接下载单个文件,或将整个文件夹打包为 ZIP 下载(可配置最大大小)。
- 分享功能:生成带有效期的签名分享链接、一次性分享链接,以及分享链接的二维码。
- 哈希与校验:计算文件哈希(CRC32、MD5、SHA-1、SHA-256、SHA-512),并支持校验 .md5、.sha1 等校验文件。
- 只读 WebDAV:位于 /webdav/,支持 OPTIONS、PROPFIND、GET、HEAD 方法,兼容 Windows 资源管理器、macOS Finder 等。
- S3 兼容 API:位于 /s3/,支持 ListBuckets、GetBucketLocation、ListObjectsV2、GetObject、HeadObject 等操作,兼容 aws cli、rclone、MinIO 客户端。使用 AWS Signature V4 认证。
- MCP 服务器:位于 /mcp/,让 AI 助手(如 Claude Code、Codex)能够浏览目录、读取文件、按名称或内容搜索、检查哈希、查找重复文件、获取磁盘使用报告等。
- RESTful JSON API:位于 /api/,用于浏览、搜索、分享和归档。
- 仪表盘与指标:内存中的仪表盘位于 /dashboard,可配置独立凭证;Prometheus 指标位于 /metrics;集成统计 JSON 位于 /dashboard/stats。
使用方式
依赖与安装
需要 Docker 或 Podman(镜像支持 amd64 和 arm64)。也可从最新发布版下载独立版本:Windows 版 dirforge-win-x64.zip,Linux 版 dirforge-linux-x64.tar.gz 或 linux-arm64。
快速启动(Docker/Podman)
使用 Docker 或 Podman 运行容器,具体命令与 Compose 示例见官方文档。Podman 4.1+ 可使用 podman compose 子命令。在 SELinux 系统上,挂载卷需添加 :z,如 -v /srv/share:/data:ro,z。
独立部署(Windows)
- 下载 dirforge-win-x64.zip 并解压。
- 编辑 appsettings.json,设置 RootPath 为要共享的目录。
- 控制台模式:双击 DirForge.exe 运行。
- Windows 服务:以管理员身份运行 install-service.bat,服务将随系统启动;使用 uninstall-service.bat 卸载。
独立部署(Linux)
- 下载并解压 tar 包到 /opt/dirforge。
- 直接运行 ./DirForge,或安装为 systemd 服务(tarball 内包含示例 dirforge.service)。
访问与配置
默认访问 http://localhost:8091。配置项可在 src/DirForge/appsettings.json 中定义,并通过同名环境变量覆盖。布尔值必须为 true 或 false。完整选项参见 .env.example。建议仅挂载需要暴露的目录,优先使用只读挂载(:ro)。
安全与限制
- 认证:支持 HTTP Basic Auth、Bearer Token(通过可配置头部)、反向代理外部认证(如 Authelia、Authentik)。可同时启用 Basic 和 Bearer,任一即可通过。
- 安全策略:支持通过点文件标志或 glob 模式隐藏文件,按扩展名拒绝下载,固定窗口速率限制(按 IP 和全局)。隐藏路径和拒绝扩展名对直接下载和 ZIP 输出均生效。
- WebDAV 限制:Windows 资源管理器的 WebDAV 客户端默认拒绝在纯 HTTP 上使用 Basic Auth,需使用 HTTPS(推荐)或修改注册表 BasicAuthLevel 为 2。所有写方法返回 405。
- S3 限制:默认禁用,需设置 EnableS3Endpoint=true。所有写操作返回 405。凭证必需,否则应用无法启动。
- MCP 限制:需 EnableMcpEndpoint=true(默认)并设置 BearerToken。所有隐藏/拒绝/认证策略同样适用。
- 符号链接与硬链接:DirForge 跟随符号链接,但强制包含性——每个链接目标必须解析到 RootPath 下的路径,否则被静默阻止。递归操作会跟踪已访问的规范路径以防止循环。硬链接被视为普通文件,无特殊处理。
- 默认凭证警告:默认 compose 文件在未设置 BasicAuthUser 和 BasicAuthPass 时会回退到 admin/dirforge,网络暴露前务必修改。
- 基线默认面向家庭网络,并非互联网加固。建议在生产环境设置 ShareSecret 为长随机值,否则分享链接在重启后重置。
- 仪表盘和指标数据仅存于内存,重启后重置。
- 静态 UI 资源从 /dirforge-assets/* 提供,且有意公开。
适用场景
DirForge 非常适合家庭实验室用户、NAS 管理员、需要安全分享文件或文件夹的个人、希望让 AI 助手访问文件系统的开发者,以及需要通过 S3 或 WebDAV 协议集成文件浏览的自动化场景。
分类
根据其作为 AI 开发平台/MCP 服务器的特性,DirForge 归类为 AI 开发平台(ai-frameworks)。