回帖奖励 30 飞牛币 回复本帖可获得 1 飞牛币奖励! 每人限 1 次(中奖概率 80%)
收起左侧

轻量级文件分享网页系统

2
回复
7
查看
[ 复制链接 ]

3

主题

2

回帖

0

牛值

系统先锋体验团🛩️

📁 FileShare

轻量级文件分享系统

支持文件夹分享、提取码保护、SVG验证码、在线预览、管理后台

Node
License
PRs Welcome


一、✨ 功能特性

类别 特性
📂文件夹分享 后台文件树浏览,勾选文件夹/文件一键生成分享链接
🔑提取码保护 可选提取码,访问时需要验证
过期策略 精确到秒的过期时间 + 最大访问次数上限,超时自动失效
🛡️SVG 验证码 服务器端生成,算术/字符两种模式,提取/下载可分别控制
🖼️在线预览 图片 / 视频 / 音频 / 文本 / Markdown / 代码内联预览
📦智能下载 单文件直接下载,多文件/文件夹自动流式 ZIP 打包
🎨毛玻璃 UI 蓝色渐变主题,磨砂玻璃效果卡片,可收起侧栏
🔐JWT 认证 Token 认证 + bcrypt 密码哈希,安全可靠
🔤编码自适应 自动检测 UTF-8/GBK 编码,中文文本不乱码
🔗域名绑定 自定义域名生成分享链接
📎KKFileView 对接 可选集成,实现 Office 文档在线预览
🔄日志轮转 自动保持最近日志,方便排查
📱响应式布局 桌面端/手机端自适应,侧栏滑入遮罩,超宽内容横向滚动
🚀一键安装 环境检测 + 端口配置 + 依赖安装 + 启动引导

二、🖼️ 页面预览

页面 说明
首页 提取文件入口 + SVG 验证码
管理后台 文件浏览、创建分享、分享管理、系统设置
分享页 树形文件浏览、在线预览、下载、提取码验证
Screenshot_2026-05-12-11-13-16-384_mark via-edit
Screenshot_2026-05-12-11-13-48-178_mark via
Screenshot_2026-05-12-11-13-55-660_mark via
Screenshot_2026-05-12-11-14-03-845_mark via-edit
Screenshot_2026-05-12-11-14-17-500_mark via-edit
Screenshot_2026-05-12-11-14-38-707_mark via

三、📦 快速开始

3.1 环境要求

  • Node.js ≥ 16.x(推荐 18+)
  • npm(随 Node.js 安装)
node -v   # 应显示 v16.x.x 或更高
npm -v    # 应显示 8.x.x 或更高

3.2 一键安装

  • 解压
unzip FileShare.zip -d /opt
cd /opt/FileShare
  • 安装(引导式:检测环境 → 设置端口 → 安装依赖 → 启动)
sudo chmod +x install.sh
bash install.sh #或./install.sh

安装过程交互引导:

  1. ✅ 检测 Node.js/npm/curl 等工具,缺失时询问是否自动安装
  2. 🔌 设置 HTTP 服务端口
  3. 📦 自动安装 npm 依赖
  4. 🚀 可选立即启动服务

3.3 手动启动

bash run.sh start        # 启动
bash run.sh stop         # 停止
bash run.sh restart      # 重启
bash run.sh status       # 查看状态
bash run.sh log          # 查看日志

3.4 访问地址

页面 地址 用途
🏠 首页 http://你的IP:端口 提取文件入口
🔧 管理后台 http://你的IP:端口/admin 管理分享、系统设置
🔗 分享页 http://你的IP:端口/s/{分享码} 分享展示

默认管理员: admin / admin123

⚠️ 首次登录会强制要求修改密码。

四、🧭 管理后台使用指南

4.0 初始设置

  1. 使用初始密码登录,重置密码
  2. 去后台-账户安全-修改用户名
  3. 去系统设置-设置分享域名-设置内容设置和文件扫描路径
  4. 去预览设置-设置预览模式
  5. 去创建分享-选取文件,设置分享配置,分享测试

