Гид по технологиям

Создание сайта с Hugo: установка, темы и развертывание

7 min read Static Site Обновлено 30 Dec 2025
Hugo: установка и создание статического сайта
Hugo: установка и создание статического сайта

Кратко

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

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

HTML-код сайта в редакторе

Hugo — статический генератор сайтов, который превращает файлы контента (обычно в Markdown) и шаблоны тем в набор HTML/CSS/JS файлов. Коротко: пишете контент — Hugo собирает сайт. Этот подход ускоряет загрузку страниц, упрощает деплоймент и снижает риски, связанные с динамическими БД.

Основные цели статьи

  • Быстро установить Hugo и проверить работу локально.
  • Создать новый проект и подключить тему.
  • Научиться писать страницы в Markdown и тестировать их.
  • Понять варианты размещения (хостинг) и базовую безопасность.

Что такое Hugo — простыми словами

Hugo — это инструмент, который берет структуру файлов и шаблоны и генерирует готовые статические страницы. Термин: статический сайт — это сайт, который не обращается к базе данных при просмотре пользователем; весь HTML уже сгенерирован заранее.


Установка Hugo

Ниже — несколько распространенных способов установки. Выберите тот, который удобен для вашей ОС.

macOS (через Homebrew)

  1. Откройте Terminal (Терминал).
  2. Если у вас еще нет Homebrew, установите его (официальная команда):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Установите Hugo:
brew install hugo
  1. Проверьте версию:
hugo version

Примечание: если нужна версия с расширёнными возможностями (extended), проверьте, что Homebrew устанавливает именно её по необходимости.

Windows (через Scoop)

  1. Откройте PowerShell.
  2. Если Scoop не установлен, установите политику выполнения и Scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
  1. Установите Hugo через Scoop:
scoop install hugo
  1. Проверьте установку:
hugo version

Альтернативы для Windows: Chocolatey или скачивание с релизов GitHub — используйте официальный репозиторий Hugo.

Linux (пакетный менеджер или бинарный релиз)

  1. Для многих дистрибутивов можно использовать apt / dnf либо распаковку tar.gz из релизов Hugo.
  2. Пример установки через snap:
sudo snap install hugo --channel=extended/stable
  1. Или скачать предкомпилированный архив с GitHub и распаковать в /usr/local/bin.

Создание проекта Hugo

  1. Откройте терминал и перейдите в папку, где хотите разместить сайт.
cd ~/Sites
  1. Создайте новый сайт:
hugo new site new-hugo-website
  1. Откройте папку проекта в файловом менеджере — вы увидите стандартную структуру Hugo: config.toml (или config.yaml), content/, layouts/, themes/ и т. п.

Проводник: структура файлов Hugo-проекта

Краткая шпаргалка по структуре:

  • content/ — Markdown-файлы ваших страниц и постов.
  • layouts/ — шаблоны (если кастомизируете тему).
  • themes/ — папки с темами.
  • config.* — конфигурация сайта.

Добавление темы

Hugo поддерживает темы, которые содержат шаблоны, стили и компоненты. Самый простой способ — подключить тему как git-подмодуль или склонировать её в themes/.

  1. Выберите тему на https://themes.gohugo.io/ (каждая тема обычно имеет инструкцию по установке).

Веб-сайт тем Hugo: предпросмотр темы Tale

  1. Перейдите в корневую папку проекта и выполните одну из команд:

Подмодуль 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
  1. Подключите тему в конфиге (config.toml или config.yaml). В config.toml добавьте:
theme = "tale"
  1. Откройте themes/ — должна появиться папка tale.

Проводник Windows: папка темы Tale в themes

Совет: если вы обновляете тему из Git, используйте git submodule update –remote или подпроекты git.


Добавление страниц и постов (Markdown)

Hugo автоматически конвертирует файлы Markdown в HTML при сборке.

  1. Создайте файл в content/ например content/myFirstPost.md

Создание файла myFirstPost.md в папке content

  1. Вверху файла добавьте фронтматтер — метаданные:
---
author: "Your Name"
title: "My First Post"
date: "2022-05-17"
---
  1. Добавляйте контент в 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 с локальным адресом

Откройте адрес в браузере — увидите главную страницу и превью постов. Клики на заголовки откроют соответствующие страницы.

Запущенный сайт Hugo: пример содержимого из Markdown

Пример записи Hugo: рецепт на странице

Если не видите изменений после правок — проверьте, что вы запускаете 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

  1. Создайте репозиторий и закоммитьте проект (не забывайте .gitignore для public/ если собираетесь пушить).
  2. Зарегистрируйтесь на Netlify и подключите ваш репозиторий.
  3. Укажите команду сборки: “hugo” и директорию для публикации: “public”.
  4. При пуше 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/тема существует?
  • Ошибка: 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[Больше контроля, сложнее настраивать]

Краткая методология: от идеи до деплоя

  1. Идея и структура контента (создайте план разделов и постов).
  2. Создание проекта: hugo new site.
  3. Выбор и подключение темы.
  4. Написание контента в Markdown.
  5. Локальное тестирование: hugo serve.
  6. Настройка репозитория и CI/CD.
  7. Деплой и проверка на проде.

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).

Ресурсы и далее

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Команда ps в Linux — руководство и примеры
Linux

Команда ps в Linux — руководство и примеры

Подключение Alexa Voice Remote к Fire TV
Гайды

Подключение Alexa Voice Remote к Fire TV

Как отразить экран Android на ПК без рутирования
Технологии

Как отразить экран Android на ПК без рутирования

Как подготовить Mac к macOS Monterey
macOS

Как подготовить Mac к macOS Monterey

Сброс сетевых настроек на Mac — пошагово
Руководства

Сброс сетевых настроек на Mac — пошагово

Безопасный режим PS4 и PS5 — инструкция и советы
Гайды

Безопасный режим PS4 и PS5 — инструкция и советы