Sign inSign up

uxiaohan/vh-ipfs

By uxiaohan

Updated 6 months ago

🥝 简单优雅的 IPFS 文件上传与管理平台

Image
Content management system
Databases & storage
0

2.2K

uxiaohan/vh-ipfs repository overview

🖼️ VH-IPFS

简单优雅的 IPFS 文件上传与管理平台

GitHub仓库: vh-ipfs

✨ 特性

  • 🎨 简约优美 - 现代化 UI 设计,自适应布局
  • 🔐 双重保护 - 网站访问密码 + 管理员密码
  • 🚀 高性能 - 基于 Fastify + Vue3 + IPFS
  • 📊 存储管理 - 可视化存储空间使用情况
  • 🌐 多网关支持 - 自定义 IPFS 公共网关
  • 🐳 单容器部署 - 前端/后端/IPFS 一体化
  • 📝 日志管理 - 自动切割,最大 5MB
  • 🔄 智能清理 - 存储空间不足时自动清理旧文件
  • 📁 全类型支持 - 支持所有文件类型上传
  • 🎯 智能图标 - 根据文件类型自动显示对应图标
  • 🛡️ 容量保护 - 文件大小超过限制时直接拒绝上传

📊 存储策略

  • 智能清理 - 当存储空间达到上限时,按访问次数+时间清理旧文件
  • 📈 实时监控 - 显示已用空间、剩余容量、可用容量
  • 🎯 灵活配置 - 支持 MB/GB 单位切换
  • 💾 空间限制 - 防止超出磁盘容量
  • 🚫 容量保护 - 文件大小超过总容量限制时直接拒绝上传

📁 文件类型支持

IPFS 支持所有文件类型的存储和分发,包括但不限于:

  • 🖼️ 图片:jpg, png, gif, webp, svg, bmp
  • 🎬 视频:mp4, avi, mkv, mov, webm
  • 🎵 音频:mp3, wav, flac, aac, ogg
  • 📄 文档:pdf, doc, docx, txt, md
  • 📊 表格:xls, xlsx, csv
  • 📽️ 演示:ppt, pptx
  • 📦 压缩:zip, rar, 7z, tar, gz
  • ⚙️ 程序:exe, msi, apk, ipa
  • 🌐 网页:html, css, js, json, xml
  • 🗄️ 数据库:sql, db, sqlite

🔐 安全特性

  • 🔒 JWT 认证 - 管理员操作需要有效 token
  • 🌐 网站访问密码 - 首次访问需要输入密码
  • 📝 日志记录 - 所有操作记录到 /data/logs/app.log
  • 🔄 密码修改 - 支持修改网站密码和管理员密码
  • 🚫 401 处理 - 自动清除过期 token 并重新登录
  • 📊 容量检查 - 上传前检查文件大小和剩余容量

🚀 快速开始

使用 Docker Compose(推荐)
version: '3.8'

services:
  vh-ipfs:
    image: uxiaohan/vh-ipfs
    container_name: vh-ipfs
    restart: unless-stopped
    ports:
      - "16661:16661"   # Web 服务
      - "16662:16662"   # IPFS 网关
    volumes:
      - ./data:/data
      - ./ipfs-data:/data/ipfs
使用 Docker
docker run -d \
  --name vh-ipfs \
  -p 16661:16661 \
  -p 16662:16662 \
  -v /etc/data:/data \
  -v /etc/ipfs-data:/data/ipfs \
  --restart unless-stopped \
  uxiaohan/vh-ipfs

📋 默认配置

配置项默认值说明
网站访问密码首次使用需在后台设置
管理员密码首次使用需在后台设置
存储限制1GB可在后台调整
最大上传无限制单文件大小无限制
上传个数无限制单次上传文件个数无限制
文件类型所有类型支持所有文件类型

🔗 访问地址

服务地址
📤 上传页面http://<your-ip>:16661/
⚙️ 管理后台http://<your-ip>:16661/admin
🌐 IPFS 网关http://<your-ip>:16662/ipfs/<CID>

🔧 环境变量

变量默认值说明
PORT16661API 服务端口
DATA_DIR/data数据存储目录
IPFS_API_URLhttp://127.0.0.1:5001/api/v0IPFS API 地址
JWT_SECRET随机生成JWT 密钥

📖 使用说明

上传文件
  1. 访问上传页面 http://<your-ip>:16661/
  2. 拖拽文件到上传区域,或点击选择文件
  3. 点击上传按钮开始上传
  4. 上传完成后显示 IPFS CID 和访问链接
容量管理
  • 查看容量:在管理后台查看存储空间使用情况
  • 设置容量:在管理后台调整存储限制(支持 MB/GB 单位)
  • 自动清理:容量不足时自动清理旧文件(按访问次数+时间排序)

Tag summary

Content type

Image

Digest

sha256:72e6d5f31

Size

143.9 MB

Last updated

6 months ago

docker pull uxiaohan/vh-ipfs