4.1 创建分享

  1. 左侧导航 → 「创建分享」
  2. 浏览文件树,勾选需要分享的文件或文件夹
  3. 可选设置:提取码、过期时间、最大访问次数
  4. 点击「创建分享」生成链接

4.2 验证码设置

「系统设置」→ 验证码设置卡片:

  • 总开关:关闭后所有验证码不生效,子选项自动隐藏
  • 类型:算术验证码 / 字符验证码
  • 提取前验证:首页提取文件时验证
  • 下载前验证:分享页下载文件时验证

4.3 预览设置

「预览设置」页面:

  1. 预览模式:系统预览 / 自定义预览(KKFileView)
  2. 可预览后缀:逗号分隔自定义
  3. KKFileView 地址:Office 文档在线预览需配置

4.4 分享管理

「分享记录」页面:查看/编辑/删除/搜索分享,一键清理失效分享。

4.5 响应式操作

  • 桌面端:侧栏 ☰ 可收起为仅图标模式(60px)
  • 手机端:左上角 ☰ 滑入侧栏,点击遮罩关闭

五、🔧 配置

5.1 修改端口

# 方式一:重跑安装脚本
bash install.sh

span

span

code

`span

code
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

3

主题

2

回帖

0

牛值

系统先锋体验团🛩️

24 分钟前 楼主 显示全部楼层

https://github.com/cjm2004/FileShare

3

主题

2

回帖

0

牛值

系统先锋体验团🛩️

24 分钟前 楼主 显示全部楼层

5.2 反向代理 + 域名绑定(推荐使用lucky)

server {
    listen 80;
    server_name share.example.com;
    client_max_body_size 0;

    location / {
        proxy_pass http://127.0.0.1:6606;
        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 X-Forwarded-Proto $scheme;
    }
}

配置后,管理后台 → 分享设置 → 域名绑定填入 share.example.com

5.3 备份

cp data/fileshare.db data/fileshare.db.bak   # 备份
cp data/fileshare.db.bak data/fileshare.db   # 恢复
bash run.sh restart                           # 重启

5.4 开机自启

(crontab -l 2>/dev/null; echo '*/5 * * * * curl -s -m 5 http://127.0.0.1:6606/api/ping -o /dev/null -w "%{http_code}" | grep -q "200" || /opt/FileShare/run.sh start >/dev/null 2>&1'; echo '@reboot sleep 10 && /opt/FileShare/run.sh start >/dev/null 2>&1') | crontab -

5.5 卸载

cd /opt/FileShare
bash uninstall.sh        # 停止服务 + 清理 crontab
rm -rf /opt/FileShare    # 完全删除

💡 如需保留数据,先备份 data/fileshare.db

六、🗂️ 支持预览的文件类型

类型 格式
图片 jpg, jpeg, png, gif, bmp, webp, svg, ico, tiff, avif, heic
视频 mp4, webm, ogg, mov, avi, mkv, flv, wmv, 3gp
音频 mp3, wav, aac, flac, m4a, wma
文本/代码 txt, md, log, json, xml, yaml, csv, js, ts, py, java, go, rs, php 等 70+ 种

📝 编码自适应:自动检测 UTF-8/GBK 编码,中文 TXT 不乱码。

七、🛠️ 技术栈

技术
后端 Node.js + Express
数据库 SQLite (better-sqlite3)
前端 原生 HTML/CSS/JS(零框架依赖)
认证 JWT + bcrypt
验证码 svg-captcha(SVG 生成,算术/字符模式)
打包 archiver(流式 ZIP)
编码检测 iconv-lite
部署 单机单进程,crontab 保活

八、📄 目录结构

FileShare/
**── server.js             # 主程序
**── package.json          # 依赖配置
**── install.sh            # 安装脚本
**── run.sh                # 管理脚本
**── uninstall.sh          # 卸载脚本
**── .gitignore
**── public/
**   **── index.html        # 首页(提取文件)
**   **── admin.html        # 管理后台
**   **── share.html        # 分享页
**── data/                 # 运行时数据
**── logs/                 # 运行日志
**── uploads/              # 上传文件

九、📜 License

MIT

十、😊 更新速览

image image image image

FileShare · Made with ❤️ and 100% ai😂😂😂

GitHub · Issues · PRs

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则