← 返回首页

📁 nowen-file
现代化文件管理系统 · 多数据源 · WebDAV · 版本管理

项目介绍

nowen-file 是一个使用 Go + React 构建的现代化文件管理系统,支持 多数据源映射WebDAV 协议文件分享版本管理,打造你自己的"百度网盘"。

🎯 设计目标:统一管理本地文件、NAS 上的 SMB/NFS 共享、S3 对象存储,全部通过一个现代化的 Web UI。

核心功能

📁 文件管理

📂

完整 CRUD

创建 · 上传 · 下载 · 重命名 · 移动

🔍

文件搜索

关键词搜索 & 按类型浏览(图片/视频/音频/文档)

🗑️

回收站

软删除 + 恢复,防止误操作

🔗

文件分享

链接分享 · 密码保护 · 自定义有效期

📝

版本管理

历史版本记录 · 一键回滚 · 版本删除

🖼️

文件预览

在线预览图片 / PDF / 文本 / 视频 / 音频

👤 用户与管理

  • 用户系统 — 注册 / 登录 / JWT 认证
  • 存储空间统计 — 用量监控、配额管理
  • 管理员后台 — 系统概览、用户管理、审计日志
  • 操作审计 — 完整的用户操作日志记录

🔌 数据源映射(核心亮点)

映射 Windows / Linux / NAS 上的目录进行 统一管理,数据无需复制:

支持的挂载类型
local   # 本地目录
smb     # SMB/CIFS 网络共享(Windows 共享)
nfs     # NFS 挂载(Linux/Unix 共享)
agent   # 远程 Agent(规划中)

📡 WebDAV 协议

通过文件管理器直接 挂载网络驱动器。Windows 用户可在「映射网络驱动器」中输入 http://localhost:8080/dav,使用注册用户名密码认证即可。

☁️ 多存储后端

支持 本地存储S3 / MinIO 对象存储,通过环境变量切换。

技术栈

🐹

后端

Go 1.25 · Gin · GORM · SQLite (纯 Go,无需 CGO) · JWT · MinIO SDK

⚛️

前端

React 18 · TS 5.3 · Ant Design 5 · Zustand · Axios · Vite 5

快速开始

🐳 Docker 一键启动

Terminal
# 拉取镜像(自动匹配 amd64/arm64 架构)
$ docker pull nowen/nowen-file:latest

# 启动
$ docker run -d \
    --name nowen-file \
    --restart unless-stopped \
    -p 8080:8080 \
    -v /your/path/data:/app/data \
    -e NOWEN_JWT_SECRET=your-secret-key \
    nowen/nowen-file:latest

# 访问 http://NAS的IP:8080

💻 本地开发

Terminal — Go 1.21+ / Node 18+
# 后端 (:8080)
$ go mod tidy
$ go run main.go

# 前端 (:3000,自动代理 API 到 :8080)
$ cd web && npm install && npm run dev

关键配置

环境变量
# 基础配置
NOWEN_PORT=8080                                    # 服务端口
NOWEN_DB_PATH=./data/nowen.db                     # SQLite 路径
NOWEN_UPLOAD_DIR=./data/uploads                   # 上传目录
NOWEN_JWT_SECRET=change-me                        # 生产必改!
NOWEN_MAX_UPLOAD=1073741824                        # 1GB

# S3/MinIO(当 NOWEN_STORAGE_TYPE=s3 时生效)
NOWEN_STORAGE_TYPE=s3
NOWEN_S3_ENDPOINT=minio.local:9000
NOWEN_S3_BUCKET=nowen-file
NOWEN_S3_ACCESS_KEY=...
NOWEN_S3_SECRET_KEY=...

NAS 部署(全家桶)

项目在四大 NAS 平台均有详细部署指南:

🟢

绿联 NAS

Docker → 镜像搜索 nowen/nowen-file

🔵

群晖 Synology

Container Manager 项目部署(DSM 7.2+)

🟠

威联通 QNAP

Container Station 创建容器

🟤

飞牛 fnOS

Docker 管理拉取并创建容器

API 速览

主要端点
# 认证
POST /api/auth/register      # 注册
POST /api/auth/login         # 登录

# 文件管理
GET  /api/files/list         # 文件列表
POST /api/files/upload       # 上传文件
GET  /api/files/download/:uuid # 下载文件
GET  /api/files/preview/:uuid  # 在线预览

# 分享
POST /api/share              # 创建分享
GET  /api/share/:code        # 公开访问

# 数据源
POST /api/mounts             # 创建数据源
POST /api/mounts/:id/scan    # 触发扫描

# WebDAV 入口
ALL  /dav/*                  # 完整 WebDAV 协议

相关链接

📂 源码仓库: github.com/cropflre/nowen-file
📜 开源协议: MIT