Claude Info
Фронтенд

PinMe

glitternetwork/pinme

PinMe — инструмент для мгновенного деплоя статических сайтов без серверов и регистрации. Поддерживает Claude Code Skills, загрузку CAR-файлов и привязку доменов. Идеален для фронтенд-разработчиков и AI-агентов.

Установка

terminal
bash
npm install -g pinme

README

PinMe

PinMe — инструмент для деплоя фронтенда без какой-либо конфигурации. Никаких серверов. Никаких аккаунтов. Никакой настройки.

Соберите статический сайт, сгенерируйте страницу с помощью AI, экспортируйте фронтенд или импортируйте CAR-файлы — и мгновенно задеплойте одной командой.

PinMe публикует сайт как верифицируемый контент, что делает незаметную подмену и случайные поломки значительно сложнее, чем при традиционном хостинге.

Вам не нужно управлять серверами, регионами или аптаймом. PinMe берёт на себя доступность и хранение данных.

Сайт: https://pinme.eth.limo/


Содержание


Быстрый старт

Требования

  • Node.js 16.13.0 или выше
bash
# Проверьте версию Node.js
node --version

Три шага до деплоя

  1. Установите PinMe
npm install -g pinme
  1. Соберите проект (если ещё не собран)
bash
# Для Vite/React/Vue проектов
npm run build

# Для Next.js (статический экспорт)
npm run build
  1. Загрузите в PinMe
bash
# Загрузить директорию dist (наиболее распространённый вариант)
pinme upload dist

# Или загрузить директорию build
pinme upload build

Готово! Вы получите URL для предпросмотра вида https://pinme.eth.limo/#/preview/*


Для AI

Этот раздел содержит инструкции для AI-агентов по деплою сайтов с помощью PinMe CLI.

Протокол выполнения для AI

Цель: Использовать PinMe CLI для загрузки статических файлов на сервер.

Обязательные шаги

  1. Проверить требования к окружению

    bash
    # Проверить версию Node.js (требуется 16.13.0+)
    node --version
  2. Установить PinMe CLI (если не установлен)

    npm install -g pinme
  3. Определить директорию со статическими файлами Порядок приоритета при проверке:

    • dist/ — стандартная выходная директория для Vue/React/Vite проектов
    • build/ — выходная директория для Create React App
    • out/ — выходная директория для Next.js статического экспорта
    • public/ — проекты с чистыми статическими файлами

    Правила валидации:

    • Папка должна существовать
    • Должна содержать файл index.html (для деплоя сайта)
    • Должна содержать реальные статические ресурсы (CSS, JS, изображения и т.д.)

    Если подходящая папка не найдена — запросите у пользователя путь для загрузки.

    Проверка режима роутера:

    • Убедитесь, что проект использует роутер в hash-режиме (например, /#/about)
    • History-режим (например, /about) вызовет ошибку 404 на вложенных маршрутах при деплое в IPFS
    • Для React: используйте HashRouter вместо BrowserRouter
    • Для Vue: используйте createHashHistory() вместо createWebHistory()
  4. Выполнить команду деплоя

    pinme upload <folder_path>
  5. Вернуть результат

    • Вернуть только итоговый URL страницы предпросмотра: https://pinme.eth.limo/#/preview/*
    • Не выводить дополнительные логи или промежуточные шаги

Запрещённые операции

  • ❌ Не загружать директории node_modules, .env, .git
  • ❌ Не загружать директории с исходным кодом (например, src/)
  • ❌ Не загружать конфигурационные файлы (например, package.json, tsconfig.json и т.д.)
  • ❌ Не пытаться загружать несуществующие или пустые папки

Машиночитаемая конфигурация

Для удобного парсинга AI-инструментами:

json
{
  "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",
  "other_commands": {
    "version": "pinme --version",
    "list": "pinme list",
    "import": "pinme import <car-file>",
    "export": "pinme export <cid>",
    "set_appkey": "pinme set-appkey",
    "show_appkey": "pinme show-appkey",
    "my_domains": "pinme my-domains",
    "remove": "pinme rm <hash>",
    "logout": "pinme logout",
    "help": "pinme help"
  }
}

Шаблон запроса для AI

Запрос на деплой: Прочитай документацию PinMe, затем используй PinMe CLI для деплоя указанного сайта (загрузки статических файлов) на сервер.

Шаги выполнения:

  1. Проверить версию Node.js (требуется 16.13.0+)
  2. Проверить, установлен ли pinme, и установить при необходимости
  3. Определить директорию со статическими файлами для деплоя
  4. Выполнить команду деплоя
  5. Вернуть ссылку на страницу предпросмотра: https://pinme.eth.limo/#/preview/*

Установка

Через npm

npm install -g pinme

Через yarn

yarn global add pinme

Проверка установки

bash
# Проверить версию PinMe
pinme --version

Использование

Загрузка файлов или директорий

bash
# Интерактивная загрузка
pinme upload

# Указать путь напрямую
pinme upload /path/to/file-or-directory

Привязка домена (требуется VIP)

bash
# Загрузить и привязать к домену (автоопределение: поддомен Pinme или DNS-домен)
pinme upload <path> --domain <name>
pinme upload <path> -d <name>

Умное автоопределение:

  • Домены с точкой (например, example.com) → DNS-домен
  • Домены без точки (например, my-site) → поддомен Pinme

Примеры:

bash
# Привязать к поддомену Pinme (автоопределение)
pinme upload ./dist --domain my-site

# Привязать к DNS-домену (автоопределение по наличию точки)
pinme upload ./dist --domain example.com

Интеграция с GitHub Actions

Автоматизируйте деплой с помощью GitHub Actions:

yaml
name: Deploy to PinMe

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'
          
      - name: Install dependencies
        run: npm install
        
      - name: Build
        run: npm run build
        
      - name: Install PinMe
        run: npm install -g pinme
        
      - name: Deploy
        run: pinme upload dist
        env:
          PINME_APPKEY: ${{ secrets.PINME_APPKEY }}

Связаться с нами

Похожие скиллы