VibeusLoadingЗагрузка
Vibeus

Loading is taking longer than usual.Загрузка занимает больше времени, чем обычно.

The full page couldn't load.Не удалось полностью загрузить страницу.

You can read the available content below or try loading the page again.Вы можете читать доступный контент ниже или повторить загрузку страницы.

Как опубликовать сайт, созданный ИИ: хостинг, домен и деплой в 2026

Vibeus Official ·

Вы собрали сайт в Codex, Claude Code, Cursor, Lovable или другом AI-инструменте. На компьютере он работает, но как дать ссылку другому человеку? Локальный предпросмотр ещё не означает, что проект доступен в интернете.

Чтобы выложить сайт в интернет, нужно определить его тип, выбрать хостинг, загрузить исходники или сборку, получить публичный адрес и проверить работу. Для приложения с сервером и базой данных потребуется дополнительная настройка.

Самый короткий путь выглядит так:

Готовый проект → GitHub → хостинг → публичная ссылка → свой домен (по желанию) → проверка у других пользователей.

Разберём два маршрута: React/Vite → Cloudflare Pages и сервер с PostgreSQL → Railway. Также — цены, домен, HTTPS, безопасность и ошибки. Проверено по официальной документации 11 октября 2026 года. Тарифы и интерфейсы могут меняться. Иллюстрации — поясняющие схемы, а не скриншоты сервисов.

Почему сайт работает у вас, но не открывается у других

У сайта, созданного с помощью нейросети, может быть сразу три разных адреса. Они не равнозначны.

http://localhost:3000 или http://127.0.0.1:5173
Локальный сервер работает на вашем компьютере. Можно ли отправить пользователям? Нет: чужой браузер не подключится к вашему localhost.

Ссылка предпросмотра внутри AI-сервиса
Среда разработки показывает результат; иногда предлагает отдельную общедоступную ссылку. Можно ли отправить пользователям? Только после проверки доступа, срока жизни ссылки и того, где хранятся данные.

https://my-project.pages.dev или домен вашего проекта
Сайт опубликован на интернет-хостинге. Можно ли отправить пользователям? Да, если адрес публичный и все необходимые сервисы работают.

Деплой — публикация версии приложения на хостинге. Хостинг хранит файлы или запускает сервер, а домен (example.com) помогает найти его в интернете.

Что именно вы создали: три типа проектов

Способ размещения зависит от устройства проекта, а не от того, какой нейросетью вы его сделали.

1. Статический сайт без собственного сервера

Портфолио, лендинг или страница мероприятия: index.html, CSS, JavaScript, изображения. Хостинг отдаёт посетителям готовые файлы, не запуская ваше серверное приложение.

Подойдут: GitHub Pages, Cloudflare Pages, Netlify. Если форма отправляет данные во внешний сервис, этот сервис нужно отдельно настроить.

2. Frontend-приложение со сборкой

React, Vue или Svelte со сборкой через Vite: в проекте есть package.json, а npm run build обычно создаёт папку dist/.

Статический хостинг подойдёт, если собственный постоянно работающий backend не нужен. Внешний API возможен, но он должен быть опубликован отдельно.

Next.js — особый случай. Статический экспорт можно разместить на Pages. А серверный рендеринг, API-маршруты и серверные действия требуют совместимого runtime или адаптера. Уточните режим проекта до выбора хостинга.

3. Полноценное приложение с backend и данными

AI-сервис с личными кабинетами, генератор документов или SaaS может состоять из интерфейса, Node.js/Python-сервера, PostgreSQL, авторизации, фоновых задач и внешних API.

Подойдут: Railway, Render либо настроенный VPS. Часто интерфейс, сервер и база размещаются отдельными сервисами. GitHub Pages не запускает Express или FastAPI.

Как определить тип: index.html — признак статики; vite.config.* и package.json — возможный frontend; server.js, app.py, API-маршруты, Prisma и SQL-миграции — признаки серверной части. В монорепозитории могут присутствовать все компоненты.

Где разместить сайт: сравнение хостингов в 2026 году

«Бесплатно» может означать статический хостинг без оплаты, лимит кредитов либо короткий пробный период. Сравнивайте не только цену, но и ограничения.

GitHub Pages
Для чего: Простые статические сайты, документация, портфолио.
Условия: Бесплатно для публичных репозиториев на GitHub Free; собственного серверного кода нет.
Сложность: Низкая.

