Установка Hugo с помощью Cloud Apps
Важно
Часть ресурсов, необходимых для прохождения практического руководства, доступны только в регионе Россия.
С помощью этого руководства вы установите и настроите статический сайт на Hugo
Примечание
Для работы с репозиторием в руководстве используется платформа SourceCraft
Предварительно ознакомьтесь с документацией
Чтобы установить Hugo:
- Подготовьте облако к работе.
- Настройте DNS-зону.
- Установите Hugo с помощью Cloud Apps.
- Подготовьте репозиторий сайта.
- Проверьте результат.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки создаваемой инфраструктуры входят:
- плата за использование публичной DNS-зоны и за публичные DNS-запросы (тарифы Yandex Cloud DNS);
- плата за хранение данных в Yandex Object Storage, операции с ними и исходящий трафик (тарифы Yandex Object Storage);
- плата за хранение секретов в Yandex Lockbox (тарифы Yandex Lockbox).
Настройте DNS-зону
Перед установкой приложения вам необходимо создать публичную DNS-зону и делегировать на нее домен. Подробнее о делегировании домена читайте в инструкции.
-
Перейдите
в сервис Cloud DNS. -
Нажмите кнопку Создать зону.
-
Задайте настройки зоны DNS:
- Зона — укажите ваш зарегистрированный домен, например
example.com.(с точкой в конце). - Тип — выберите
Публичная. - Имя — укажите имя зоны, например
example-zone.
- Зона — укажите ваш зарегистрированный домен, например
-
Нажмите кнопку Создать.
-
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов
ns1.yandexcloud.kzиns2.yandexcloud.kz.Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи до 24 часов. Проверить делегирование домена можно с помощью сервиса Whois
или утилитыdig:dig +short NS example.comРезультат:
ns2.yandexcloud.kz. ns1.yandexcloud.kz.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
Создайте публичную зону DNS:
yc dns zone create \ --name example-zone \ --zone example.com. \ --public-visibility=trueГде
--zone— имя вашего домена, напримерexample.com.. Значение параметра--zoneдолжно заканчиваться точкой.Результат:
id: dns39gihj0ef******** folder_id: b1g681qpemb4******** created_at: "2024-09-09T15:23:34.919887Z" name: example-zone zone: example.com. public_visibility: {}Подробнее о команде
yc dns zone createчитайте в справочнике CLI. -
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов
ns1.yandexcloud.kzиns2.yandexcloud.kz.Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи в течение 24 часов.
Чтобы создать публичную зону DNS, воспользуйтесь методом REST API create для ресурса DnsZone или вызовом gRPC API DnsZoneService/Create.
Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов ns1.yandexcloud.kz и ns2.yandexcloud.kz.
Установите Hugo с помощью Cloud Apps
Установите статический сайт на Hugo с помощью Cloud Apps. Приложение развернет сайт в Object Storage и настроит доступ по домену.
-
Перейдите
в сервис Cloud Apps. -
Нажмите кнопку Установить приложение.
-
Выберите приложение Статический сайт в Object Storage.
-
Задайте параметры приложения:
Параметр
Обязательный
Значение по умолчанию
Описание
Имя
Да
—
Название экземпляра приложения.
Описание
—
—
Описание экземпляра приложения.
Сервисный аккаунт
Да
—
Сервисный аккаунт, от имени которого будет происходить установка приложения. Сервисный аккаунт должен иметь роли
storage.admin,lockbox.admin,certificate-manager.adminиdns.adminна каталог.
Чтобы сервисный аккаунт с необходимыми правами создался во время установки приложения, выберитеАвтоматически.DNS-зона
Да
—
Идентификатор DNS-зоны, в которой будет находиться домен сайта.
Поддомен
—
Пустой
Домен, на котором будет доступен статический сайт на Hugo. Формируется добавлением поддомена к домену DNS-зоны:
site.example.comилиexample.com, если поддомен не указан.Конфигурация веб-сайта
Да
—
В выпадающем списке выберите Hugo.
Максимальный размер бакета
—
10Максимальный размер бакета Object Storage для статических файлов сайта в ГБ.
-
Нажмите кнопку Установить.
Установка приложения займет несколько минут. В процессе установки будут созданы бакет в Object Storage, записи в DNS-зоне для поддомена сайта и необходимые ресурсы для доступа по HTTPS. Дождитесь завершения установки.
Подготовьте репозиторий
После установки приложения подготовьте репозиторий в SourceCraft с исходным кодом сайта:
-
Если у вас еще не установлен Git, установите его по инструкции
. -
Создайте
репозиторий из шаблонаcloudapp-hugo . -
На локальном компьютере перейдите в рабочую директорию, где будет размещен проект сайта.
-
Клонируйте
репозиторий, созданный из шаблона. -
Перейдите в склонированный репозиторий. Дальнейшую работу (настройку окружения, сборку и выгрузку) выполняйте внутри этого каталога.
Разверните сайт
Откройте файл README в корне репозитория и выполните описанные там шаги:
-
Настройте
сервисное подключение. Укажите сервисный аккаунт, созданный при установке приложения.Имя сервисного подключения, заданное при его создании, потребуется для дальнейшей настройки.
-
Обновите конфигурационные файлы в редакторе, например в Visual Studio Code:
-
Файл
hugo.toml:baseURL = 'https://<домен>' title = '<название_сайта>' ... [deployment] [[deployment.targets]] name = 'production' url = 's3://<домен>?region=ru-central-1&endpoint=https://storage.yandexcloud.net' ...Где:
<домен>— домен, на котором будет доступен сайт. Обычно совпадает с именем бакета, созданного при установке приложения.<название_сайта>— название вашего сайта.
-
Файл
.sourcecraft/ci.yaml:tokens: SERVICE_CONNECTION: service_connection: <сервисное_подключение> scope: org workflows: hugo-deploy: env: DOMAIN_NAME: <домен>Где:
<сервисное_подключение>— имя сервисного подключения.<домен>— домен, на котором будет доступен сайт. Обычно совпадает с именем бакета, созданного при установке приложения.scope— уровень сервисного подключения. Возможные значения:repo— для подключений на уровне репозитория.org— для подключений на уровне организации.
-
-
Запустите пайплайн CI/CD для развертывания статического сайта. Для этого последовательно выполните команды в ветку
main:git commit -aВведите название коммита.
git pushПосле успешного выполнения пайплайна сайт станет доступен по адресу
https://<домен>. Результат сборки автоматически загрузится в бакет Object Storage.
Настройте сайт
-
Установите локально Hugo
нужной версии для локальной разработки. -
Запустите dev-сервер:
hugo serverСайт будет доступен по адресу
http://localhost:1313. -
Для сборки продакшен-версии выполните команду:
hugoРезультат сборки будет сохранен в папке
public/. -
Для локального просмотра продакшен-сборки выполните команду:
hugo server --disableFastRender -
Чтобы опубликовать изменения, запустите пайплайн CI/CD, как описано в разделе Разверните сайт.
Проверьте результат
Убедитесь, что ваш статический сайт на Hugo успешно опубликован и доступен по публичному домену:
-
Откройте в браузере домен или поддомен, который указывали при установке приложения (например,
https://site.example.com). -
Проверьте, что открывается главная страница вашего Hugo-сайта и работает его навигация.
-
Если в шаблоне была добавлена тестовая страница или раздел, перейдите по соответствующей ссылке и убедитесь, что она также открывается по публичному URL.
Если сайт открывается, все изображения, стили и страницы загружаются корректно — развертывание выполнено успешно.
Как удалить созданные ресурсы
Чтобы остановить работу и перестать платить за созданные ресурсы:
-
Удалите все объекты из бакета Object Storage, созданного при установке приложения.
-
Удалите приложение Статический сайт в Object Storage в Cloud Apps:
- В консоли управления
выберите каталог, в котором установлено приложение. - В списке сервисов выберите Cloud Apps.
- Найдите в списке приложение Статический сайт в Object Storage.
- Нажмите на значок
рядом с приложением и выберите Удалить. - Подтвердите удаление и дождитесь завершения. Пустой бакет и остальные ресурсы этого экземпляра приложения удаляются вместе с ним.
- В консоли управления
-
Если вы создавали сервисный аккаунт при установке приложения, удалите его.
-
Удалите публичную DNS-зону.
-
Удалите сервисное подключение SourceCraft:
- Откройте главную страницу
SourceCraft. - На вкладке
Домой в секции Ваша мастерская перейдите в раздел Репозитории. - Выберите репозиторий, созданный из шаблона
cloudapp-hugo. - В разделе
Настройки репозитория перейдите в секцию Сервисные подключения и выберите нужное сервисное подключение. - В правом верхнем углу нажмите
Удалить и подтвердите удаление.
- Откройте главную страницу
-
Удалите
репозиторий, созданный из шаблона в SourceCraft.