Гид по технологиям

Как создать децентрализованный сайт: пошаговое руководство

7 min read Веб-разработка Обновлено 22 Oct 2025
Как создать децентрализованный сайт — шаги и советы
Как создать децентрализованный сайт — шаги и советы

MacBook с открытым сайтом

Создание децентрализованного сайта проще, чем кажется. Главное отличие от обычного сайта — размещение на децентрализованной сети, например IPFS. Остальное — привычные этапы: файлы, деплой, домен. В этом руководстве вы пройдёте весь цикл: от подготовки файлов до проверки доступа через ENS и .link, включая варианты: собственный IPFS‑узел и Fleek.

Что вам нужно заранее

  • Web3‑домен (например ENS: elgwaro.eth) — можно купить у регистратора.
  • Небольшой запас ETH в кошельке для оплаты транзакций (изменяется в зависимости от нагрузки сети).
  • GitHub‑аккаунт для работы с Fleek (если используете Fleek).
  • Базовые навыки работы с терминалом и Git.

Важно: сохраните контроль над приватными ключами кошелька; именно с этого аккаунта будут подписываться изменения DNS/records ENS.

1. Подготовьте файлы сайта

Начните с подготовки статических файлов сайта: HTML, CSS, JavaScript, изображения и т. п. Вы можете создавать сайт с нуля или взять шаблон.

  • Рекомендация: держите все файлы в одной папке — это упростит загрузку в IPFS и деплой.

Пример: скачиваем бесплатный шаблон и распаковываем в папку проекта.

Бесплатный шаблон с Free CSS

Если вы создаёте сайт самостоятельно, проверьте, что основная страница называется index.html и что относительные пути к ресурсам корректны.

2. Загрузка файлов в IPFS

IPFS (InterPlanetary File System) — распределённая P2P‑сеть для хранения и доставки файлов. Два основных способа размещения:

  • На собственном IPFS‑узле (вы управляете узлом, но он должен быть онлайн для отдачи файлов).
  • Через хост-провайдеров IPFS (например, Piñata, Infura, Fleek) — они реплицируют и обеспечивают доступность.

Загрузка на собственный IPFS‑узел

  1. Установите IPFS (локальный клиент) или используйте поддержку IPFS в браузере Brave.
  2. Откройте панель управления IPFS (Dashboard).
  3. Нажмите Import и загрузите папку с вашим сайтом.

Загрузка файлов сайта в панель IPFS

После загрузки вы получите CID (IPFS‑хеш). Скопируйте ссылку через Share Link и откройте в браузере с поддержкой IPFS (например Brave) для проверки.

Важно: при использовании собственного узла сайт будет доступен только пока узел онлайн. Для публичного и стабильного доступа приходится реплицировать CID на другие узлы.

Загрузка через Fleek (рекомендуемый вариант для большинства)

Fleek интегрируется с GitHub и автоматически деплоит сайт в IPFS и распределяет доступность.

Шаги:

  1. Сохраните файлы сайта в папке, например Desktop/dWeb.
  2. Создайте новый репозиторий на GitHub и подготовьте локальную папку для загрузки.
  3. Установите Git (если ещё не установлен).
  4. Выполните команды в Git Bash (в папке проекта):
cd desktop/dWeb
git init
git add .
git commit -m "first commit"
git remote add origin [url].git

Где [url] — адрес вашего репозитория, например:

git remote add origin https://github.com/elgwaro/dWeb.git

После этого файлы будут загружены в GitHub.

Файлы сайта на GitHub

Связка Fleek и GitHub

  1. Войдите в Fleek и нажмите Add New Site.

Добавление сайта в Fleek

  1. Подключите Fleek к GitHub и разрешите доступ к репозиторию с файлами.

Авторизация Fleek в GitHub

  1. В Fleek выберите ваш репозиторий, в разделе Deploy Location укажите IPFS и продолжите.

Деплой сайта в IPFS через Fleek

  1. Выберите фреймворк (если не уверены — Other) и запустите деплой.

Выбор фреймворка в Fleek

