diff --git a/content/posts/20141022 265-solnechnykh-dnei-v-godu-a-v-ostalnye/index.md b/content/posts/20141022 265-solnechnykh-dnei-v-godu-a-v-ostalnye/index.md
index f78691e..913b13b 100644
--- a/content/posts/20141022 265-solnechnykh-dnei-v-godu-a-v-ostalnye/index.md
+++ b/content/posts/20141022 265-solnechnykh-dnei-v-godu-a-v-ostalnye/index.md
@@ -1,8 +1,8 @@
---
title: '265 солнечных дней в году, а в остальные...'
media_order: led.jpg
-date: '22:00 22-10-2014'
-publish_date: '22:00 22-10-2014'
+date: '2014-10-22T22:00:00+03:00'
+publish_date: '2014-10-22T22:00:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20141126 captive-portal/index.md b/content/posts/20141126 captive-portal/index.md
index adea557..ee3a866 100644
--- a/content/posts/20141126 captive-portal/index.md
+++ b/content/posts/20141126 captive-portal/index.md
@@ -1,7 +1,7 @@
---
title: 'Captive portal'
-date: '22:22 26-11-2014'
-publish_date: '22:22 26-11-2014'
+date: '2014-11-26T22:22:00+03:00'
+publish_date: '2014-11-26T22:22:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20141218 flag/index.md b/content/posts/20141218 flag/index.md
index d6080af..1d83a2c 100644
--- a/content/posts/20141218 flag/index.md
+++ b/content/posts/20141218 flag/index.md
@@ -1,8 +1,8 @@
---
title: Флаг
media_order: 'IMG_20141122_090828-PANO.jpg,Year in Photos 2014.m4v'
-date: '22:04 18-12-2014'
-publish_date: '22:04 18-12-2014'
+date: '2014-12-18T22:04:00+03:00'
+publish_date: '2014-12-18T22:04:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20151215 takhikardiya/index.ru.md b/content/posts/20151215 takhikardiya/index.ru.md
index 6e01f45..c02dc41 100644
--- a/content/posts/20151215 takhikardiya/index.ru.md
+++ b/content/posts/20151215 takhikardiya/index.ru.md
@@ -1,7 +1,7 @@
---
title: Тахикардия
-date: '22:08 15-12-2015'
-publish_date: '22:08 15-12-2015'
+date: '2015-12-15T22:08:00+03:00'
+publish_date: '2015-12-15T22:08:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20160422 parad-v-krasnodare/index.md b/content/posts/20160422 parad-v-krasnodare/index.md
index 976d754..d27953b 100644
--- a/content/posts/20160422 parad-v-krasnodare/index.md
+++ b/content/posts/20160422 parad-v-krasnodare/index.md
@@ -1,8 +1,8 @@
---
title: 'Парад в Краснодаре'
media_order: image185613297.jpg
-date: '22:13 22-04-2016'
-publish_date: '22:13 22-04-2016'
+date: '2016-04-22T22:13:00+03:00'
+publish_date: '2016-04-22T22:13:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20170122 otvet-stalingrada/index.md b/content/posts/20170122 otvet-stalingrada/index.md
index 10adef7..4382d4a 100644
--- a/content/posts/20170122 otvet-stalingrada/index.md
+++ b/content/posts/20170122 otvet-stalingrada/index.md
@@ -1,8 +1,8 @@
---
title: 'Ответ Сталинграда'
media_order: deti.jpg
-date: '22:19 22-01-2017'
-publish_date: '22:19 22-01-2017'
+date: '2017-01-22T22:19:00+03:00'
+publish_date: '2017-01-22T22:19:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20190323 yandeks-brauzer-dlya-linux/index.md b/content/posts/20190323 yandeks-brauzer-dlya-linux/index.md
index 1f8bead..0529e68 100644
--- a/content/posts/20190323 yandeks-brauzer-dlya-linux/index.md
+++ b/content/posts/20190323 yandeks-brauzer-dlya-linux/index.md
@@ -1,7 +1,7 @@
---
title: 'Яндекс.Браузер для Linux'
-date: '22:02 31-10-2014'
-publish_date: '22:02 23-03-2019'
+date: '2014-10-31T22:02:00+03:00'
+publish_date: '2019-03-23T22:02:00+03:00'
taxonomy:
category:
- Blog
diff --git a/content/posts/20190404 pereezd-s-google-plus/item.ru.md b/content/posts/20190404 pereezd-s-google-plus/item.ru.md
index f84df69..845f99f 100644
--- a/content/posts/20190404 pereezd-s-google-plus/item.ru.md
+++ b/content/posts/20190404 pereezd-s-google-plus/item.ru.md
@@ -1,8 +1,7 @@
---
title: 'Переезд с Google+'
media_order: img10.png
-published: true
-date: '19:29 04.04.2019'
+date: '2019-04-04T19:29:00+03:00'
cover:
image: "hero.svg"
---
diff --git a/content/posts/20200503 atom-plus-markdown/index.md b/content/posts/20200503 atom-plus-markdown/index.md
index 583996b..4d34bdb 100644
--- a/content/posts/20200503 atom-plus-markdown/index.md
+++ b/content/posts/20200503 atom-plus-markdown/index.md
@@ -29,7 +29,7 @@ Github. Что позволяет собрать функионально раб
системы.
1. Скачиваем пакет с сайта [Atom][75f0e641].
-
+
2. Устанавливаем зависимости:
`$ sudo aptitude install git, libgconf-2-4, libgtk-3-0, libgcrypt20, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils, libx11-xcb1, libxss1, libasound2, libxkbfile1, libcurl4, policykit-1, lsb-release
@@ -47,14 +47,14 @@ $ git config --global user.email kpa39l@yandex.ru
`$ sudo dpkg -i ~/Загрузки/atom-amd64.deb`
После установки ярлык для запуска добавиться в раздел "Разработка" системного меню.
-
+
Или можно его запустить используя команду в консоли от текущего пользователя:
`$ atom`
3. Для хранения файлов можно использовать репозиторий GitHub. Ведь именно для этого как раз и выбирался редактор Atom,как имеющий встроенную
интеграцию c GitHub. Для этого нужно получить ссылку для клонирования репозитория
-
+
`https://github.com/kpa39l/gelonet.git`
@@ -74,7 +74,7 @@ $ git config --global user.email kpa39l@yandex.ru
`$ apm install markdown-scroll-sync tool-bar markdown-writer tool-bar-markdown-writer`
В итоге при работе с Markdown файлами в интерфейсе редактора появится вот такая панель:
-
+
Часто используемые инструменты Markdown-разметки отображаются в верхней части окна и при
необходимости можно их использовать.
diff --git a/content/posts/20250612 obsidian-web-clipper/index.md.md b/content/posts/20250612 obsidian-web-clipper/index.md.md
index f117dcc..28ecd20 100644
--- a/content/posts/20250612 obsidian-web-clipper/index.md.md
+++ b/content/posts/20250612 obsidian-web-clipper/index.md.md
@@ -19,17 +19,16 @@ cover:
Есть в таком способе сохранения маленькая проблема. Ссылки на картинки остаются внешними и если со старницей что-то случиться, то мы опять потеряем информацию. Благо и тут сообщество помогло и для Obsidian создали плагин ["Local Images Plus"](obsidian://show-plugin?id=obsidian-local-images-plus)
-
Его задача как раз делать вставляемые в редактор ссылки на внешние объекты делать локальными. По-умолчанию как раз включен автоматический режим (можно поменять в настройках плагина) который сразу сохраняет ресурсы. Но так же через палитру команд можно запустить процесс сохранения как для текущей редактируемой заметки, так и для всех заметок в хранилище.
-[Open: Pasted image 20250612205949.png](gelonet-ru/content/posts/obsidian-web-clipper/0f5c78d8ab30f1f6242a0e87dcd102d2_MD5.jpeg)
-
+[Open: Pasted image 20250612205949.png](0f5c78d8ab30f1f6242a0e87dcd102d2_MD5.jpeg)
+
При автоматической замене вставляемый файл переименовывается и ссылка на него замещается новой. Происходит это не сразу а секунд через 10-15.
-[Open: Pasted image 20250612210122.png](gelonet-ru/content/posts/obsidian-web-clipper/50ece689284db452903efbe8b80010f8_MD5.jpeg)
-
+[Open: Pasted image 20250612210122.png](50ece689284db452903efbe8b80010f8_MD5.jpeg)
+
Вот теперь моя душенька довольна. А идею создания плагина синхронизации закладок между браузером и obsidian я даже записывать не буду.
\ No newline at end of file
diff --git a/content/posts/20260131 test-post/index.md b/content/posts/20260131 test-post/index.md
index 788ef54..ccadb53 100644
--- a/content/posts/20260131 test-post/index.md
+++ b/content/posts/20260131 test-post/index.md
@@ -22,7 +22,7 @@ def hello_world():
### Изображения
-
+
## Заключение
diff --git a/content/posts/20260418 hugo-slugs-archetypes-bundles/index.md b/content/posts/20260418 hugo-slugs-archetypes-bundles/index.md
index b8ab642..adb1661 100644
--- a/content/posts/20260418 hugo-slugs-archetypes-bundles/index.md
+++ b/content/posts/20260418 hugo-slugs-archetypes-bundles/index.md
@@ -80,7 +80,7 @@ content/
Плюсы:
- Все ресурсы поста в одном месте
- - Можно ссылаться на изображения относительно: 
+ - Можно ссылаться на изображения относительно: 
- Не нужно думать об уникальности имён файлов
Минусы:
diff --git a/content/posts/20260501 - cheburnet/hero.svg b/content/posts/20260501 - cheburnet/hero.svg
deleted file mode 100644
index 38d2bb1..0000000
--- a/content/posts/20260501 - cheburnet/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
\ No newline at end of file
diff --git a/content/posts/20260501 - cheburnet/index.md b/content/posts/20260501 - cheburnet/index.md
deleted file mode 100644
index 52c7246..0000000
--- a/content/posts/20260501 - cheburnet/index.md
+++ /dev/null
@@ -1,190 +0,0 @@
----
-date: '2026-05-08T15:37:42+03:00'
-lastmod: '2026-05-08T15:37:42+03:00'
-draft: false
-title: 'Почему родился Чебурнет?'
-slug: 'chebernet'
-description: 'Моя попытка разобрать тезис об ограничениях интернета, как инструмента снижения доступа к знаниям для широких народных масс, через призму исторического материализма.'
-
-categories:
-- 'Политика'
-
-tags:
- - 'марксизм'
- - 'анализ'
- - 'коммунизм'
- - 'нод'
-
-keywords:
- - 'марксизм'
- - 'анализ'
- - 'коммунизм'
- - 'нод'
-
-cover:
- image: "hero.svg"
- alt: "Hero картинка в SVG"
- relative: true
----
-
-
-### 1. Базис и надстройка: техническая инфраструктура как инструмент классового господства
-
-С марксистско-ленинской точки зрения, интернет — это часть производительных сил. Контроль над ним есть контроль над средством производства информации. Постановление №1667 от марта 2026 года, дающее Роскомнадзору, ФСБ и Минцифры право централизованно перенаправлять трафик и изолировать Рунет в реальном времени [1] [7], формализует переход от «защиты от внешних угроз» к **системному управлению идеологическим воспроизводством**.
-
-Технические средства противодействия угрозам (ТСПУ) с функцией DPI (Deep Packet Inspection) — это не просто «фильтры». Это материальная база для селективного доступа к знаниям, коммуникациям и рынкам. Когда доступ к зарубежным ресурсам деградирует «незаметно» (таймауты, обрывы, замедление), это создаёт эффект естественного отбора: кто может и хочет — ищет обходные пути, кто не может — принимает новую норму.
-
-### 2. «Метод лягушки» как диалектика постепенной нормализации
-
-Для себя я процесс "регулирования" интернета чётко ассоциирую с правильным способом варки легушек - нужно медленно поднимать температуру (вводить ограничения), а не кидать лягушек в кипяток (резко всё блокировать). В диалектическом материализме количественные изменения переходят в качественные. Последовательное введение ограничений (блокировка платформ, ограничение VPN, требование русского языка в интерфейсах, хранение метаданных 3 года) — это не хаотичные шаги, а **системная стратегия формирования новой субъективности**.
-
-Риторика «защиты населения» выполняет функцию идеологического прикрытия. В ленинской терминологии это — **буржуазный патернализм**: государство позиционирует себя как «защитника» от «вредного» внешнего влияния, маскируя классовый интерес — сохранение монополии на интерпретацию реальности и предотвращение стихийной самоорганизации вне контролируемых каналов.
-
-### 3. Кто выигрывает? Классовый анализ последствий
-
-| Группа | Интересы | Эффект изоляции |
-|--------|----------|-----------------|
-| Госаппарат и силовые структуры | Контроль, предсказуемость, подавление инакомыслия | Усиление инструментов мониторинга и точечного отключения [[7]] |
-| Крупный национальный капитал (ИТ, медиа, финтех) | Защищённый рынок, лояльная аудитория | Конкурентное преимущество перед зарубежными сервисами, но риски технологического отставания |
-| Малый бизнес и фрилансеры | Доступ к глобальным инструментам и рынкам | Рост издержек на обход ограничений, потеря клиентов и компетенций |
-| Рабочий класс и интеллигенция | Доступ к знаниям, коммуникациям, культурному обмену | Цифровое неравенство: те, кто владеет техническими навыками, сохраняют доступ; остальные — маргинализируются |
-
-### 4. Противоречия системы (диалектический взгляд)
-
-Марксизм учит видеть внутренние противоречия как двигатель развития. В политике «суверенного интернета» их несколько:
-
-- **Технологическая зависимость**: ТСПУ, системы фильтрации, оборудование для ЦМУ ССОП — часто импортного происхождения или на импортных компонентах. Изоляция усиливает уязвимость, а не снижает её.
-- **Экономические издержки**: Ограничение доступа к глобальным сервисам снижает конкурентоспособность российской экономики, тормозит инновации, увеличивает стоимость цифровизации.
-- **Социальное напряжение**: Постепенное сужение доступа к информации порождает не пассивность, а поиск альтернатив (зеркала, P2P-сети, офлайн-обмен). Это создаёт новые формы неформальной солидарности и знаний.
-- **Идеологический кризис**: Чем жёстче контроль, тем выше ценность «запретного плода». Риторика защиты всё меньше убеждает, когда пользователи видят, что блокируются не только «экстремистские», но и образовательные, научные, культурные ресурсы.
-
-### 5. Вывод: не изоляция, а перераспределение доступа
-
-С марксистско-ленинской позиции, речь идёт не о «закрытии интернета», а о **перераспределении права на доступ к производительным силам информационного общества**. Государство не устраняет интернет — оно превращает его из всеобщего блага в привилегию, распределяемую по лояльности и полезности для воспроизводства существующих производственных отношений.
-
-«Чебурнет» — это не технический проект, а **политическая технология управления сознанием через управление инфраструктурой**. И как любая такая технология, она несёт в себе семена собственного отрицания: чем сильнее давление, тем активнее ищутся пути обхода, тем острее становится противоречие между потребностями развития производительных сил и устаревающими производственными отношениями.
-
-### 5. Формы классовой борьбы в цифровой сфере
-
-С марксистской позиции, цифровое пространство — это арена классовой борьбы. Выделяются три уровня противостояния:
-
-**А) Борьба за средства производства информации**
-- ТСПУ и ЦМУ ССОП — это материализованная воля господствующего класса контролировать производительные силы [2] [3].
-- Ответ пролетариата: децентрализованные сети (Tor, Ceno, P2P), где средство производства — вычислительные ресурсы самих пользователей. Это форма **кооперации вне государственного контроля**.
-
-**Б) Борьба за рабочее время и отчуждение**
-- Блокировка инструментов (GitHub, Stack Overflow, зарубежные SaaS) увеличивает время на выполнение задач. Это скрытая форма **увеличения необходимого рабочего времени** за счёт снижения производительности.
-- Рост спроса на обходные пути создаёт новый сегмент «теневого цифрового труда»: настройка прокси, поддержка зеркал, обучение других. Это стихийная самоорганизация, но пока не переросшая в классовое сознание.
-
-**В) Идеологическая борьба: самоцензура как форма отчуждения**
-- Когда пользователь начинает фильтровать свои сообщения «на всякий случай», происходит **интернализация контроля**. Это высшая форма отчуждения: работник сам воспроизводит условия своего подчинения.
-- Однако диалектика: чем шире блокировки, тем очевиднее их политический характер. Растёт понимание, что проблема не в «экстремизме», а в контроле.
-
-### 6. Исторические параллели: СССР, Китай, Иран
-
-**СССР: цензура как административный ресурс**
-- Главлит контролировал содержание, но не инфраструктуру. Это создавало «лазейки»: самиздат, зарубежные радиостанции, личные контакты.
-- Урок: контроль над содержанием без контроля над каналами передачи неэффективен в долгосрочной перспективе. Современная Россия пытается контролировать и то, и другое, но технические ограничения (децентрализация ТСПУ) создают аналогичные уязвимости [27].
-
-**Китай: Великий файрвол как модель зрелого контроля**
-- Ключевое отличие: Китай строил контроль 20+ лет, параллельно развивая полноценные внутренние аналоги (WeChat, Baidu, Douyin) [27].
-- Россия копирует технические решения, но не создаёт привлекательных альтернатив. Результат: высокая проницаемость барьера (36–41% используют VPN против 10–15% в Китае) [27].
-- Марксистский вывод: технологический контроль без экономического базиса (конкурентных внутренних сервисов) обречён на постоянное напряжение и высокие издержки.
-
-**Иран: изоляция как кризисная модель**
-- Иранский опыт показывает: полная изоляция возможна, но цена — технологическая стагнация, утечка мозгов, рост социального напряжения.
-- Россия движется в этом направлении, но с поправкой на размер экономики и интеграцию в глобальные цепочки. Это создаёт дополнительное противоречие: бизнес требует доступа, государство — контроля.
-
-### 7. Перспективы: диалектика развития
-
-**Количественные изменения**:
-- Рост числа блокировок (417 тыс. ресурсов в РФ против ~300 тыс. в Китае) [33].
-- Увеличение бюджета на контроль ($780 млн на 2025–2027) [27].
-- Расширение полномочий ФСБ и Роскомнадзора [2] [8].
-
-**Качественный скачок** произойдёт, когда:
-1. Техническая инфраструктура контроля станет достаточно точной, чтобы минимизировать «побочный ущерб» (как в Китае).
-2. Внутренние сервисы достигнут паритета с зарубежными по качеству (маловероятно в среднесрочной перспективе).
-3. Общественное сознание адаптируется к новой норме (пока сопротивление растёт).
-
-**Вывод**: политика «суверенного интернета» — это попытка решить политические задачи техническими средствами. Но диалектика материализма учит: производительные силы (интернет как глобальная сеть) вступают в конфликт с производственными отношениями (национальный контроль). Это противоречие будет обостряться, создавая условия для новых форм социальной практики — от стихийного обхода блокировок до осознанной борьбы за цифровые права.
-
-Дальше приложил анализ который мне помогли состявить БЯМ:
-### Классовая структура российского ИТ-сектора в условиях изоляции
-
-#### 1. Материальная база: кто владеет средствами фильтрации
-
-| Класс | Материальный интерес | Положение в системе |
-|-------|---------------------|-------------------|
-| **Государственная буржуазия** (подрядчики ТСПУ, Ростелеком, СИТРОНИКС, структуры ФСБ/РКН) | Бюджеты на «защиту»: 2,27 млрд ₽ на модернизацию ТСПУ в 2026 [1], рост госзакупок VPN на 73% до 17,3 млрд ₽ [19] | Владеют инфраструктурой контроля, извлекают ренту из обязательной установки оборудования у операторов |
-| **Национальный цифровой капитал** (владельцы «импортозамещённых» платформ) | Защищённый рынок без конкуренции, лояльная аудитория | Выигрывают от блокировок зарубежных сервисов, но зависят от государственных контрактов и регуляторных послаблений |
-| **Мелкая буржуазия** (фрилансеры, малые студии, инди-разработчики) | Доступ к глобальным инструментам (GitHub, Figma, Stripe), стабильный доход | Проигрывают: рост издержек на обход блокировок, потеря зарубежных заказчиков, вынужденная миграция или уход в тень |
-| **ИТ-пролетариат** (наёмные разработчики, сисадмины, техподдержка) | Стабильная зарплата, профессиональное развитие | Зарплаты стагнируют: медиана 183 тыс. ₽, рост ниже инфляции [20] [26]. Усиление эксплуатации: больше задач на поддержку обходных решений |
-| **Цифровой прекариат** (вытесненные из формального сектора) | Выживание через неформальные практики | Маргинализация: работа через зеркала, крипто-оплата, риск блокировок и преследований |
-
-#### 2. Диалектика рынка обхода: как сопротивление становится товаром
-
-**А) Коммодификация доступа**
-- VPN-приложения загружены 9,2 млн раз в марте 2026 — в 14 раз больше, чем год назад [15].
-- Но надёжные сервисы становятся платными, требующими криптовалюты или зарубежных карт.
-- **Вывод**: право на доступ к информации превращается в привилегию, распределяемую по платежеспособности.
-
-**Б) Классовая дифференциация в методах обхода**
-
-| Метод | Кто использует | Материальные требования | Политический потенциал |
-|-------|---------------|------------------------|----------------------|
-| Коммерческие VPN (Proton, Mullvad) | Мелкая буржуазия, квалифицированный пролетариат | 5–15$/мес, зарубежная карта | Низкий: централизованные сервисы уязвимы для блокировок и сбора метаданных |
-| Self-hosted (VPS + VLESS/WireGuard) | ИТ-пролетариат с техническими навыками | Аренда зарубежного VPS, время на настройку | Средний: автономия, но индивидуализированное решение |
-| Децентрализованные сети (Tor, Ceno, IPFS) | Активисты, техническая интеллигенция | Вычислительные ресурсы, знания | Высокий: воспроизводство средств коммуникации вне контроля |
-| Офлайн-обмен (зеркала на флешках, локальные репозитории) | Прекариат, регионы с плохим интернетом | Физические носители, локальные сети | Потенциально высокий: создание параллельной инфраструктуры |
-
-**В) Противоречие**: каждый технический ответ государства (блокировка протокола VLESS [19]) порождает новую адаптацию, но адаптация часто остаётся индивидуальной и не перерастает в коллективную практику. Это воспроизводит атомизацию, а не солидарность.
-
-#### 3. Технические методы с марксистской точки зрения
-
-**ТСПУ как овеществлённая классовая воля**
-- Системы глубокой инспекции трафика (DPI) — это не нейтральные инструменты, а материализованная функция контроля над производительными силами.
-- Их установка у операторов связи — форма **принудительного отчуждения**: провайдер вынужден содержать оборудование, которое работает против интересов его клиентов.
-
-**Обход как присвоение средств производства**
-- Когда пользователь настраивает собственный прокси, он фактически **присваивает средство производства коммуникации**.
-- Но если это делается в одиночку, результат — временное облегчение, а не изменение отношений собственности.
-
-**Коллективное присвоение как путь**
-- Марксистский подход: технические решения должны быть направлены на **обобществление инфраструктуры**.
-- Примеры: кооперативные хостинги, распределённые репозитории кода, локальные зеркала образовательных ресурсов.
-- Ключевое условие: организация должна быть не технической, а социальной — через доверие, взаимопомощь, разделение труда.
-
-#### 4. Вывод: изоляция как ускоритель классового расслоения
-
-Политика «суверенного интернета» не устраняет неравенство — она **перекодирует его в цифровой форме**:
-- Те, кто владеет ресурсами (деньги, знания, доступ к зарубежной инфраструктуре), сохраняют мобильность.
-- Те, кто зависит от наёмного труда и государственных сервисов, оказываются в ловушке контролируемого сегмента.
-
-Диалектический материаллизм подсказывает: противоречие между глобальным характером производительных сил (интернет) и национально-ограниченными производственными отношениями (контроль) будет обостряться. Вопрос не в том, *можно ли* технически обойти блокировку, а в том, *кто и на каких условиях* получает право на доступ к знаниям и коммуникациям.
-
-
-Источники:
-[1]: https://abit.ee/ru/kiberbezopasnost/sovereign-internet-runet-roskomnadzor-internet-isolation-censorship-russia-internet-law-blocking-ru "Суверенный интернет в России: с 1 марта 2026 года заработал"
-[2]: https://pnz.ru/laws/s-1-marta-2026-goda-vstupayut-v-silu-novye-pravila-upravleniya-runetom-kak-teper-budet-rabotat-internet/ "С 1 марта 2026 года вступают в силу новые правила управления Рунетом"
-[3]: https://www.ec-rs.ru/blog/novosti/suverennyy-internet-s-1-marta-2026-tsentralizovannoe-upravlenie-blokirovki-i-usilenie-antifroda/ "Суверенный интернет с 1 марта 2026: централизованное управление, блокировки и усиление антифрода"
-[4]: https://www.rbc.ru/technology_and_media/09/11/2025/69107d8a9a79470274160bec "Власти уточнили правила вмешательства в работу Рунета — РБК"
-[5]: https://www.fontanka.ru/2026/03/10/76302889/ "Российский интернет станет суверенным: отключат ли нас от глобальной сети"
-[6]: https://www.instagram.com/reel/DQ7DqSiAaq-/ "Постановление №1667: с 1 марта 2026 года свободного интернета в России не будет"
-[7]: https://habr.com/ru/articles/1006424/ "Суверенный интернет: что меняется с 1 марта 2026 года и как это работает"
-[8]: https://habr.com/ru/news/771194/ "Суверенному Рунету исполнилось 4 года: история закона и практика"
-[9]: https://www.zeluslugi.ru/info-czentr/stati/sut-zakona-o-suverennom-internete-v-rossii "Закон о суверенном интернете в России: суть и последствия"
-[10]: https://www.quora.com/How-difficult-is-it-for-someone-in-Russia-to-access-foreign-websites-and-apps "How difficult is it for someone in Russia to access foreign websites and apps"
-[11]: https://en.zona.media/article/2026/04/07/russian_internet_censorship_2026 "Russia's internet censorship in 2026: blackouts, broken payments, shrinking tools"
-[12]: https://www.thedailystar.net/news/world/europe/news/internet-crackdown-russia-toughens-restrictions-vpns-4152536 "Internet crackdown: Russia toughens restrictions on VPNs"
-[13]: https://habr.com/ru/news/1003760/ "СМИ: на конец февраля 2026 года Роскомнадзор ограничил доступ к 469 VPN-сервисам"
-[14]: https://meduza.io/en/news/2026/04/16/russian-telecom-companies-agree-to-freeze-expansion-of-international-network-links-to-curb-vpn-use-rbc-reports "Russian telecom companies agree to freeze expansion of international links to curb VPN use"
-[15]: https://www.fontanka.ru/2026/04/16/76370317/ "Ограничения VPN в России — последние инициативы и статистика"
-[16]: https://korrespondent.net/world/russia/4660299-cheburnet-kak-v-rossyy-khotiat-yzolyrovat-ynternet "Чебурнет: как в России хотят изолировать интернет по китайскому образцу"
-[17]: https://bb.lv/statja/v-mire/2024/03/12/ekspert-v-rf-vsyo-gotovo-dlya-izolyacii-ot-vsemirnogo-interneta-video "Эксперт: в РФ всё готово для изоляции от всемирного интернета"
-[18]: https://www.tbank.ru/invest/social/profile/victorkoch/d3101a8f-eea6-4a61-9958-16ca5d6e0746/ "Как блокировки угрожают бизнесу и интернету: долгосрочные последствия изоляции"
-[19]: https://prohoster.info/blog/administrirovanie/kogda-iz-interneta-budut-delat-cheburnet-obzor-proekta "Когда из интернета будут делать «чебурнет»: обзор проекта и технические условия"
-[20]: https://goodlucker.ru/zakon/cheburnet.html "Чебурнет: закрытый интернет в России — главные особенности и сценарии работы"
-[21]: https://club.dns-shop.ru/digest/157598-v-rossii-prinyali-pravila-pozvolyauschie-izolirovat-runet-i-filtr/ "В России приняли правила, позволяющие изолировать Рунет и фильтровать трафик через ТСПУ"
-[22]: https://vpnblog.ru/russian-internet-control2024/ "Чебурнет наступает: как меняется интернет-ландшафт России в 2024"
-[23]: https://vvvtv.ru/tehnologii/internet/cheburnet/ "Чебурнет — уже насущная реальность: технология глубокой фильтрации трафика"
\ No newline at end of file
diff --git a/content/posts/20260510 - rd450x_not_boot_5060ti/hero.svg b/content/posts/20260510 - rd450x_not_boot_5060ti/hero.svg
deleted file mode 100644
index 45c0edb..0000000
--- a/content/posts/20260510 - rd450x_not_boot_5060ti/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
\ No newline at end of file
diff --git a/content/posts/20260510 - rd450x_not_boot_5060ti/index.md b/content/posts/20260510 - rd450x_not_boot_5060ti/index.md
deleted file mode 100644
index 3ff606e..0000000
--- a/content/posts/20260510 - rd450x_not_boot_5060ti/index.md
+++ /dev/null
@@ -1,112 +0,0 @@
----
-date: '2026-05-10T17:14:10+03:00'
-lastmod: '2026-05-10T17:14:10+03:00'
-draft: false
-title: 'Проблема загрузки Ubuntu на RD450X+5060ti'
-slug: 'rd450x_not_boot_5060ti'
-description: 'После штатных выключения и включения сервера. Он перестал загружаться. Последнее сообщение на мониторе - EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path.'
-
-categories:
- - 'blog'
-
-tags:
- - 'linux'
- - 'rd450x'
- - 'grub'
- - 'ошибки'
-
-keywords:
- - 'grub'
- - 'rd450x'
- - '5060ti'
- - 'problem'
- - 'LINUX_EFI_INITRD_MEDIA_GUID'
- - 'EFI stub'
- - 'ubuntu'
-
-cover:
- image: "hero.svg"
- alt: "Hero картинка в SVG"
- relative: true
----
-
-## Проблема: зависание загрузки Ubuntu после обновления с сообщением EFI stub
-
-### Симптомы
-
-После выполнения `apt upgrade` (об этом я вспомнил уже после того как разобарлся с пробелмой) и перезагрузки система перестала загружаться. На экране последнее сообщение:
-
-```
-EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
-```
-
-После этого — полное зависание. GRUB работает, выбор ядра доступен. Ошибок ядра (`kernel panic`, `Oops`) нет.
-
-### Окружение
-
-- ОС: Ubuntu (ядро 6.8.0-111-generic)
-- Видеокарта: NVIDIA RTX 5060 Ti (архитектура Blackwell)
-- Дисковая подсистема: программный RAID1 (mdadm)
-
-### Диагностика
-
-1. **Аппаратная часть исправна:** диски определяются в BIOS, SMART — PASSED, RAID-суперблоки на месте (`mdadm --examine` показал корректные UUID).
-2. **RAID собирается:** `mdadm --assemble --scan` активен, `/proc/mdstat` — массив в состоянии `[UU]`. Проверял на соседней машине.
-3. **LiveUSB с Ubuntu/Debian не загружается** — аналогичное зависание на той же строчке.
-4. **UEFI Shell работает**, загрузчик GRUB физически присутствует на EFI-разделе.
-
-### Решение
-
-Загрузка с параметром ядра:
-
-```
-nomodeset
-```
-
-После добавления этого параметра в строку загрузки GRUB система стартует штатно. Механизм `nomodeset` отключает Kernel Mode Setting (KMS), предотвращая инициализацию DRM/драйвера видеокарты на раннем этапе загрузки.
-
-### Причина
-
-Ядро 6.8.0 не имеет полной поддержки видеокарт на базе архитектуры Blackwell (RTX 5060 Ti вышла позже релиза ядра). При попытке инициализации видеорежима через `nouveau` (или фолбэк-механизмы) происходит зависание на этапе настройки дисплейного контроллера.
-
-`nomodeset` исключает этот этап, оставляя управление видеорежимом за прошивкой UEFI. Система загружается, но без ускорения графики — что для сервера в большинстве случаев некритично.
-
-### Постоянное применение
-
-```bash
-echo 'GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"' | sudo tee /etc/default/grub
-sudo update-grub
-```
-
-### Корректное решение (убрать nomodeset)
-
-1. Установить проприетарный драйвер NVIDIA версии 570 или новее.
-2. Или обновить ядро до версии 6.12+, где поддержка Blackwell добавлена в `nouveau`.
-
-### Вывод
-
-Проблема не в дисках, не в RAID и не в памяти. Причина — отсутствие поддержки современной видеокарты в текущей версии ядра. Параметр `nomodeset` — рабочий временный обход, позволяющий сохранить функциональность системы до установки актуального драйвера или ядра.
-
-### Дополнение
-
-Я думал переустановить систему, залив Debian. Но после выбора параметра установки в загрузочном меню, я опять получал зависшую систему. Решилась пробелма что сложнее, одного параметра `nomodeset` не хватило, БЯМ подсказала расширенную версию:
-
-Вот перечень параметров, которые вы должны добавить все вместе:
-
-```
-nomodeset acpi=off noapic nolapic pci=nomsi pci=nommconf console=tty0 console=ttyS0,115200
-```
-
-**Как это ввести**:
-
-1. Загрузитесь с Ventoy, выберите Debian.
-2. Нажмите `e` для редактирования.
-3. Найдите строку с `linux`.
-4. Удалите всё содержимое после `---` (или в конце строки) и вставьте туда эту строку.
-5. Нажмите `Ctrl+X`.
-
-**Что эти флаги делают**:
-
-- `acpi=off noapic nolapic`: Отключают продвинутое управление питанием и прерываниями (часто выручает на серверном железе)[](https://otvet.mail.ru/question/242988552)[](https://lists.debian.org/debian-user/2010/12/msg00882.html).
-- `pci=nomsi pci=nommconf`: Отключают альтернативные методы обработки прерываний PCIe[](https://lists.debian.org/debian-user/2010/12/msg00882.html).
-- `console=tty0 console=ttyS0`: Говорят ядру дублировать вывод на обычный экран и на «виртуальный последовательный порт» — это часто сдвигает процесс с мертвой точки[](https://blog.gitcode.com/2ed11393511874d91bf536891afeff00.html)
\ No newline at end of file
diff --git a/content/posts/hugo-error-fix/hero.svg b/content/posts/hugo-error-fix/hero.svg
deleted file mode 100644
index 9c38edc..0000000
--- a/content/posts/hugo-error-fix/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
diff --git a/content/posts/hugo-error-fix/index.md b/content/posts/hugo-error-fix/index.md
deleted file mode 100644
index 1f08f45..0000000
--- a/content/posts/hugo-error-fix/index.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Исправление ошибок в Hugo сайте"
-date: 2026-01-31T22:45:00+03:00
-draft: false
-tags: ["hugo", "ошибки", "исправления", "google analytics", "deprecated"]
-categories: ["Разработка", "Hugo"]
-cover:
- image: "hero.svg"
----
-
-## Проблема
-
-При запуске команды `hugo server` возникала ошибка:
-
-```shell
-ERROR html/template:_partials/head.html:153:13: no such template "_internal/google_analytics.html"
-```
-
-## Решение
-
-### 1. Исправление ошибки с Google Analytics
-
-В новых версиях Hugo внутренний шаблон `_internal/google_analytics.html` был удален.
-Необходимо заменить его использование на частичный шаблон из темы PaperMod:
-
-```html
-
-{{- template "_internal/google_analytics.html" . }}
-
-
-{{- partial "google_analytics.html" . }}
-```
-
-### 2. Обновление шаблона Google Analytics
-
-В шаблоне `themes/PaperMod/layouts/partials/google_analytics.html` также
-потребовалось обновить способ получения ID Google Analytics, так как в новых
-версиях Hugo поле `.Site.GoogleAnalytics` было заменено на
-`.Site.Config.Services.GoogleAnalytics.ID`.
-
-### 3. Исправление ошибок с устаревшим .Site.Social
-
-В шаблонах `twitter_cards.html` и `opengraph.html` использовались устаревшие
-обращения к `.Site.Social`, которые были заменены на `.Site.Params.Social`.
-
-### 4. Исправление путей к частичным шаблонам
-
-Также были исправлены неправильные пути к частичным шаблонам в нескольких файлах:
-
-- `twitter_cards.html`
-- `schema_json.html`
-- `opengraph.html`
-
-## Результат
-
-После всех исправлений сайт успешно запускается командой `hugo server` и
-доступен по адресу
-
-## Вывод
-
-При обновлении Hugo или тем важно следить за изменениями в API и устаревшими
-функциями. Использование устаревших элементов может привести к ошибкам сборки сайта.
diff --git a/content/posts/hugo-slugs-archetypes-bundles/hero.svg b/content/posts/hugo-slugs-archetypes-bundles/hero.svg
deleted file mode 100644
index 7c7a3b8..0000000
--- a/content/posts/hugo-slugs-archetypes-bundles/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
\ No newline at end of file
diff --git a/content/posts/hugo-slugs-archetypes-bundles/index.md b/content/posts/hugo-slugs-archetypes-bundles/index.md
deleted file mode 100644
index b8ab642..0000000
--- a/content/posts/hugo-slugs-archetypes-bundles/index.md
+++ /dev/null
@@ -1,242 +0,0 @@
----
-date: '2026-04-18T09:44:39+03:00'
-lastmod: '2026-04-18T09:44:39+03:00'
-draft: false
-title: 'Как автоматизировать создание постов в Hugo: slugs, архетипы и бандлы'
-slug: 'hugo-slugs-archetypes-bundles'
-description: 'Настраиваем Hugo так, чтобы не копировать index.md вручную, не мучиться с транслитерацией и получать красивые URL с датами'
-
-categories:
- - 'Hugo'
- - 'DevOps'
-
-tags:
- - 'hugo'
- - 'static-site-generator'
- - 'automation'
- - 'frontmatter'
-
-keywords:
- - 'hugo'
- - 'blog'
-
-cover:
- image: "hero.svg"
- alt: "Автоматизация Hugo"
- relative: true
----
-
-## Проблема: рутина при создании постов
-
-Когда я только начинал вести блог на Hugo, каждый новый пост создавался через боль и страдания:
-
-1. Создать папку вручную `content/posts/название-поста/`
-2. Скопировать туда `index.md` из соседней папки
-3. Отредактировать front matter (дату, заголовок, теги)
-4. Придумать slug для красивого URL
-5. ...и не забыть, что папку лучше назвать на латинице
-
-На всё это уходило пара минут чисто механической работы. А когда постов 10–20, это начинает реально бесить.
-
-В этой статье я расскажу, как я решил эту проблему с помощью штатных возможностей Hugo: **архетипов (archetypes)**, **пермалинков (permalinks)** и правильной организации **бандлов (bundles)**.
-
-## Что такое бандл и зачем папка для каждого поста
-
-Hugo поддерживает три типа контента:
-
-Три способа хранения контента в Hugo
-
-1. Простой файл .md (без папки)
-
-Самый простой способ — просто положить файл мой-пост.md в папку content/posts/:
-
-```text
-content/
-└── posts/
- ├── первый-пост.md
- ├── второй-пост.md
- └── третий-пост.md
-```
-
-Плюсы:
- - Максимально просто, ничего создавать не нужно
- - Подходит для простых постов без изображений
-
-Минусы:
- - Все изображения нужно класть в общую папку static/images/
- - Нельзя прикрепить к посту специфичные файлы (PDF, архивы и т.д.)
- - Изображения нужно называть уникально, чтобы не пересекались с другими постами
-
-2. Leaf bundle (папка + index.md)
-
-```text
-content/
-└── posts/
- └── мой-пост/
- ├── index.md
- ├── hero.jpg
- └── code-example.py
-```
-
-Плюсы:
- - Все ресурсы поста в одном месте
- - Можно ссылаться на изображения относительно: 
- - Не нужно думать об уникальности имён файлов
-
-Минусы:
- - Нужно создавать папку (но мы это автоматизировали)
-
-3. Branch bundle (папка + _index.md)
-
-```text
-content/
-├── posts/
-│ ├── _index.md <- описывает секцию /posts/
-│ ├── первый-пост.md
-│ └── мой-пост/
-│ └── index.md
-```
-
-Плюсы:
- - _index.md позволяет задать заголовок, описание для всей секции
- - Можно настроить отдельный шаблон для списка постов
-
-Структура моего блога:
-
-```text
-content/
-├── posts/
-│ ├── hugo-slugs-archetypes-bundles/
-│ │ ├── index.md
-│ │ ├── images/
-│ │ │ └── diagram.png
-│ │ └── code-example.txt
-│ └── другой-пост/
-│ └── index.md
-```
-
-Плюсы такого подхода:
-
-- Все посты хранятся одинаково — папка + index.md. Не нужно думать, какой способ выбрать.
-- Все файлы поста в одном месте
-- Можно удобно ссылаться на изображения: ``
-- Не нужно придумывать уникальные имена для картинок глобально
-- Если я захочу экспортировать пост в другой блог, достаточно скопировать одну папку со всеми ресурсами.
-
-## Почему папку бандла нужно называть на латинице
-
-Здесь кроется важный момент. Hugo позволяет использовать любые символы в именах папок, включая кириллицу. Но есть **две причины использовать латиницу**:
-
-1. **Чистые URL.** Если папка называется `мой-пост`, то URL будет `/%D0%BC%D0%BE%D0%B9-%D0%BF%D0%BE%D1%81%D1%82/`. Браузер это поймёт, но выглядит ужасно.
-2. **Slug без транслитерации.** Имя папки удобно использовать как `slug` — последний сегмент URL. А латиница в URL — это стандарт и хороший тон.
-
-**Правило:** папку называем на латинице (например, `my-awesome-post`), а заголовок внутри пишем по-русски.
-
-## Как автоматизировать создание бандла через консоль
-
-Команда для создания бандла с одной папкой:
-
-```bash
-hugo new content posts/название-папки/index.md
-```
-
-Hugo сам создаст папку, сгенерирует index.md с front matter из архетипа.
-
-Важно: эта команда появилась в Hugo 0.112. В старых версиях нужно было сначала создать папку, потом файл.
-
-## Настройка архетипа (archetype)
-
-Архетип — это шаблон для новых файлов. Он лежит в archetypes/default.md (или в archetypes/post-bundle.md для конкретного типа).
-
-Мой архетип выглядит так (TOML-формат):
-
-```toml
----
-date = '{{ .Date }}'
-lastmod = '{{ .Date }}'
-draft = true
-title = '{{ replace .File.ContentBaseName "-" " " | title }}'
-slug = '{{ .File.ContentBaseName }}'
-description = ''
-author = 'Кразя'
-
-categories = [
- 'uncategorized'
-]
-
-tags = [
- 'draft'
-]
----
-```
-
-Разберём ключевые моменты:
-Поле Значение
-title Берёт имя папки, заменяет дефисы на пробелы и делает заглавные буквы. my-awesome-post → My Awesome Post
-slug Просто берёт имя папки как есть: my-awesome-post
-.File.ContentBaseName Встроенная переменная Hugo — имя текущей папки без расширения и пути
-
-После создания поста я вручную меняю title на русский и заполняю description, categories, tags.
-
-## Настройка permalinks для красивых URL
-
-Чтобы URL выглядел как 2025/03/my-awesome-post/, а не как posts/my-awesome-post/, добавляем в hugo.toml:
-
-```toml
-[permalinks]
- posts = "/:year/:month/:slug/"
-```
-
-Теперь при сборке сайта Hugo сам построит нужную структуру. При этом внутри content/ всё остаётся по-прежнему — папка в posts/.
-
-## Полный цикл создания поста (без лишних телодвижений)
-
-Вот как теперь выглядит создание нового поста в моём блоге:
-
-```bash
-# 1. Создаём бандл с латинским именем папки
-hugo new content posts/hugo-best-practices/index.md
-
-# 2. Открываем файл и правим русский заголовок, описание, теги
-vim content/posts/hugo-best-practices/index.md
-
-# 3. Пишем пост в markdown
-# 4. Смотрим локально
-hugo server -D
-
-# 5. Публикуем
-make deploy
-```
-
-## Что ещё можно добавить в front matter
-
-В процессе настройки я выяснил, что Hugo поддерживает много полезных полей:
-| Поле | Назначение |
-|----------------|---------------------------------------------------------------|
-| `publishDate` | Отложенная публикация (не рендерится до указанной даты) |
-| `expiryDate` | Автоматическое снятие с публикации |
-| `lastmod` | Дата последнего изменения (для SEO) |
-| `aliases` | Редиректы со старых URL |
-| `weight` | Ручная сортировка в списке (меньше — выше) |
-| `images` | Изображение для Open Graph и Twitter Cards |
-| `params` | Кастомные параметры для темы |
-
-## Итог
-
-После всех настроек создание нового поста занимает ровно столько времени, сколько нужно на написание контента. Никакой ручной возни с папками и копированием index.md.
-
-Ключевые выводы:
-
-- Используйте leaf bundles (папка + index.md) для хранения всех ресурсов поста в одном месте
-
-- Папки называйте на латинице — это даст чистые URL и автоматический slug
-
-- Настройте архетип с переменной {{ .File.ContentBaseName }} для автоматической генерации title и slug
-
-- Добавьте [permalinks] в конфиг для красивых URL с датами
-
-Создавайте новый пост одной командой: ```bash hugo new content posts/имя-папки/index.md```
-
-Теперь можно сосредоточиться на том, ради чего всё затевалось — на содержании.
-
-Если у тебя есть свои лайфхаки по Hugo или ты знаешь, как сделать транслитерацию slug прямо из заголовка — пишите мне в Telegram . Обсудим.
diff --git a/content/posts/ml-begin/hero.svg b/content/posts/ml-begin/hero.svg
deleted file mode 100644
index f70242f..0000000
--- a/content/posts/ml-begin/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
diff --git a/content/posts/ml-begin/index.md b/content/posts/ml-begin/index.md
deleted file mode 100644
index 04a922e..0000000
--- a/content/posts/ml-begin/index.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-date: '2026-04-18T10:06:22+03:00'
-lastmod: '2026-04-18T10:06:22+03:00'
-draft: false
-title: 'Что надо знать до того как начнёшь изучать машинное обучение'
-slug: 'ml-begin'
-description: 'Вступление к книге о машинном оубчении'
-
-categories:
- - 'ml'
-
-tags:
- - 'book'
- - 'ml'
-
-keywords:
- - 'MachineLerning'
- - 'Andriy Burkov'
-cover:
- image: "hero.svg"
----
-
-Начнем с простой истины: машины не учатся. Типичное машинное обучение заключается в поиске математической формулы, которая при применении к набору входных данных (называемых обучающими данными) дает желаемые результаты. Эта математическая формула также генерирует правильные выходные данные для большинства других входных данных (отличных от обучающих) при условии, что эти входные данные поступают из того же или подобного статистического распределения, из которого были получены обучающие данные.
-
-Почему это не является обучением? Потому что стоит слегка исказить входные данные, и результат, скорее всего, получится полностью неправильным. Обучение у животных — это нечто иное. Если вы научились играть в видеоигру при прямой ориентации экрана, вы все равно сможете играть в нее, даже если кто-то слегка повернет экран. Алгоритм машинного обучения, обучавшийся при прямой ориентации экрана и не обученный распознаванию поворота, не сможет играть в игру на повернутом экране.
-
-Но почему тогда используется название «машинное обучение»? Причина, как это часто бывает, заключается в маркетинге: Артур Сэмюэл (Arthur Samuel), американский пионер в области компьютерных игр и искусственного интеллекта, придумал этот термин в 1959 году, когда работал в IBM. Подобно тому как в 2010-х годах IBM пыталась продвигать термин «когнитивные вычисления», чтобы выделиться среди конкурентов, в 1960-х годах IBM использовала новый крутой термин «машинное обучение», чтобы привлечь клиентов и талантливых сотрудников.
-
-Как видите, подобно тому как искусственный интеллект не является интеллектом, машинное обучение тоже не является обучением. Тем не менее термин «машинное обучение» получил широкое распространение и под ним часто подразумевается теория и практика создания машин, способных выполнять различные полезные действия без явного программирования. Слово «обучение» в данном случае используется лишь как аналогия с обучением в животном мире, а не буквально.
-
-Андрей Бурков, Машинное обучение без лишних слов, 2020.
\ No newline at end of file
diff --git a/content/posts/test-post/hero.svg b/content/posts/test-post/hero.svg
deleted file mode 100644
index f4099b0..0000000
--- a/content/posts/test-post/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
diff --git a/content/posts/test-post/index.md b/content/posts/test-post/index.md
deleted file mode 100644
index 788ef54..0000000
--- a/content/posts/test-post/index.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: "Тестовая статья"
-date: 2026-01-31T22:45:00+03:00
-draft: false
-tags: ["hugo"]
-cover:
- image: "hero.svg"
----
-
-## Тестовая статья
-
-Это пример статьи в формате bundle. В этом формате все связанные файлы (изображения, код и т.д.) находятся в одной папке с основным файлом.
-
-### Блок кода
-
-```python
-def hello_world():
- print("Привет, мир!")
-
-# Это важно для подсветки синтаксиса
-```
-
-### Изображения
-
-
-
-## Заключение
-
-Формат bundle позволяет удобно организовывать статьи и связанные с ними ресурсы в одной директории.
diff --git a/content/posts/writefreely/hero.svg b/content/posts/writefreely/hero.svg
deleted file mode 100644
index 380e257..0000000
--- a/content/posts/writefreely/hero.svg
+++ /dev/null
@@ -1,33 +0,0 @@
-
diff --git a/content/posts/writefreely/index.md b/content/posts/writefreely/index.md
deleted file mode 100644
index 4ca9d6d..0000000
--- a/content/posts/writefreely/index.md
+++ /dev/null
@@ -1,275 +0,0 @@
----
-title: "Полная инструкция: Установка WriteFreely на wf.gelonet.ru (Debian 13)е"
-date: 2025-11-02T19:00:00+03:00
-draft: false
-tags: ["writefreely", "howto", "debian", "fediverse"]
-categories: ["selfhosting"]
-cover:
- image: "hero.svg"
----
-
-Предполагается, что у вас есть:
-
-- VPS с Debian 13,
-- Доступ к серверу через sudo,
-- Доменное имя gelonet.ru, зарегистрированное у любого регистратора.
-
-## 🔹 Шаг 0: Настройка DNS (в панели регистратора)
-
-Зайдите в панель управления вашего регистратора домена (например, reg.ru, nic.ru, Beget и т.д.).
-
-Найдите раздел «Управление DNS» или «Зоны DNS» для домена gelonet.ru.
-
-Создайте A-запись для поддомена:
-
-Имя (host): wf
-Тип: A
-Значение (IP): [ваш_публичный_IP_сервера]
-TTL: 300 или по умолчанию
-
-Пример:
-wf.gelonet.ru → 5.129.217.146
-
-Сохраните изменения.
-⏱ DNS может обновиться от нескольких секунд до 10–30 минут. Проверить можно командой:
-
-```bash
-dig +short wf.gelonet.ru
-# или
-nslookup wf.gelonet.ru
-```
-
-Результат должен совпадать с IP вашего сервера.
-
-## 🔹 Шаг 1: Подготовка сервера
-
-Подключитесь к серверу по SSH и выполните:
-
-```bash
-# Обновление системы
-sudo apt update && sudo apt upgrade -y
-
-# Установка необходимых пакетов
-sudo apt install -y nginx curl tar ufw
-```
-
-## 🔹 Шаг 2: Настройка фаервола (UFW)
-
-Разрешите SSH, HTTP и HTTPS:
-
-```bash
-sudo ufw allow OpenSSH
-sudo ufw allow 'Nginx Full' # открывает 80/tcp и 443/tcp
-sudo ufw enable
-```
-
-Проверка:
-
-```bash
-sudo ufw status verbose
-```
-
-💡 Порт 80 нужен для получения сертификата, порт 443 — для доступа к сайту по HTTPS.
-
-## 🔹 Шаг 3: Установка WriteFreely
-
-```bash
-# Создаём директорию
-sudo mkdir -p /var/www/writefreely
-cd /var/www/writefreely
-
-# Скачиваем последнюю версию (v0.16.0 на момент написания)
-sudo curl -L https://github.com/writefreely/writefreely/releases/download/v0.16.0/writefreely_0.16.0_linux_amd64.tar.gz -o writefreely.tar.gz
-
-# Распаковываем
-sudo tar -xzf writefreely.tar.gz --strip-components=1
-sudo rm writefreely.tar.gz
-
-# Назначаем права
-sudo chown -R www-data:www-data /var/www/writefreely
-```
-
-## 🔹 Шаг 4: Настройка WriteFreely
-
-```bash
-sudo -u www-data /var/www/writefreely/writefreely config start
-```
-
-Ответьте на вопросы:
-
-```shell
- Environment: Production, behind reverse proxy
- Server address: localhost:8080 (оставьте по умолчанию)
- Database: SQLite (проще для старта) или MySQL (если настроена БД)
- Site name: например, Мой блог
- Admin username: ваш email
- Admin password: надёжный пароль
- Остальное — по желанию
-```
-
-Сгенерируйте ключи шифрования:
-
-```bash
-sudo -u www-data /var/www/writefreely/writefreely keys generate
-```
-
-## 🔹 Шаг 5: Создание systemd-сервиса
-
-```bash
-sudo tee /etc/systemd/system/writefreely.service <
-
-Теперь вы полностью контролируете свой контент, без зависимости от сторонних платформ.