Hugo
Hugo — это быстрый генератор статических сайтов (Static Site Generator), написанный на Go. Он превращает контент (Markdown) и шаблоны в готовые HTML-страницы без использования базы данных и серверной логики, что делает сайты очень быстрыми, безопасными и удобными для хостинга.
Практическая рекомендация, что выбрать YAML vs JSON
Hugo читает data‑файлы из каталога data/ в форматах YAML, JSON и TOML, после чего они доступны в шаблонах. Формат данных никак не влияет на конечный HTML: это просто разные способы сериализации ключ‑значение и массивов.
- Если планируешь в основном редактировать данные руками (каталоги тарифов, списки провайдеров, таблицы), бери YAML в data/ и YAML‑front matter в контенте (метаданные страницы).
- Если данные будут почти всегда генерироваться внешними скриптами или подтягиваться из API, можно хранить их как JSON, чтобы не добавлять лишний шаг конвертации.
Технически можно без проблем комбинировать: глобальные справочники в YAML, «сырые» выгрузки из API в JSON — Hugo спокойно обработает оба варианта.
Установка Hugo в Linux
У меня сейчас под рукой Ubuntu 24.04.3 LTS, поэтому протестирую инструкцию на этой ОС. Проще установить Hugo версии из репозитория Ubuntu.
sudo apt update sudo apt install hugo $ hugo version hugo v0.123.7+extended linux/amd64 BuildDate=2025-07-18T03:41:49Z VendorInfo=ubuntu:0.123.7-1ubuntu0.3
Если нужна самая свежая версия, можно скачать .deb с GitHub и поставить через dpkg, но для старта достаточно пакета из дистрибутива.
Не заработала нужная мне тема с это версией hugo - обновляем до последней
Скачиваем .deb Hugo Extended нужной версии и устанавливаем через dpkg. Версии hugo смотрим здесь https://github.com/gohugoio/hugo/releases В консоли Linux вводим команды, в переменной HUGO_VER задаем нужную версию hugo.
cd /tmp HUGO_VER=0.152.0 # или другая актуальная wget https://github.com/gohugoio/hugo/releases/download/v${HUGO_VER}/hugo_extended_${HUGO_VER}_Linux-amd64.tar.gz tar -xzf hugo_extended_${HUGO_VER}_Linux-amd64.tar.gz # В архиве один бинарник hugo sudo mv hugo /usr/local/bin/hugo
Установленный бинарник окажется в /usr/local/bin/hugo, я для простоты использования затер системный бинарник установленный из репозитория.
cp /usr/local/bin/hugo /usr/bin/hugo
Создание первого сайта
Перейди в каталог, где хочешь держать проект (мой проект называется vs_engine). Эта команда создаст структуру каталогов (content/, layouts/, static/, config и т.д.).
hugo new site vs_engine
cd vs_engine
Инициализируй Git (желательно сразу), что упростит дальнейшую работу, деплой и откат изменений.
git init git add . git commit -m "init"
Добавление темы
- Выбери тему на https://themes.gohugo.io для примера возьмем тему Ananke Gohugo Theme.
- Подключи её как submodule, то есть как внешний репозиторий и зафиксировать его как зависимость. Будет создана папка themes/doks, но это не обычная папка, а вложенный Git-репозиторий (там свой .git и своя история). Также в корне проекта появится файл .gitmodules, который говорит Git где лежит подмодуль и из какого репозитория он берётся.
cd /home/darkfire/vs_engine git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
- В корне проекта в hugo.toml (или hugo.yaml) пропиши тему, которую Hugo будет использовать при сборке:
echo "theme = 'ananke'" >> hugo.toml
Создание первой страницы и запуск
Создай первый пост:
hugo new posts/first-post.md
Hugo создаст файл с front matter и draft: true; отредактируй его и поставь draft: false, чтобы пост был виден.
Запусти dev‑сервер. По умолчанию сайт откроется на http://localhost:1313, пересборка идет автоматически при изменении файлов. Ключ D позволяет показывать также черновики ваших постов.
hugo server -D
Для продакшен‑сборки запусти просто hugo. Готовый статический сайт окажется в каталоге public/, его уже можно заливать на VPS, Nginx, GitHub Pages и т.п.
Содержимое public/ можно спокойно удалять, это просто результат сборки, а не исходники. Обычно public/ не коммитят в Git (добавляют в .gitignore), а используют только как артефакт для деплоя.
Статические файлы
В Hugo все статические файлы должны лежать в папке static.
FAQ 1: Как работает обычный пост (hugo new posts/first.md)
Когда ты создаешь обычный пост, ты пишешь текст внутри файла (после —). У этого поста нет параметра layout.
Hugo действует так:
- Видит пост в папке posts.
- Ищет специальный шаблон. Не находит.
- Берет стандартный шаблон темы (themes/ananke/layouts/_default/single.html).
- Этот шаблон делает простую вещь: берет текст твоего поста и выводит его на экран.
Если же мы генерируем файлы, то там не будет текста. Если мы применим к ним стандартный шаблон (как для обычных постов), то Hugo просто выведет Заголовок и… пустую страницу. Именно поэтому в Python-скрипте мы добавили строчку: layout: "compare". Эта строчка говорит Hugo: "Не используй стандартный шаблон! Ищи специальный файл с именем compare.html".
Куда положить этот compare.html?
Hugo ищет шаблоны в строгом порядке. Если твой контент лежит в content/posts, то Hugo ищет шаблон в такой последовательности:
- layouts/posts/compare.html
- layouts/_default/compare.html (Запасной вариант).
Обычные посты (без layout: "compare") будут по-прежнему открываться через стандартный шаблон темы.
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга