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

> PinMe是由Glitter Protocol团队开发的一键IPFS静态网站部署工具，支持自动关联ENS子域名实现去中心化托管。本文介绍其核心架构、IPFS永久存储机制、eth.limo网关加速以及与传统中心化部署方案的对比优势，体验Web3时代的去中心化Web托管

- Canonical: https://www.zeroxin.xin/2025/11/18/pinme-introduction/
- Published: 2025-11-18T00:00:00+08:00
- Updated: 2026-06-18T17:19:20+08:00

- Tags: 开源项目, Web3, IPFS, 部署工具, 去中心化, ENS

![PinMe项目架构](/medias/featureimages/pinme-banner.png)

## 项目简介

[PinMe](https://github.com/glitternetwork/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 通过三个关键步骤完成网站部署：

```
用户输入 → 上传到IPFS → 写入ENS子域名 → 通过网关访问
```

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

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

---

## 安装方法

### 使用 npm

```bash
npm install -g pinme
```

### 使用 yarn

```bash
yarn global add pinme
```

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

---

## 核心功能使用指南

### 1. 上传文件或目录

**交互式上传（推荐新手使用）：**

```bash
pinme upload
```

**直接指定路径上传：**

```bash
pinme upload /path/to/file-or-directory
```

**上传整个网站目录：**

```bash
pinme upload ./my-website
```

#### 上传限制

- 单个文件最大：**20MB**
- 目录总大小最大：**500MB**

### 2. 从 IPFS 移除文件

**交互式删除：**

```bash
pinme rm
```

**按哈希删除：**

```bash
pinme rm bafybeifdwyoz66u5czbbjvmmais5fzrzrolxbyiydqsbrxessndt3s6zdi
```

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

### 3. 查看上传历史

**显示最近 10 条上传记录：**

```bash
pinme list
```

**显示最近 5 条记录：**

```bash
pinme ls -l 5
```

**清空所有历史记录：**

```bash
pinme list -c
```

### 4. 获取帮助

```bash
pinme help
pinme help upload    # 查看特定命令帮助
```

---

## 实战场景：部署 Vite 项目

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

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

```javascript
// vite.config.js
export default {
  base: "./",
  // 其他配置...
}
```

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

完整的部署流程：

```bash
# 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周前发布）
- 完善的文档和示例，降低上手难度

---

## 快速开始示例

### 完整的部署流程

```bash
# 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）即可。

---

## 社区与反馈

### 获取帮助

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

- **GitHub Issues**: [https://github.com/glitternetwork/pinme/issues](https://github.com/glitternetwork/pinme/issues)
- **Email**: [pinme@glitterprotocol.io](mailto:pinme@glitterprotocol.io)

### 贡献代码

PinMe 欢迎社区贡献。主要贡献者包括：
- [@Chi111](https://github.com/Chi111) - 项目创意与开发
- [@rrbin666](https://github.com/rrbin666) - 主要维护者

---

## 展望与意义

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

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

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

---

## 总结

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

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

**快去试试吧：**

```bash
npm install -g pinme
pinme upload ./your-website
```

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

---

## 相关资源

- 🌐 项目官网：[https://pinme.eth.limo/](https://pinme.eth.limo/)
- 📦 GitHub 仓库：[https://github.com/glitternetwork/pinme](https://github.com/glitternetwork/pinme)
- 🔗 Glitter Protocol：[https://glitterprotocol.io/](https://glitterprotocol.io/)
- 📚 IPFS 官方：[https://ipfs.tech/](https://ipfs.tech/)
- 🆔 ENS 官方：[https://ens.domains/](https://ens.domains/)

---

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