Cloudflare Pages
Для чего: HTML, React/Vite и другие статические сборки; небольшие функции при отдельной настройке.
Условия: Free: до 500 сборок в месяц; ограничения функций и файлов следует проверять отдельно.
Сложность: Низкая.

Netlify
Для чего: Статические сайты, frontend и функции.
Условия: Free за $0 с лимитом 300 кредитов в месяц; учитываются публикации, трафик и вычисления.
Сложность: Низкая.

Vercel
Для чего: Frontend, React/Next.js и поддерживаемые серверные функции.
Условия: Hobby бесплатен, только для личного некоммерческого использования; лимиты ресурсов.
Сложность: Низкая–средняя.

Render
Для чего: Статика, серверы Node.js/Python, тестовые базы.
Условия: Free web service засыпает после 15 минут без активности; бесплатная PostgreSQL истекает через 30 дней.
Сложность: Средняя.

Railway
Для чего: Backend, приложения с PostgreSQL, несколько сервисов.
Условия: Trial: до 30 дней или $5; затем Free с $1 кредита в месяц. На Free после trial собственные домены не включены.
Сложность: Средняя.

VPS у выбранного провайдера
Для чего: Нестандартный backend, сложные процессы, полный контроль.
Условия: Обычно оплачивается отдельно; ОС, безопасность, обновления, HTTPS и резервные копии — ваша ответственность.
Сложность: Высокая.

Примечание: Cloudflare рекомендует начинать новые проекты с Workers. Ниже разобран конкретный маршрут публикации статической React/Vite-сборки через Pages, который по-прежнему поддерживается. Для full-stack сначала проверьте требования к среде выполнения.

Как выбрать без лишней теории:

  • HTML-лендинг: GitHub Pages или Cloudflare Pages.

  • React/Vite без сервера: Cloudflare Pages.

  • Next.js с серверными функциями: совместимый хостинг; проверьте условия Vercel.

  • API, PostgreSQL, регистрация: Railway или Render.

  • Сложная архитектура и полный доступ: VPS при наличии опыта администрирования.

Дополнительные расходы: домен, база, хранение файлов, трафик и вызовы внешних API, включая AI-модели. Бесплатная публикация интерфейса не делает бесплатной генерацию ответов нейросетью.

Регистрация, оплата и доступность зависят от страны и аккаунта. Перед запуском проверьте возможность регистрации и оплаты для своего региона.

Пошагово: публикуем React/Vite через GitHub и Cloudflare Pages

Пример: созданное AI React/Vite-приложение запускается через npm run dev. Оно не использует собственный backend; нужен публичный URL. Ниже — путь через GitHub и Cloudflare Pages.

Шаг 1. Проверьте, что проект вообще собирается

В корне проекта найдите package.json и раздел scripts: у Vite обычно есть команда build.

В терминале в корне проекта выполните:

npm install
npm run build

При наличии package-lock.json для воспроизводимой установки обычно подходит npm ci. Для pnpm и yarn используйте соответствующий менеджер пакетов.

Результат: сборка проходит без ошибок и появляется dist/ с index.html и ресурсами. Это необходимая, но ещё не окончательная проверка.

Если сборка падает, сначала изучите ошибку и попросите агента устранить её. Проверьте версию Node.js, зависимости, импорты и TypeScript.

Шаг 2. Поместите исходники в GitHub

1. Создайте репозиторий на GitHub. Для Cloudflare Pages он может быть приватным; не путайте это с условиями GitHub Pages на GitHub Free.

2. Перед загрузкой исключите из Git файлы с секретами (.env), node_modules/, личные данные и базы; проверьте .gitignore.

3. Загрузите исходники через GitHub Desktop, Git или Add file → Upload files.

4. Убедитесь, что в репозитории есть package.json, исходники и файл блокировки зависимостей.

Если вы уже используете Git в рабочей папке, команды могут выглядеть так:

git add .
git commit -m "Prepare site for deployment"
git push

Команды предполагают, что репозиторий уже подключён. Перед git add . проверьте список файлов. Попавший в историю секрет нужно отозвать и заменить, а не просто удалить файл.

Шаг 3. Подключите GitHub к Cloudflare Pages

1. Откройте Cloudflare → Workers & Pages.

2. Выберите Create application → Pages → Connect to Git, как описано в руководстве Cloudflare.

3. Авторизуйте GitHub и выберите репозиторий; ограничьте выдаваемый доступ.

4. Выберите производственную ветку, обычно main.

Теперь самое важное: настройки сборки.

Framework preset: Vite или предложенный совместимый пресет, если он есть.

