После того как сайт написан, его нужно выложить в интернет. Стандартный путь включает три пункта:
- Покупка домена
- Покупка хостинга и его настройка
- Деплой
В этом уроке мы рассмотрим эти пункты более подробно.
Покупка домена
Чтобы приобрести домен, необходимо обратиться в компании-регистраторы. Домен оплачивается раз в год и закрепляется за определенным человеком или компанией.
Иногда хостер и регистратор — одна и та же компания. Тогда домен и сервер связываются одновременно. Иначе нужно производить определенные настройки на стороне сервера и подтверждать свое право владения доменом.
Покупка хостинга и его настройка
Хостинг — это ресурсы для размещения и обслуживания сайта в интернете. Хостинг бывает разным. Это может быть:
- Уже полностью готовая среда, в которую заливается код сайта
- Просто железные серверы, которыми можно и нужно управлять самостоятельно
Обычно работа с хостингом выглядит так:
- Регистрируемся на сайте хостинга
- Выбираем тариф и вид хостинга (On-Prem, IaaS, PaaS, SaaS), привязываем банковскую карту
- Получаем доступ к ресурсам — к IP-адресу и паре «логин/пароль» для доступа по SSH и FTP
- При необходимости настраиваем хостинг и деплоим проект
Деплой
Деплой — это выкладка новой версии сайта на сервер. Этот процесс может быть довольно сложным и зависит от используемых технологий. Во время деплоя могут выполняться следующие задачи:
- Скачиваем код проекта на сервер (обычно через клонирование Git)
- Ставим все необходимые зависимости
- Выполняем сборку приложения
- Выполняем миграции — SQL-скрипты, которые изменяют структуру базы данных
- Запускаем новую версию кода
Обсудим самый простой способ начать деплоить. Большинство PaaS-хостеров имеют бесплатные планы, достаточные для выкладки учебных проектов. Их достоинство в том, что вам не придется покупать адрес — домен третьего уровня предоставляется бесплатно.
Для деплоя учебных проектов мы предлагаем использовать Render. Этот сервис поддерживает деплой GitHub-репозиториев. Подробнее об этом вы можете почитать в нашей статье «Что делать, если возникли трудности с деплоем Java-приложения на Railway. Разбираем сервис Render».
Особенности сборки Gradle
Подключив базу данных к нашему приложению, мы добавили в него файл src/main/resources/schema.sql, который затем читается из кода. Когда мы попробуем собрать приложение и запустить на сервере, этот код не сработает, потому что Gradle не копирует файлы из директории src/main/resources в получившийся jar.
Это можно исправить с помощью плагина shadow, который автоматически добавляет все ресурсы в jar:
plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
// Остальные плагины
}
Самостоятельная работа
- Зарегистрируйтесь на сервисе render.com
- Задеплойте на Render приложение, которое вы писали в течение этого курса
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.