Создание сайта с Hugo: установка, темы и развертывание
Кратко
Hugo — генератор статических сайтов: быстрое создание блогов, портфолио и документации с минимальным кодингом. В статье — установка на macOS и Windows, создание проекта, добавление темы, написание страниц на Markdown, локальная проверка и варианты размещения. В конце — чеклисты, рекомендации по безопасности и ответы на часто задаваемые вопросы.
Важно: статья сохраняет команды и пути в том виде, в каком их обычно используют в терминале. Следуйте инструкциям в разделе “Установка” вашей ОС.

Hugo — статический генератор сайтов, который превращает файлы контента (обычно в Markdown) и шаблоны тем в набор HTML/CSS/JS файлов. Коротко: пишете контент — Hugo собирает сайт. Этот подход ускоряет загрузку страниц, упрощает деплоймент и снижает риски, связанные с динамическими БД.
Основные цели статьи
- Быстро установить Hugo и проверить работу локально.
- Создать новый проект и подключить тему.
- Научиться писать страницы в Markdown и тестировать их.
- Понять варианты размещения (хостинг) и базовую безопасность.
Что такое Hugo — простыми словами
Hugo — это инструмент, который берет структуру файлов и шаблоны и генерирует готовые статические страницы. Термин: статический сайт — это сайт, который не обращается к базе данных при просмотре пользователем; весь HTML уже сгенерирован заранее.
Установка Hugo
Ниже — несколько распространенных способов установки. Выберите тот, который удобен для вашей ОС.
macOS (через Homebrew)
- Откройте Terminal (Терминал).
- Если у вас еще нет Homebrew, установите его (официальная команда):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"- Установите Hugo:
brew install hugo- Проверьте версию:
hugo versionПримечание: если нужна версия с расширёнными возможностями (extended), проверьте, что Homebrew устанавливает именно её по необходимости.
Windows (через Scoop)
- Откройте PowerShell.
- Если Scoop не установлен, установите политику выполнения и Scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')- Установите Hugo через Scoop:
scoop install hugo- Проверьте установку:
hugo versionАльтернативы для Windows: Chocolatey или скачивание с релизов GitHub — используйте официальный репозиторий Hugo.
Linux (пакетный менеджер или бинарный релиз)
- Для многих дистрибутивов можно использовать apt / dnf либо распаковку tar.gz из релизов Hugo.
- Пример установки через snap:
sudo snap install hugo --channel=extended/stable- Или скачать предкомпилированный архив с GitHub и распаковать в /usr/local/bin.
Создание проекта Hugo
- Откройте терминал и перейдите в папку, где хотите разместить сайт.
cd ~/Sites- Создайте новый сайт:
hugo new site new-hugo-website- Откройте папку проекта в файловом менеджере — вы увидите стандартную структуру Hugo: config.toml (или config.yaml), content/, layouts/, themes/ и т. п.
Краткая шпаргалка по структуре:
- content/ — Markdown-файлы ваших страниц и постов.
- layouts/ — шаблоны (если кастомизируете тему).
- themes/ — папки с темами.
- config.* — конфигурация сайта.
Добавление темы
Hugo поддерживает темы, которые содержат шаблоны, стили и компоненты. Самый простой способ — подключить тему как git-подмодуль или склонировать её в themes/.
- Выберите тему на https://themes.gohugo.io/ (каждая тема обычно имеет инструкцию по установке).
- Перейдите в корневую папку проекта и выполните одну из команд:
Подмодуль git:
cd new-hugo-website
git init
git submodule add https://github.com/EmielH/tale-hugo.git themes/taleИли просто клонируйте тему:
git clone https://github.com/EmielH/tale-hugo.git themes/tale- Подключите тему в конфиге (config.toml или config.yaml). В config.toml добавьте:
theme = "tale"- Откройте themes/ — должна появиться папка tale.
Совет: если вы обновляете тему из Git, используйте git submodule update –remote или подпроекты git.
Добавление страниц и постов (Markdown)
Hugo автоматически конвертирует файлы Markdown в HTML при сборке.
- Создайте файл в content/ например content/myFirstPost.md
- Вверху файла добавьте фронтматтер — метаданные:
---
author: "Your Name"
title: "My First Post"
date: "2022-05-17"
---- Добавляйте контент в Markdown:
This is my very first post on my Hugo website!
The Hugo theme being used for this site is called Tale.
It is very simple to install and configure.
# Subheading
This is some content.
# Another Subheading
This is more content.Hugo поддерживает разные форматы фронтматтера (TOML, YAML, JSON) — используйте тот, который предпочитаете.
Совет по организации: создавайте подпапки в content/ (например content/posts/) для удобства и автоматического формирования URL.
Локальный запуск и тестирование
Для быстрой проверки используйте встроенный сервер Hugo:
cd new-hugo-website
hugo serveПосле запуска в терминале появится адрес для просмотра, обычно http://localhost:1313/.
Откройте адрес в браузере — увидите главную страницу и превью постов. Клики на заголовки откроют соответствующие страницы.
Если не видите изменений после правок — проверьте, что вы запускаете hugo serve в корне проекта и что тема подключена.
Развёртывание (хостинг) — варианты и рекомендации
Статические сайты можно размещать на множестве платформ. Ниже — обзор популярных подходов и краткие инструкции.
Important: если вы используете приватные данные или пользовательские формы, рассмотрите необходимость серверной обработки или сторонних сервисов (например, Formspree, Netlify Forms).
GitHub Pages
- Подходит для личных проектов и простых сайтов. Можно разместить в ветке gh-pages или использовать GitHub Actions для сборки Hugo и публикации в gh-pages.
- Преимущества: бесплатный хостинг для публичных репозиториев, простая интеграция.
Краткий путь: настроить workflow, который собирает сайт (hugo) и пушит результат в gh-pages.
Netlify
- Очень удобный для Hugo: автоматическая сборка при пуше в репозиторий, бесплатный план, кастомный домен, HTTPS.
- Настройка: подключите репозиторий, укажите команду сборки “hugo” и папку для деплоя “public”.
Vercel
- Поддерживает статические генераторы, простой процесс развертывания через репозиторий.
Другие варианты
- GitLab Pages, Firebase Hosting, S3 + CloudFront (AWS) для высоконагруженных сайтов.
- В исходном материале упоминались Dropbox, Google Drive, OneDrive — это менее стандартные и обычно не рекомендованные способы для постоянного веб-хостинга, они могут работать для простых задач, но ограничены по настройке HTTPS, редиректам и кастомным доменам.
Мини-руководство: деплой на Netlify
- Создайте репозиторий и закоммитьте проект (не забывайте .gitignore для public/ если собираетесь пушить).
- Зарегистрируйтесь на Netlify и подключите ваш репозиторий.
- Укажите команду сборки: “hugo” и директорию для публикации: “public”.
- При пуше Netlify соберет сайт автоматически и предоставит URL.
Критерии приёмки
- Сайт собирается без ошибок командой
hugo. - При
hugo serveсайт доступен по адресу, указанному в терминале (обычно http://localhost:1313/). - Страницы из content/ отображаются корректно и соответствуют метаданным (title, date и т. д.).
- Тема применена (в конфиге theme = “имя_темы”).
Чеклист для запуска проекта (роль: разработчик)
- Установлен Hugo и проверена версия.
- [ ] Создан новый сайт (
hugo new site). - Выбрана и добавлена тема (themes/).
- Настроен config.toml (theme, baseURL при необходимости).
- Созданы первые Markdown-страницы в content/.
- [ ] Локально протестирован
hugo serve. - Настроен репозиторий и CI/CD (Netlify, GitHub Actions и т. п.).
Безопасность и рекомендации по жёсткой конфигурации
- Не размещайте секреты, ключи доступа или пароли в репозитории.
- Для форм связывайтесь с проверенными сервисами (Netlify Forms, Formspree) или настраивайте собственный сервер для обработки.
- Подключите HTTPS (большинство современных хостов делают это автоматически).
- Проверяйте сторонние темы на предмет вставок внешних скриптов перед использованием в продакшене.
Типичные ошибки и как их решать
- Ошибка: страница не отображается.
- Проверка: есть ли файл в content/? Правильно ли указан фронтматтер?
- Ошибка: тема не применяется.
- Проверка: в config.toml указано
theme = "ваша_тема"и папка themes/тема существует?
- Проверка: в config.toml указано
- Ошибка:
hugoне найден в командной строке.- Проверка: добавлен ли путь к бинарю в PATH, корректно ли прошла установка.
Модель принятия решений для хостинга (Mermaid)
flowchart TD
A[Нужен хостинг для статического сайта?] --> B{Требуется CI/CD?}
B -- Да --> C[Netlify или Vercel]
B -- Нет --> D{Публичный репозиторий?}
D -- Да --> E[GitHub Pages]
D -- Нет --> F[S3 + CloudFront или другой статический хост]
C --> G[Удобная автоматизация и HTTPS]
E --> G
F --> H[Больше контроля, сложнее настраивать]Краткая методология: от идеи до деплоя
- Идея и структура контента (создайте план разделов и постов).
- Создание проекта:
hugo new site. - Выбор и подключение темы.
- Написание контента в Markdown.
- Локальное тестирование:
hugo serve. - Настройка репозитория и CI/CD.
- Деплой и проверка на проде.
1‑строчная глоссарий
- Hugo: статический генератор сайтов.
- Frontmatter: метаданные в начале Markdown-файла (TOML/YAML/JSON).
- Theme: шаблон оформления и компонентов сайта.
- public/: результат сборки Hugo.
Часто задаваемые вопросы
Как обновить тему Hugo?
Обычно темы подключают через git submodule или клонирование. Для submodule используйте git submodule update --remote --merge или выполните git pull внутри папки темы, если она клонирована отдельным репозиторием.
Можно ли использовать Hugo для документации с версионностью?
Да. Hugo подходит для документации. Для версионности часто используют отдельные ветки или отдельные папки/сайты для каждой версии.
Как добавить кастомный домен и HTTPS?
На большинстве платформ (Netlify, Vercel, GitHub Pages) есть интерфейс для привязки домена и автоматического получения HTTPS (Let’s Encrypt). Провайдер выдаёт подробную инструкцию по конкретным шагам.
Ключевые выводы
- Hugo — отличный выбор для статических сайтов: быстрый и удобный в использовании.
- Темы ускоряют стартовую разработку и упрощают дизайн.
- Локальный запуск
hugo serveпозволяет быстро тестировать изменения. - Для продакшена рекомендуются платформы с автоматической сборкой (Netlify, Vercel, GitHub Pages).
Ресурсы и далее
- Официальный сайт тем: https://themes.gohugo.io/
- Документация Hugo: https://gohugo.io/
Похожие материалы
Команда ps в Linux — руководство и примеры
Подключение Alexa Voice Remote к Fire TV
Как отразить экран Android на ПК без рутирования
Как подготовить Mac к macOS Monterey
Сброс сетевых настроек на Mac — пошагово