Build command: npm run build.

Build output directory: dist.

Root directory: Корень репозитория, если проект лежит там.

Production branch: main, если именно она основная.

Для типового Vite эти значения приведены в документации Cloudflare. Если проект лежит в frontend/ или собирается не в dist/, измените настройки.

Укажите необходимые переменные окружения. Не помещайте пароли и API-секреты в frontend: используемые в коде переменные с префиксом VITE_ доступны в клиентской сборке.

Шаг 4. Запустите публикацию и получите ссылку

Нажмите Save and Deploy. В Deployments появятся журнал сборки и статус публикации.

Когда публикация завершится успешно, появится адрес вида:

https://your-project.pages.dev

Это уже интернет-адрес, а не локальный localhost. Название и точный URL выдаёт Cloudflare; пример выше — условный.

Откройте адрес в приватном окне или на другом устройстве. Проверьте стили, изображения и прямой переход на вложенный URL вроде /profile. Cloudflare Pages обрабатывает SPA-маршруты, если в корне сборки нет собственного 404.html.

Шаг 5. Проверьте главное действие пользователя

Пройдите главное действие пользователя: отправьте форму, выполните запрос, сохраните и снова откройте запись. При ошибке изучите браузерные Console и Network. Убедитесь, что API не указывает на localhost.

Шаг 6. Обновляйте сайт через репозиторий

После подключения GitHub изменения в основной ветке обычно вызывают автоматическую сборку и публикацию. Для рискованных правок используйте preview и сохраняйте возможность вернуться к рабочей версии.

Если проект состоит только из HTML/CSS/JS: команду npm run build запускать не нужно. Укажите директорию с index.html; для простого HTML документация Cloudflare предлагает exit 0. Есть и отдельный Direct Upload без Git, но метод нельзя бесшовно переключить после создания проекта.

Если у приложения есть сервер и PostgreSQL: другой маршрут

Если AI создал React-интерфейс, Express API и PostgreSQL, одного dist/ мало: нужны запущенный сервер и подключённая база.

Railway позволяет разместить их внутри одного проекта. Рассмотрим Node.js/Express; у Django, Next.js и других стеков команды отличаются.

1. Подготовьте сервер к запуску вне компьютера

У сервера должна быть production-команда (npm start, если она предусмотрена). На Railway приложение должно слушать порт из переменной PORT:

const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0");

Это пример, а не код для вставки в любой проект. Проверьте, что сервер не привязан только к 127.0.0.1, и не храните секретные API-ключи в frontend.

2. Создайте проект Railway и подключите GitHub

На Railway выберите New Project → Deploy from GitHub repo, подключите репозиторий. Проверьте команды Build и Start, особенно если проект находится в подпапке.

3. Добавьте PostgreSQL и подключите переменную

Добавьте в проект базу через + New / Database → PostgreSQL, затем в разделе Variables серверного сервиса задайте ссылку на её адрес:

DATABASE_URL=${{Postgres.DATABASE_URL}}

Это ссылочная переменная Railway, а не настоящий пароль. Имя Postgres зависит от имени вашего сервиса. Значение DATABASE_URL должно оставаться на сервере.

Миграции схемы БД выполняйте по инструкции вашего стека. Не запускайте очистку или сброс схемы на реальных данных; сначала создайте резервную копию и проверьте план восстановления.

4. Настройте публичный адрес и проверьте сервер

После успешного деплоя откройте Settings → Networking → Public Networking → Generate Domain. Проверьте runtime logs и ответы API. Endpoint /health полезен для проверки готовности новой версии, но не заменяет постоянный мониторинг.

Проверьте регистрацию, сохранение данных и права доступа. Если frontend развернут отдельно, укажите действующий адрес API и настройте разрешённые источники запросов.

Railway Free: после пробного периода до 30 дней с $5 разового кредита остаётся $1 ежемесячного кредита; собственный домен на Free после trial недоступен. Для него смотрите Hobby и актуальные тарифы Railway.

Когда лучше использовать Render или VPS

Render размещает backend, но бесплатный web service засыпает после 15 минут без активности, а бесплатная PostgreSQL действует 30 дней. Такой тариф больше подходит для прототипов, чем для постоянно доступного продукта.

VPS требует самостоятельно настроить сервер, HTTPS, обновления и резервное копирование. Начинающему ради лендинга это обычно не нужно.

Как подключить свой домен и HTTPS

Адрес *.pages.dev или *.railway.app подходит для тестов. Собственный домен — удобное имя (example.com), приобретаемое отдельно от хостинга.

