PinMe - 一键部署静态网站到IPFS的神奇工具


PinMe项目架构

项目简介

PinMe 是一个革命性的一键部署工具,由 Glitter Protocol 团队开发维护,旨在将静态网站永久、可验证地部署到 IPFS 网络。与传统的中心化服务器部署不同,PinMe 提供了一个更加开放、去中心化的托管解决方案。

核心特点:

  • ✨ 一键部署:简单的命令即可完成部署
  • 🌐 IPFS 永存:内容通过 IPFS 网络永久存储
  • 🔗 ENS 集成:自动关联 ENS 子域名实现内容验证
  • 🚀 网关加速:通过 eth.limo 等网关快速访问
  • ✅ 无服务器:无需配置 DNS,无需租赁服务器

项目信息:

  • 📦 主要语言:TypeScript (59.4%)、HTML (34.2%)、CSS (3.8%)
  • ⭐ GitHub Stars:924+(持续增长)
  • 🔄 最新版本:v1.1.5
  • 📄 开源协议:MIT License

工作原理

PinMe 通过三个关键步骤完成网站部署:

1
用户输入 → 上传到IPFS → 写入ENS子域名 → 通过网关访问
  1. IPFS 上传:将网站文件上传到分布式存储网络,获得内容哈希(Content Hash)
  2. ENS 绑定:将内容哈希写入 ENS 子域名记录,实现内容可验证性
  3. 网关访问:用户可以通过多个网关(如 eth.limo)访问已部署的网站,无需依赖单一服务商

这种设计完全消除了中心化服务提供商的依赖,真正实现了互联网的去中心化托管。


安装方法

使用 npm

1
npm install -g pinme

使用 yarn

1
yarn global add pinme

安装完成后,你就可以在全局环境中使用 pinme 命令了。


核心功能使用指南

1. 上传文件或目录

交互式上传(推荐新手使用):

1
pinme upload

直接指定路径上传:

1
pinme upload /path/to/file-or-directory

上传整个网站目录:

1
pinme upload ./my-website

上传限制

  • 单个文件最大:20MB
  • 目录总大小最大:500MB

2. 从 IPFS 移除文件

交互式删除:

1
pinme rm

按哈希删除:

1
pinme rm bafybeifdwyoz66u5czbbjvmmais5fzrzrolxbyiydqsbrxessndt3s6zdi

⚠️ 注意:此操作会从 Glitter Protocol 的 IPFS 节点中取消固定(unpin)文件并删除 ENS 子域名记录,但不保证文件从整个 IPFS 网络中被完全删除。

3. 查看上传历史

显示最近 10 条上传记录:

1
pinme list

显示最近 5 条记录:

1
pinme ls -l 5

清空所有历史记录:

1
pinme list -c

4. 获取帮助

1
2
pinme help
pinme help upload # 查看特定命令帮助

实战场景:部署 Vite 项目

如果你使用 Vite 构建你的前端项目,需要做一个简单的配置:

vite.config.js 中添加 base: "./" 配置:

1
2
3
4
5
// vite.config.js
export default {
base: "./",
// 其他配置...
}

这样可以确保资源路径在 IPFS 网关上正确解析。

完整的部署流程:

1
2
3
4
5
6
7
8
# 1. 构建项目
npm run build

# 2. 上传到 IPFS
pinme upload ./dist

# 3. 获得 IPFS 哈希和 ENS 域名
# 完成!你的网站现在永久存在于去中心化网络上

文件存储与日志

访问已上传的内容

成功上传后,你会获得:

  1. IPFS 内容哈希 - 用于 IPFS 网络访问
  2. 可访问 URL - 通过 eth.limo 网关直接访问

本地日志和配置位置

  • Linux/macOS: ~/.pinme/
  • Windows: %USERPROFILE%\.pinme\

所有上传历史和配置信息存储在这些目录中,便于管理和调试。


使用场景与优势

1. 个人博客与作品集

使用 PinMe 部署你的 Hexo、Hugo 或 Next.js 博客,获得永久的、去中心化的托管。无论何时何地,只要 IPFS 网络存在,你的内容就不会消失。

2. 开源项目文档

为开源项目部署官方文档网站,免去服务器维护成本。文档的永久性和可验证性非常重要。

