PinMe
glitternetwork/pinmePinMe — инструмент для мгновенного деплоя статических сайтов без серверов и регистрации. Поддерживает Claude Code Skills, загрузку CAR-файлов и привязку доменов. Идеален для фронтенд-разработчиков и AI-агентов.
Установка
npm install -g pinmeREADME
PinMe
PinMe — инструмент для деплоя фронтенда без какой-либо конфигурации. Никаких серверов. Никаких аккаунтов. Никакой настройки.
Соберите статический сайт, сгенерируйте страницу с помощью AI, экспортируйте фронтенд или импортируйте CAR-файлы — и мгновенно задеплойте одной командой.
PinMe публикует сайт как верифицируемый контент, что делает незаметную подмену и случайные поломки значительно сложнее, чем при традиционном хостинге.
Вам не нужно управлять серверами, регионами или аптаймом. PinMe берёт на себя доступность и хранение данных.
Сайт: https://pinme.eth.limo/
Содержание
- Быстрый старт
- Для AI
- Установка
- Использование
- Привязка домена
- Описание команд
- VIP-членство
- Стандартные директории статических файлов
- Обработка ошибок
- Ограничения загрузки
- Интеграция с GitHub Actions
- Связаться с нами
Быстрый старт
Требования
- Node.js 16.13.0 или выше
# Проверьте версию Node.js
node --versionТри шага до деплоя
- Установите PinMe
npm install -g pinme
- Соберите проект (если ещё не собран)
# Для Vite/React/Vue проектов
npm run build
# Для Next.js (статический экспорт)
npm run build- Загрузите в PinMe
# Загрузить директорию dist (наиболее распространённый вариант)
pinme upload dist
# Или загрузить директорию build
pinme upload buildГотово! Вы получите URL для предпросмотра вида https://pinme.eth.limo/#/preview/*
Для AI
Этот раздел содержит инструкции для AI-агентов по деплою сайтов с помощью PinMe CLI.
Протокол выполнения для AI
Цель: Использовать PinMe CLI для загрузки статических файлов на сервер.
Обязательные шаги
-
Проверить требования к окружению
bash# Проверить версию Node.js (требуется 16.13.0+) node --version -
Установить PinMe CLI (если не установлен)
npm install -g pinme -
Определить директорию со статическими файлами Порядок приоритета при проверке:
dist/— стандартная выходная директория для Vue/React/Vite проектовbuild/— выходная директория для Create React Appout/— выходная директория для Next.js статического экспортаpublic/— проекты с чистыми статическими файлами
Правила валидации:
- Папка должна существовать
- Должна содержать файл
index.html(для деплоя сайта) - Должна содержать реальные статические ресурсы (CSS, JS, изображения и т.д.)
Если подходящая папка не найдена — запросите у пользователя путь для загрузки.
Проверка режима роутера:
- Убедитесь, что проект использует роутер в hash-режиме (например,
/#/about) - History-режим (например,
/about) вызовет ошибку 404 на вложенных маршрутах при деплое в IPFS - Для React: используйте
HashRouterвместоBrowserRouter - Для Vue: используйте
createHashHistory()вместоcreateWebHistory()
-
Выполнить команду деплоя
pinme upload <folder_path> -
Вернуть результат
- Вернуть только итоговый URL страницы предпросмотра:
https://pinme.eth.limo/#/preview/* - Не выводить дополнительные логи или промежуточные шаги
- Вернуть только итоговый URL страницы предпросмотра:
Запрещённые операции
- ❌ Не загружать директории
node_modules,.env,.git - ❌ Не загружать директории с исходным кодом (например,
src/) - ❌ Не загружать конфигурационные файлы (например,
package.json,tsconfig.jsonи т.д.) - ❌ Не пытаться загружать несуществующие или пустые папки
Машиночитаемая конфигурация
Для удобного парсинга AI-инструментами:
{
"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 для деплоя указанного сайта (загрузки статических файлов) на сервер.
Шаги выполнения:
- Проверить версию Node.js (требуется 16.13.0+)
- Проверить, установлен ли pinme, и установить при необходимости
- Определить директорию со статическими файлами для деплоя
- Выполнить команду деплоя
- Вернуть ссылку на страницу предпросмотра:
https://pinme.eth.limo/#/preview/*
Установка
Через npm
npm install -g pinme
Через yarn
yarn global add pinme
Проверка установки
# Проверить версию PinMe
pinme --versionИспользование
Загрузка файлов или директорий
# Интерактивная загрузка
pinme upload
# Указать путь напрямую
pinme upload /path/to/file-or-directoryПривязка домена (требуется VIP)
# Загрузить и привязать к домену (автоопределение: поддомен Pinme или DNS-домен)
pinme upload <path> --domain <name>
pinme upload <path> -d <name>Умное автоопределение:
- Домены с точкой (например,
example.com) → DNS-домен - Домены без точки (например,
my-site) → поддомен Pinme
Примеры:
# Привязать к поддомену Pinme (автоопределение)
pinme upload ./dist --domain my-site
# Привязать к DNS-домену (автоопределение по наличию точки)
pinme upload ./dist --domain example.comИнтеграция с GitHub Actions
Автоматизируйте деплой с помощью GitHub Actions:
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 }}