DNS указывает, куда обращаться по имени; HTTPS шифрует соединение с сайтом при наличии действительного TLS-сертификата.

Домен для Cloudflare Pages: рабочий порядок

1. Убедитесь, что сайт открывается на *.pages.dev.

2. В Workers & Pages → проект → Custom domains → Set up a domain добавьте нужное имя.

3. Для корневого домена (example.com) подключите зону к Cloudflare и установите назначенные nameservers. Для поддомена (www.example.com) при внешнем DNS создайте CNAME на *.pages.dev вашего проекта; при DNS Cloudflare запись обычно создаётся автоматически.

4. Дождитесь подтверждения домена и TLS-сертификата, затем откройте https://ваш-домен.

5. Для www и адреса без www при необходимости настройте оба имени и перенаправление.

Порядок описан в документации Cloudflare по доменам. При смене nameservers заранее перенесите нужные DNS-записи, включая MX и TXT для почты: иначе можно нарушить работу уже подключённых сервисов.

Сначала добавьте домен в Pages, потом изменяйте DNS. Один CNAME без привязки в панели Cloudflare может давать ошибку 522.

Изменения DNS распространяются не мгновенно. Сверяйте записи с инструкцией хостинга; не пытайтесь обойти проблемы сертификата отключением HTTPS.

На Railway при добавлении Custom Domain следуйте инструкции сервиса: нужны выданные записи CNAME и TXT; TLS-сертификат управляется автоматически. Доступность собственного домена зависит от тарифа.

Что попросить у AI-агента перед деплоем

Вместо просьбы «выложи всё» поручите агенту конкретную проверку. Эти запросы подходят для AI-инструмента с доступом к вашему коду.

Промпт 1. Определить подходящий хостинг

Проверь мой проект без изменения файлов: frontend, backend, база данных, API, фоновые задачи, хранение файлов, команды сборки и запуска. Объясни, возможен ли статический хостинг или нужен сервер. Сошлись на конкретных файлах; не выдумывай результаты проверок.

Промпт 2. Подготовить проект к публикации

Подготовь проект к production: проверь сборку, .gitignore, секреты, переменные окружения, серверный порт, авторизацию, доступ к данным и ошибки. Сначала покажи план, затем внеси необходимые изменения и проверь их локально. Не публикуй проект и не выполняй миграции реальной базы без моего подтверждения.

Промпт 3. Разобраться с неудачным деплоем

По журналу и описанию ошибки установи вероятные причины, отделяя факты от гипотез. Укажи безопасную проверку и минимальное исправление. Не отключай защиту и не удаляй данные. Если информации мало, уточни, какие журналы нужны. [Вставлю логи без ключей и персональных данных.]

Безопасность: что обязательно проверить до первого пользователя

Успешная сборка не означает безопасный запуск. До первого пользователя проверьте следующее.

Секреты. Не храните пароли, API-ключи, токены платежей и DATABASE_URL в клиентском коде или Git. На Vite переменные VITE_* доступны в собранном frontend. Утёкшие ключи нужно отозвать и заменить.

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

Тестовые данные. Уберите стандартные пароли, демонстрационные административные аккаунты, опасные debug-маршруты и тестовые данные.

Бэкапы. Создавайте копии базы и пользовательских файлов, проверяйте восстановление. Не храните единственную копию на временном диске контейнера.

Мониторинг и расходы. Настройте журналы ошибок, проверку доступности, оповещения и лимиты вызовов AI API, чтобы злоупотребления не привели к неожиданному счёту.

Откат. Сохраняйте рабочую версию и резервную копию перед миграцией. Откат приложения сам по себе не отменяет изменений данных.

Если вы обрабатываете персональные данные или платежи, дополнительно проверьте применимые требования и проведите специализированную оценку безопасности.

Частые ошибки при публикации: что делать, если сайт не работает

Симптом — ещё не диагноз. Сначала изучайте build logs, runtime logs и запросы браузера.

При деплое написано Build failed
Возможная причина: Не та версия Node, отсутствует пакет, ошибка TypeScript, неверная команда.
Проверка: Откройте build logs; воспроизведите npm run build локально; сравните менеджер пакетов и версию Node.

На главной странице 404 Not Found
Возможная причина: Неправильная папка публикации или нет index.html.
Проверка: Проверьте build output directory и наличие index.html в итоговой сборке.