3. NFT 元数据托管

存储 NFT 项目的元数据和媒体资源,确保 NFT 关联的内容永久可用。

4. Web3 产品前端

部署 DApp、钱包或其他 Web3 产品的前端,真正实现去中心化应用的完整体验。

5. 内容抵抗审查

对于需要抵抗审查的内容,IPFS 的分布式特性提供了天然的保护。


与传统部署方案的对比

特性PinMe (IPFS+ENS)传统服务器GitHub Pages
成本免费/低成本每月需付费免费
所有权完全去中心化依赖服务商依赖 GitHub
可用性分布式网络单点故障风险依赖 GitHub 可用性
永久性内容哈希保证服务商决定可能被删除
可验证性ENS 绑定验证
学习曲线简单易用需要运维知识简单易用

项目亮点分析

🎯 解决的核心问题

传统部署方案存在以下问题:

  • 中心化风险:服务商可随时关闭服务或审查内容
  • 成本压力:持续的服务器费用
  • 内容丢失:依赖单一平台的长期存在

PinMe 通过 IPFS + ENS 的组合完美解决了这些问题。

🚀 技术创新

  1. 简化体验:一键部署,无需学习复杂的 IPFS、ENS 操作
  2. 自动化处理:自动生成 ENS 记录,管理上传历史
  3. 用户友好:提供交互式命令和直观的命令行接口
  4. 社区支持:活跃的开发团队,定期更新和改进

📊 发展现状

  • GitHub 上有 924+ Stars,体现了社区认可
  • 51 个 Forks 说明有不少开发者基于此进行定制
  • 最新版本 v1.1.5 持续活跃更新(3周前发布)
  • 完善的文档和示例,降低上手难度

快速开始示例

完整的部署流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 全局安装 PinMe
npm install -g pinme

# 2. 创建一个简单的静态网站
mkdir my-website
echo "Hello IPFS!" > my-website/index.html

# 3. 上传到 IPFS
pinme upload ./my-website

# 4. 获得输出结果
# IPFS Hash: QmXxxx...
# ENS URL: my-pinme.eth
# Access via: https://my-pinme.eth.limo

# 5. 查看历史记录
pinme list

常见问题解答

Q: 上传的文件会永远存在吗?

A: 文件存储在 IPFS 网络上。只要有节点持有这些数据,内容就会存在。Glitter Protocol 提供了固定服务,确保已上传的文件不会轻易被清除。

Q: 能否更新已上传的网站?

A: 可以。每次上传会生成新的内容哈希和 ENS 记录。如果需要更新,上传新版本的网站即可。

Q: 如何确保安全性?

A: PinMe 不需要密钥或私密信息,上传过程完全安全。所有记录存储在本地 ~/.pinme 目录中。

Q: 支持哪些文件类型?

A: PinMe 支持所有文件类型。只要遵守大小限制(单文件 20MB,目录 500MB)即可。


社区与反馈

获取帮助

如有问题或建议,可以通过以下方式联系:

贡献代码

PinMe 欢迎社区贡献。主要贡献者包括:


展望与意义

PinMe 代表了 Web3 时代对托管方案的重新思考。它证明了:

  1. 去中心化可以很简单 - 用户无需理解 IPFS 内部工作原理,就能享受去中心化的好处
  2. 成本可以显著降低 - 免除了服务器租赁费用
  3. 互联网的未来方向 - 内容寻址、用户自主、隐私保护

无论你是想要部署个人博客、开源项目文档,还是探索 Web3 技术,PinMe 都是一个值得尝试的工具。


总结

PinMe 是一个优雅而强大的工具,它将复杂的去中心化技术(IPFS、ENS)封装成简单易用的命令行接口。通过 pinme upload 一条命令,你就能将网站部署到全球分布式网络中,获得永久、可验证、无审查的托管。

如果你关心内容自主性、成本控制或对 Web3 充满好奇,PinMe 绝对值得一试!

快去试试吧:

1
2
npm install -g pinme
pinme upload ./your-website

立即开启你的去中心化托管之旅!🚀


相关资源


更新时间: 2025年11月18日
作者: ZeroXin
许可证: 本文采用 CC BY-SA 4.0 许可


文章作者: ZeroXin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZeroXin !
  目录