Fleek автоматически создаст CID и будет поддерживать доступность сайта.

3. Привязка Web3‑домена (ENS) к вашему сайту

После деплоя у вас есть CID сайта. Следующий шаг — связать его с вашим Web3‑доменом (например ENS). Это позволит людям переходить по читабельному имени, например elgwaro.eth.link или elgwaro.eth в браузере Brave.

Привязка ENS к IPFS

  1. Откройте панель ENS и найдите раздел с вашим доменом.

Панель ENS

  1. Перейдите в Records → Edit Records.

Редактирование записей ENS

  1. В поле Other (или Content) вставьте IPFS‑ссылку (CID) и сохраните.

Добавление IPFS‑хеша в ENS

  1. Подключите кошелёк, подтвердите транзакцию и оплатите комиссию сети (gas).

Подтверждение транзакции в кошельке

После подтверждения ENS будет указывать на ваш IPFS‑CID.

Привязка через Fleek (альтернативный путь)

Если вы использовали Fleek, можно добавить ENS прямо в панели Fleek:

  1. Откройте настройки развернутого сайта и нажмите Add Custom Domain.

Добавить кастомный домен в Fleek

  1. В разделе ENS Info нажмите Add ENS, введите домен и Verify.

Добавление ENS в Fleek

  1. Нажмите Set Content Hash и подтвердите транзакцию в кошельке — убедитесь, что подключённый аккаунт является контролёром домена.

Установка Content Hash через Fleek

4. Проверка доступа к сайту

После успешной привязки ENS сайт будет доступен по адресу <вашдомен>.eth.link (например elgwaro.eth.link). В браузере Brave с поддержкой IPFS можно использовать просто elgwaro.eth.

Успешно привязанный ENS домен

Поздравляем — сайт работает!

Когда децентрализованный сайт не будет работать (примеры и решения)

  • Проблема: сайт не загружается в обычном браузере по .eth без .link.
    • Причина: браузер не поддерживает IPFS напрямую. Решение: используйте Brave или добавьте .link. Также настройте прокси-шлюз через ipfs.io или другой публичный мост, если нужно.
  • Проблема: CID обновлён, но домен всё ещё указывает на старую версию.
    • Причина: кэширование на стороне провайдера или браузера, или транзакция ENS ещё не подтверждена. Решение: дождитесь подтверждения, очистите кэш, проверьте Content Hash в Etherscan.
  • Проблема: сайт доступен только когда ваш локальный узел онлайн.
    • Причина: вы использовали только свой IPFS‑узел. Решение: добавьте репликацию через Fleek, Pinata или попросите других узлов закрепить CID.

Короткий playbook: как быстро развернуть сайт (SOP)

  1. Подготовьте папку проекта с index.html.
  2. Инициализируйте git и загрузите на GitHub.
  3. Создайте сайт в Fleek, подключив репозиторий, выберите IPFS для Deploy Location.
  4. Дождитесь деплоя, сохраните CID.
  5. В ENS установите Content Hash = CID (через Fleek или напрямую в ENS), подпишите транзакцию в кошельке.
  6. Проверьте доступ через .eth.link или Brave.
  7. Настройте мониторинг доступности (простая проверка HTTP/200 через uptime сервисы) и периодически проверяйте актуальность CID.

Чеклист ролей

  • Разработчик:
    • Подготовить статические файлы
    • Убедиться, что index.html и относительные пути правильные
    • Закоммитить в Git
  • DevOps / Maintainer:
    • Настроить Fleek/Pinata/Infura (репликация)
    • Проверить Content Hash в ENS
    • Автоматизировать деплой (GitHub Actions → Fleek)
  • Владелец контента / менеджер:
    • Обновить контент, подтвердить сборку
    • Проверить видимость в разных браузерах

Мини‑методология: перевод Web2 workflow в Web3

  1. Код в git (как обычно).
  2. Continuous deployment: при push GitHub → триггер в Fleek → билд и upload в IPFS.
  3. Фиксация версии: Fleek/вы автоматически получаете CID — уникальный immutable адрес.
  4. Привязка к человеку‑читаемому имени (ENS) через Content Hash.

