Skip to content

Latest commit

 

History

24 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileShare

FileShare 是一款面向 NAS 的轻量级、自托管文件分享系统,基于 Node.js、Express 和 SQLite 构建,支持 fnOS FPK 安装部署。

当前版本

2.0.3

主要功能

  • 本地共享目录浏览与文件分享
  • WebDAV 文件服务器配置、连接测试和目录浏览
  • WebDAV 远程文件分享、预览、下载和 ZIP 打包
  • 提取码、过期时间和访问次数限制
  • SVG 验证码
  • 图片、视频、音频、文本和 Markdown 在线预览
  • JWT 认证、HttpOnly Cookie 和 bcrypt 密码哈希
  • 访问审计和日志轮转
  • 响应式管理后台与深浅色主题
  • fnOS FPK 安装、升级和卸载脚本

目录结构

FileShare/
├── app/
│   ├── server.js          # Node.js 服务端
│   ├── public/             # Web 前端页面
│   ├── package.json        # 依赖和启动配置
│   └── bin/                # FPK 内置 Node.js 启动入口
├── cmd/                    # fnOS 生命周期脚本
├── config/                 # fnOS 权限和资源配置
├── wizard/                 # 安装、升级、卸载向导
├── ui/                     # fnOS 应用入口配置
├── manifest                # FPK 清单
├── FileShare.sc            # fnOS 应用商店描述
├── ICON.PNG
└── ICON_256.PNG

本地运行开发服务

进入 app 目录后安装依赖并启动:

cd app
npm ci
npm start

默认服务端口为 6606。数据目录、共享目录和管理员初始化参数由 fnOS 安装配置注入;开发环境请按 server.js 中的环境变量说明配置。

fnOS 打包

项目根目录是 FPK 解包结构。打包时需要将根目录文件打入外层 FPK,将 app 目录及其运行时依赖打入 app.tgz,并同步更新 manifest 中的 checksum。app/bin/node 和 app/bin/fileshare-server 必须保持可执行权限。

构建产物不纳入 Git 版本控制,最终 FPK 文件请放到本地 outputs/ 目录保存。FPK 内置的 app/bin/node 运行时二进制约 122 MB,超过 GitHub 单文件限制,因此由打包流程在本地或 CI 环境注入,不提交到仓库。

安全说明

  • 不要提交 data/、数据库、JWT 密钥、上传文件或日志。
  • WebDAV 密码只写入服务端配置,不通过管理端设置接口原样返回。
  • 首次安装管理员账号和密码由安装向导配置,不使用固定默认密码。
  • 生产环境请通过 HTTPS 或受信任的反向代理访问管理后台。

License

MIT

About

FileShare 是一款轻量级、自托管的文件分享系统,用 Node.js + SQLite 构建,无需任何外部依赖,一个命令即可部署运行。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages