Публикация на хостинге: домен, SSL, деплой, обновления и бэкапы
Как эта статья связана с предыдущими
На прошлых этапах у вас уже есть готовый статический проект:
структура страниц и требования
прайс в price.json
адаптивная вёрстка
логика калькулятора на JavaScript
интеграции (заявка, сохранение, аналитика)
тестирование, базовая оптимизация и SEO-гигиенаТеперь задача практическая: сделать сайт доступным по публичной ссылке, подключить домен, включить HTTPS, настроить процесс обновлений и продумать бэкапы, чтобы не потерять проект и уметь быстро откатываться.
!Общая схема пути от локальных файлов до публичного сайта
Что такое хостинг для статического сайта
Статический сайт состоит из файлов, которые хостинг просто раздаёт браузеру:
HTML
CSS
JavaScript
JSON (ваш price.json)
изображенияПлюс такого подхода:
не нужен серверный код
проще деплой
дешевле и надёжнееВажная деталь курса: калькулятор должен корректно загружать price.json по сети, а значит хостинг обязан отдавать этот файл без ошибок и блокировок.
Как выбрать платформу хостинга
Ниже три популярных варианта для статических проектов. Любой подойдёт для курса.
| Вариант | Когда выбирать | Плюсы | Минусы |
|---|---|---|---|
| GitHub Pages | учебный проект, портфолио | бесплатно, просто, удобно с Git | меньше возможностей по формам и настройкам |
| Netlify | нужен удобный деплой, формы, редиректы | много функций, деплой из Git, Netlify Forms | часть функций требует настройки аккаунта |
| Vercel | хотите быстрый деплой из Git и хорошую CDN-раздачу | простой деплой, хорошая скорость | больше ориентирован на проекты с сборкой, хотя статике тоже подходит |
Документация:
GitHub Pages documentation
Netlify Docs
Vercel DocumentationПодготовка проекта к публикации
Перед деплоем проверьте структуру и относительные пути.
Рекомендуемая структура файлов
Ключевой принцип: используйте относительные пути, чтобы сайт одинаково работал локально и на хостинге.
Примеры корректных подключений:
Если разместить проект в подпапке, абсолютные пути вида /assets/app.js часто ломаются. Это типичная причина, почему «локально всё работает, а на хостинге нет».
Проверка перед публикацией
откройте сайт локально через простой сервер, а не двойным кликом по HTML
убедитесь, что fetch к price.json работаетБыстрый вариант через Node.js:
Сайт откроется по локальному адресу, и вы увидите сетевые ошибки, если пути настроены неверно.
Деплой на GitHub Pages
GitHub Pages хорошо подходит для статического сайта без сборки.
Публикация через ветку
Создайте репозиторий и загрузите туда файлы.
Откройте настройки репозитория.
Включите Pages и выберите источник публикации.Официальное руководство:
Configuring a publishing source for your GitHub Pages siteЧастая проблема: путь сайта с репозиторием
Если сайт доступен как https://username.github.io/repo-name/, то:
все ссылки и ресурсы должны открываться с учётом подпапки
относительные пути обычно спасаютЕсли у вас много путей, проще использовать деплой на корневой домен или выбрать платформу, где сайт живёт в корне.
Деплой на Netlify
Netlify особенно удобен, когда вы хотите:
деплой из Git
кастомный домен
редиректы
формыОфициальный старт:
Get started with NetlifyВариант деплоя без Git
Соберите папку проекта.
Перетащите папку в Netlify в раздел загрузки.Это быстро, но хуже для обновлений, поэтому для курса лучше деплой из Git.
Деплой из Git
Подключите репозиторий.
Выберите ветку.
Если сборки нет, оставьте build-настройки пустыми.Netlify будет автоматически публиковать сайт после каждого push.
Деплой на Vercel
Vercel тоже умеет статические сайты из Git и часто даёт очень быстрый результат по скорости загрузки.
Официальные инструкции:
Deploying a static siteЛогика похожа:
импортируете репозиторий
выбираете настройки
получаете публичный URLДомен: что купить и как подключить
Что такое домен и из чего он состоит
Домен это человекочитаемый адрес сайта, например example.ru.
Обычно вам нужно:
купить домен у регистратора
привязать домен к хостингу через DNSDNS простыми словами
DNS это система, которая говорит браузеру: на какой сервер или платформу указывает домен.
Чаще всего вы встретите записи:
A запись указывает домен на IP-адрес
CNAME указывает поддомен на другой домен (например, на домен платформы)У хостинга всегда есть официальная инструкция, какие записи добавить.
Подключение домена к хостингу
Типовой сценарий:
В панели хостинга добавляете свой домен.
Платформа показывает, какие DNS-записи нужно создать.
В панели регистратора домена создаёте записи.
Ждёте обновления DNS.У Netlify есть отдельный раздел:
Netlify DNSУ GitHub Pages:
Managing a custom domain for your GitHub Pages siteУ Vercel:
Domains on VercelРекомендация по домену с www и без
Практичный вариант:
сделать основной домен без www или с www
второй вариант настроить как редирект на основнойТак вы избегаете дублей и путаницы в аналитике.
SSL и HTTPS: зачем и как включить
Что такое SSL и HTTPS
HTTPS это защищённый протокол доступа к сайту. SSL-сертификат нужен, чтобы:
браузер не показывал предупреждение «небезопасно»
данные (например, формы) передавались безопасно
современные API браузера работали стабильнееСейчас почти все платформы включают HTTPS автоматически.
Откуда берутся сертификаты
Обычно сертификаты выдаёт Let’s Encrypt:
Let’s EncryptВы вручную ничего не «покупаете» и не устанавливаете, если используете GitHub Pages, Netlify или Vercel.
Обязательное правило
Включите принудительный HTTPS, чтобы все заходы по http:// перекидывало на https://.
На платформах это обычно переключатель в настройках домена.
Проверки после деплоя
После публикации пройдитесь по чек-листу.
Проверка загрузки price.json
Откройте сайт.
Откройте DevTools.
Вкладка Network.
Найдите запрос price.json.Должно быть:
статус 200
корректный размер
без ошибок CORSЕсли видите 404, проблема почти всегда в пути fetch('./data/price.json') и в реальном расположении файла на хостинге.
Проверка MIME-типа
Иногда хостинг может отдавать JSON неправильно, но на популярных платформах это редкость. Если браузер ругается, убедитесь, что файл реально имеет расширение .json.
Проверка ссылок и роутинга
Если у вас несколько HTML-страниц, проверьте:
переходы из меню
открытие страниц по прямой ссылке
отсутствие «битых» путей к стилям и скриптамОбновления: как выпускать изменения без хаоса
Минимальная стратегия релизов
Хорошая базовая стратегия для учебного и небольшого коммерческого проекта:
Все изменения делаете в Git.
Каждый логический набор изменений это отдельный коммит.
Деплой происходит автоматически после push в основную ветку.Это даёт понятную историю изменений и простой откат.
Как обновлять прайс безопасно
price.json меняется чаще всего, поэтому важно:
хранить его в репозитории
перед публикацией прогонять проверки корректностиИз предыдущей статьи у вас уже есть идеи валидации прайса. Практика:
делайте отдельный коммит вида Update price.json: Feb 2026
после деплоя обязательно прогоняйте 3–5 ключевых сценариев расчётаВерсионирование файлов и кэш
Если хостинг или браузер агрессивно кэширует, вы можете увидеть ситуацию:
HTML обновился
JS или price.json остались старыеПрактичное решение:
добавлять версию в имя файла при крупных измененияхПример:
app.v2.js
styles.v2.css
price.v2.jsonИ обновлять ссылки в HTML. Это простой способ заставить браузер скачать новую версию.
Бэкапы и откаты
Что считать бэкапом для статического сайта
Для статического проекта лучший бэкап это:
репозиторий Git с историей
копия доменных настроек (какие DNS-записи нужны)
копия важных настроек хостинга (редиректы, формы)Практика отката
Если после обновления что-то сломалось:
Откатите последний коммит.
Запушьте изменения.
Платформа задеплоит предыдущую версию.На многих платформах есть и откат деплоя в интерфейсе.
На Netlify это отдельная функция:
Deploys overviewЧто бэкапить отдельно от кода
Если вы используете внешние сервисы:
формы (например, Formspree)
аналитикато сохраняйте хотя бы:
идентификаторы счётчиков
тексты уведомлений
список событий аналитикиЭто помогает быстро восстановить проект на другой платформе.
Минимальный план обслуживания после публикации
Чтобы проект не превратился в «заброшенную страницу», заведите простой ритм.
раз в месяц проверять, что сайт открывается по HTTPS
после каждого обновления price.json прогонять сценарии расчёта
раз в квартал запускать Lighthouse и проверять, не появились ли критические проблемы
хранить контакты и доменные доступы в безопасном местеИтог
После этого шага у вас должен быть не просто работающий калькулятор, а опубликованный продукт:
сайт доступен по публичной ссылке
подключён домен
включён HTTPS с SSL
настроен деплой и понятный процесс обновлений
продуманы бэкапы и способ откатаДальше проект уже можно развивать как коммерческий инструмент: расширять прайс, добавлять новые сценарии, улучшать форму заявки и настраивать маркетинг, не ломая основу.