Главная открывается, а /profile после обновления даёт 404
Возможная причина: Ошибка маршрутизации SPA либо конфликт с файлом 404.html.
Проверка: Проверьте прямое открытие вложенного URL и правила обработки маршрутов на выбранном хостинге.

Интерфейс есть, но данные не загружаются
Возможная причина: Frontend обращается на localhost, неправильный API URL, CORS или недоступный backend.
Проверка: Откройте DevTools → Network, найдите адрес запроса, код ответа и журналы API.

500 / Application failed to respond
Возможная причина: Ошибка запуска сервера, отсутствующая переменная, неверный порт, сбой приложения.
Проверка: Посмотрите runtime logs, команду запуска, PORT и результат healthcheck.

Ошибка доступа к базе
Возможная причина: Неверный DATABASE_URL, нет схемы после миграции, сетевые ограничения или права.
Проверка: Проверьте серверные переменные, состояние БД и журнал приложения; не публикуйте строку подключения.

Домен не открывается, хотя служебный URL работает
Возможная причина: Ошибка DNS, домен не добавлен в панель, ещё не выдан сертификат.
Проверка: Сверьте записи DNS с инструкцией хостинга, статус Custom domains и HTTPS.

После обновления виден старый интерфейс
Возможная причина: Сбой новой сборки, кэш браузера или CDN, публикация не той ветки.
Проверка: Проверьте активный deployment, commit и поведение в приватном окне.

Не «исправляйте» ошибки отключением HTTPS, авторизации или открытием базы всему интернету. CORS не заменяет авторизацию и не исправляет неправильный адрес API.

Чек-лист: готов ли проект к публичному запуску

До публикации:

  • Определён тип проекта и выбран хостинг.

  • Сборка и production-запуск проверены.

  • Секреты отсутствуют в репозитории и клиентских файлах.

  • Доступ к данным и миграции проверены, бэкапы готовы.

  • Тестовые аккаунты и опасная отладка убраны.

  • Есть план мониторинга, расходов и отката.

После публикации:

  • Публичный HTTPS-адрес работает с другого устройства.

  • Главная и внутренние страницы открываются напрямую.

  • Стили и интерфейс работают на телефоне.

  • Регистрация, формы и основное действие работают.

  • Нет запросов на localhost и критических ошибок.

  • DNS, сертификат, мониторинг и восстановление данных проверены.

Попросите человека, не участвовавшего в разработке, открыть сайт и выполнить одно действие без подсказок. Это полезнее, чем оценивать релиз только в собственном браузере.

Что делать после того, как сайт заработал

Если проект уже работает, покажите его на Vibeus: добавьте публичную ссылку, опишите решаемую задачу и попросите обратную связь. Для публикации нужен аккаунт. О дальнейшем продвижении — в отдельной статье «Где продвигать AI-приложение» (на английском).

Частые вопросы

Можно ли бесплатно выложить сайт, который сделала нейросеть?

Да. Для статического сайта и небольшого frontend есть бесплатные варианты, включая Cloudflare Pages и GitHub Pages. Сервер, база, трафик и AI API могут потребовать оплаты.

Нужен ли GitHub для публикации сайта?

Нет. Некоторые сервисы позволяют загрузить готовые файлы вручную, а AI-конструкторы могут предлагать собственную публикацию. GitHub удобен для истории изменений и автоматического обновления. Приватные репозитории поддерживаются не на всех бесплатных тарифах, поэтому проверьте условия выбранной платформы.

Как опубликовать сайт из Cursor, Codex или Claude Code?

Способ зависит от кода. React/Vite без backend публикуют как статическую сборку. Для Express, FastAPI, серверного Next.js и базы данных нужен совместимый серверный хостинг.

Можно ли опубликовать сайт без покупки домена?

Да. Cloudflare Pages выдаёт *.pages.dev, Railway — служебный адрес. Свой домен необязателен для первого запуска.

Почему сайт на localhost не открывается с другого телефона?

localhost указывает на устройство, где открыт адрес. Другой телефон не подключится к вашему компьютеру по этому адресу. Для постоянного доступа из интернета нужен публичный адрес приложения; доступ внутри одной локальной сети настраивается отдельно.

Если я изменю проект, нужно ли снова покупать хостинг?

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

Что делать, если AI-агент говорит, что деплой успешен, но сайт не работает?

Попросите ссылку на deployment и журналы; проверьте публичный адрес в другом браузере, работу API и основной сценарий. Слова агента не заменяют проверку.

Итого: определите архитектуру, разместите frontend или backend на подходящем хостинге, настройте домен и проверьте работу из чужого браузера.