PinMe:零配置 IPFS 静态网站部署 - Openclaw Skills

作者:互联网

2026-04-15

AI教程

什么是 PinMe - IPFS 部署?

PinMe 是一款强大的开发工具,旨在桥接本地前端开发与去中心化托管。通过利用 Openclaw Skills,开发者可以立即将 React、Vue、Angular 或 Next.js 等现代框架的构建输出直接发布到 IPFS。该技能简化了获取永久、全球可访问的内容标识符 (CID) 和便捷预览 URL 的过程,无需管理传统服务器或复杂的云基础设施。

PinMe 集成专为速度和简洁而构建,确保您的静态资产(包括 HTML、CSS、JS 和图像)在 IPFS 网络中高效分发。无论您是在构建个人作品集还是去中心化应用 (dApp),使用这些 Openclaw Skills 都可以直接从您的 CLI 或 AI 代理环境实现无缝部署。

下载入口:https://github.com/openclaw/skills/tree/main/skills/ntlx/pinme

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install pinme

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 pinme。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

PinMe - IPFS 部署 应用场景

  • 从 dist、build 或 out 等标准目录发布构建的前端项目。
  • 为静态网站部署生成即时预览 URL,以便与利益相关者分享。
  • 使用 IPFS 网络实现去中心化网络托管,确保内容的持久性和韧性。
  • 使用公共 CID 与团队成员共享静态资产和构建产物。
  • 在持续集成工作流中自动化去中心化部署。
PinMe - IPFS 部署 工作原理
  1. 系统验证环境是否满足先决条件,特别是 Node.js 版本 16.13.0 或更高版本。
  2. 如果系统路径中未检测到该工具,则通过 npm 全局安装 PinMe CLI。
  3. 该技能自动扫描项目结构,以检测常见的构建目录,如 dist、build、out 或 public。
  4. 它执行验证检查以确保目录包含 index.html 文件和有效的静态资产,避免误上传源代码。
  5. 工具执行上传命令将目录内容固定到 IPFS 网络。
  6. 生成并向用户返回最终预览 URL,提供指向实时去中心化站点的即时链接。

PinMe - IPFS 部署 配置指南

要在 Openclaw Skills 设置中使用此部署功能,请遵循以下安装步骤:

# 通过 npm 全局安装 PinMe CLI
npm install -g pinme

# 验证安装并检查版本
pinme --version

# (可选)设置您的 AppKey 以进行身份验证上传和自定义域名支持
pinme set-appkey "YOUR_APP_KEY"

PinMe - IPFS 部署 数据架构与分类体系

PinMe 技能与本地目录结构交互并生成用于去中心化映射的元数据。它根据以下分类识别项目:

目录 目标框架
dist/ Vite, Vue CLI, Angular
build/ Create React App
out/ Next.js (静态导出)
public/ 通用静态网站

成功执行后,该技能返回包含 IPFS 哈希 (CID) 和格式化预览链接的响应:https://pinme.eth.limo/#/preview/{hash}。在摄取过程中,它严格排除敏感文件,如 .env、node_modules 和 .git 文件夹。

name: pinme
description: |
  Deploy static websites to IPFS with a single command using PinMe CLI.
  Use when: (1) User wants to deploy a built frontend project, (2) Need to upload static files (dist/build/out/public) to IPFS, (3) Requesting preview URL for a deployed site.
  Supports: Vite, React, Vue, Next.js, Angular, Create React App, and static sites.
  Output: Preview URL (https://pinme.eth.limo/#/preview/*) after successful upload.

PinMe - Zero-Config Frontend Deployment

Deploy static websites to IPFS network with a single command. No servers, no accounts, no setup.

When to Use

Use this skill when:

  • User asks to "deploy", "upload", or "publish" a frontend project
  • User wants to get a preview URL for their built site
  • User mentions PinMe or IPFS deployment
  • Project has built static files (dist/, build/, out/, public/)

Quick Start

# Install PinMe
npm install -g pinme

# Deploy (auto-detects static directory)
pinme upload dist

# Get preview URL
# https://pinme.eth.limo/#/preview/*

Core Workflow

1. Check Prerequisites

# Check Node.js version (requires 16.13.0+)
node --version

# Verify pinme is installed
pinme --version

2. Identify Static Directory

PinMe auto-detects directories in priority order:

Directory Framework/Tool
dist/ Vite, Vue CLI, Angular
build/ Create React App
out/ Next.js (static export)
public/ Static sites

Validation rules:

  • ? Folder must exist
  • ? Must contain index.html
  • ? Must have actual static files (CSS, JS, images)

3. Execute Deployment

# Deploy dist directory (most common)
pinme upload dist

# Deploy specific directory
pinme upload build

# Upload and bind to custom domain (requires Plus)
pinme upload dist --domain my-site

4. Return Result

Return ONLY the preview URL: https://pinme.eth.limo/#/preview/*

Commands Reference

Command Description
pinme upload Upload static files to IPFS
pinme upload --domain Upload + bind domain
pinme import Import CAR files
pinme export Export IPFS content as CAR
pinme list Show upload history
pinme rm Remove files from IPFS
pinme set-appkey Set AppKey for authentication
pinme my-domains List owned domains
pinme --version Show version

Upload Limits

Type Free Plan
Single file 200MB
Total directory 1GB

Error Handling

Error Solution
Node.js version too low Upgrade to 16.13.0+
Command not found Run npm install -g pinme
Folder does not exist Check path, use ls
Upload failed Check network, retry
Authentication failed Run pinme set-appkey

AI Execution Protocol

For programmatic deployment:

  1. Check environment: node --version (needs >=16.13.0)
  2. Install if needed: npm install -g pinme
  3. Detect directory: Check dist/, build/, out/, public/
  4. Validate: Must contain index.html
  5. Execute: pinme upload
  6. Return: Only the preview URL

Prohibited operations:

  • ? Upload node_modules, .env, .git
  • ? Upload source directories (src/)
  • ? Upload config files (package.json, etc.)
  • ? Upload non-existent/empty folders

GitHub Actions Integration

Example workflow:

name: Deploy to PinMe
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '18'
      - run: npm ci && npm run build
      - run: npm install -g pinme
      - run: pinme set-appkey "${{ secrets.PINME_APPKEY }}"
      - run: pinme upload dist --domain "${{ secrets.DOMAIN }}"

Machine-Readable Config

{
  "tool": "pinme",
  "requirements": {
    "node_version": ">=16.13.0"
  },
  "install": "npm install -g pinme",
  "upload": "pinme upload {{directory}}",
  "upload_with_domain": "pinme upload {{directory}} --domain {{domain}}",
  "validDirectories": ["dist", "build", "out", "public"],
  "requiredFiles": ["index.html"],
  "excludePatterns": ["node_modules", ".env", ".git", "src"],
  "limits": {
    "single_file": "200MB",
    "total_directory": "1GB"
  },
  "output": "preview_url",
  "preview_url_format": "https://pinme.eth.limo/#/preview/*",
  "fixed_domain_format": "https://*.pinit.eth.limo"
}

Resources

  • Website: https://pinme.eth.limo/
  • GitHub: https://github.com/glitternetwork/pinme
  • AppKey: https://pinme.eth.limo/ (get from dashboard)

相关推荐