← Статьи

Как устроен этот сайт

· ~2 мин чтения

Содержание

Этот сайт я собрал на Hugo — это генератор статических сайтов. Никакой базы данных и никакой CMS на сервере: статьи лежат у меня в обычных Markdown-файлах, а на хостинг уезжают уже готовые HTML-страницы.

Почему статика

Я не первый год обслуживаю серверы и хорошо знаю, сколько возни бывает с обычным сайтом на CMS. Поэтому выбор был простой:

  • Быстро. Сервер просто отдаёт готовые файлы, ничего не собирается на лету.
  • Спокойно с безопасностью. На хостинге нечего ломать: нет админки, PHP-скриптов и базы.
  • Удобно хранить. Весь сайт — папка с текстовыми файлами, и она целиком лежит в Git. Любую правку можно посмотреть или откатить.

Как выглядит статья

Каждая статья — отдельный файл в content/posts/. В начале у него небольшой заголовок с описанием:

---
title: "Название статьи"
date: 2026-10-19
description: "Короткое описание для списка и поисковиков"
tags: [linux, debian]
toc: true
---

Дальше идёт обычный Markdown. Код подсвечивается сам:

#!/bin/bash
# Резервная копия базы PostgreSQL
pg_dump -U postgres -Fc mybase > /backup/mybase_$(date +%F).dump

Совет

Для врезок вроде этой у меня есть шорткод note: варианты info, tip, warn и danger.

Внимание

Перед публикацией я всегда проверяю, что в статье нет паролей, внутренних IP-адресов и имён серверов.

Как я публикую

  1. Пишу статью — в редакторе или в локальной админке, которая запускается только у меня на компьютере.
  2. Смотрю, как она выглядит, через hugo server -D на http://localhost:1313.
  3. Делаю git push. Дальше всё происходит без меня: GitLab CI собирает сайт и сам выкладывает его на хостинг. Через минуту статья уже здесь.

Обсуждение

Комментарии работают через GitHub: для ответа нужен аккаунт GitHub. Вопрос без регистрации — напишите мне напрямую.