Эта схема сохраняет привычные CI/CD практики и добавляет слой неизменяемого адреса для версий.

Ментальная модель: как думать о CID и ENS

  • CID — это «контентный адрес» файла; при изменении контента CID меняется.
  • ENS — это «человеко‑читаемое имя», которое указывает на CID через content hash.
  • IPFS — транспорт/склад; Fleek/Pinata — репозитории/репликация и упрощение доступа.
flowchart TD
  A[Подготовка файлов] --> B[GitHub]
  B --> C[Fleek]
  C --> D[Загрузка в IPFS]
  D --> E[Получение CID]
  E --> F[ENS: Set Content Hash]
  F --> G[Пользователь → elgwaro.eth.link]

Риски и способы их смягчения

  • Риск: потеря доступа к кошельку, управляющему ENS.
    • Смягчение: используйте безопасное хранение приватных ключей, мультиподпись для критичных доменов.
  • Риск: высокие комиссии сети при изменении записей ENS.
    • Смягчение: планируйте изменения, объединяйте операции, работайте в периоды низкой нагрузки сети.
  • Риск: зависимость от провайдера (Fleek, Pinata).
    • Смягчение: храните CID и используйте несколько pinning‑сервисов или собственный узел.

Совместимость и миграция

  • ENS работает в экосистеме Ethereum; при использовании других систем (например Handshake, Unstoppable Domains) процесс аналогичен, но регистрация и интерфейсы отличаются.
  • Если вы хотите портировать сайт, экспортируйте CID и повторите привязку в новой системе.

Критерии приёмки

  • Сайт доступен по elgwaro.eth.link и возвращает HTTP 200 на корневой запрос.
  • Content Hash в ENS соответствует CID, показанному в Fleek или на IPFS‑ноде.
  • Сайт корректно загружается в Brave без .link.
  • Резервные копии исходников находятся в GitHub.

Тест‑кейсы простого QA

  1. Открыть elgwaro.eth.link в Chrome — ожидается редирект через публичный шлюз и загрузка страницы.
  2. Открыть elgwaro.eth в Brave — ожидается прямой показ страницы.
  3. Изменить контент, задеплоить — ожидать новый CID и обновлённый Content Hash после транзакции ENS.
  4. Отключить локальный IPFS‑узел — сайт должен быть доступен через Fleek (если он используется).

Короткий глоссарий (1‑строчно)

  • IPFS: распределённая сеть для хранения файлов.
  • CID: content identifier — адрес содержимого в IPFS.
  • ENS: система доменных имён для Web3 на Ethereum.
  • Fleek: платформа для хостинга и деплоя сайтов в IPFS.
  • Pinning: закрепление (репликация) CID на постоянных узлах.

Короткое резюме

Децентрализованный сайт — это статический сайт, размещённый в IPFS и связанный с Web3‑доменом (ENS). Основные шаги: подготовка файлов, загрузка в IPFS (локально или через Fleek), установка Content Hash в ENS и проверка доступа. Для стабильности используйте репликацию через сервисы pinning и храните контроль над кошельком, управляющим ENS.

Важное: если ваша цель — бороться с цензурой и повысить устойчивость, децентрализованное размещение даёт явные преимущества, но требует внимания к управлению ключами и репликации контента.

Запущенный децентрализованный сайт — пример интерфейса

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Microsoft Mood Board: быстрый мудборд для идей
Дизайн

Microsoft Mood Board: быстрый мудборд для идей

Замена слов в Microsoft Word: быстрый гид
Документы

Замена слов в Microsoft Word: быстрый гид

Изменить GPS на iPhone с iToolab AnyGo
Технологии

Изменить GPS на iPhone с iToolab AnyGo

Установка Elasticsearch на Ubuntu
DevOps

Установка Elasticsearch на Ubuntu

Не удаётся войти в аккаунт в Windows 11
Windows 11

Не удаётся войти в аккаунт в Windows 11

Как создать децентрализованный сайт — шаги и советы
Веб-разработка

Как создать децентрализованный сайт — шаги и советы