Записи
Блог
Прозрачность: большинство постов здесь написаны с помощью ИИ, а неанглийские версии переведены локальной LLM и вычитаны. Заметили ошибку? Напишите мне.
-
Мониторинг и безопасное управление парком систем питания постоянного тока через SNMP
Трекер систем электропитания Eltek обнаруживает выпрямительные установки из Zabbix, классифицирует их путем зондирования OID идентификатора SNMP по редактируемым профилям для каждого производителя, опрашивает каждые 15 минут на предмет метрик и инвентаризации компонентов, и позволяет операторам изменять параметры контроллера через SNMP за жесткими ограничениями — валидация, подтверждение, установка, чтение обратной связи, аудит, откат.
-
Знание того, что на самом деле разрешает ваша конфигурация nginx — аудитор, вычисляющий эффективный доступ
nginx-acl-guard парсит конфиг nginx с помощью crossplane, вычисляет эффективную политику доступа для каждого server/location и защищает изменения за конвейером, который сравнивает эффективный доступ и отклоняет любое неподтвержденное расширение — git backup, nginx -t на staging, atomic swap, rollback.
-
Самопереводящийся блог: SQLite, редактор Markdown и локальная LLM
Как это работает под капотом этого блога — посты хранятся в SQLite и рендерят Markdown при запросе, редактор администратора заменяет файлы времени сборки, а локальная модель Gemma составляет русские и украинские версии для моего ознакомления перед публикацией.
-
RAG для расплывчатых вопросов, детерминированный CLI для точных
maximo-ticket-tools — инструментарий только для чтения поверх системы тикетов IBM Maximo: индексируйте его в локальный Onyx RAG для вопросов на естественном языке, но отвечайте на вопросы типа «сколько» с помощью детерминированных запросов, никогда LLM. Плюс дашборд PoP-map и наблюдатель Telegram.
-
Аренда дома с локальной LLM в качестве фильтра
home.khanoff.com — наблюдатель, который извлекает свежие объявления об аренде жилья из двух украинских источников, оценивает каждое по расплывчатым человеческим критериям с помощью локальной LLM и присылает мне уведомление в Telegram. Модель никогда не находится на пути приема данных (ingest path).
-
Портал для жильцов ассоциации домовладельцев — на чистом PHP и SQLite
osbb-wh.pp.ua — частный веб-кабинет для членов товарищества собственников жилья: объявления, документы, реестр автомобилей с OCR номерных знаков, опросы, бюллетени для правления и внутренняя почта. Без фреймворка, без MySQL — PHP 8.3 и файл SQLite.
-
Уход от WordPress: миграция моего сайта на Astro и SQLite
Почему я заменил установку WordPress размером 475 МБ на andrew.khanoff.com одним контейнером Astro и файлом SQLite — и как я осуществил переключение с нулевым простоем и откатом одной командой.
-
Ежедневный конвейер с GitHub на локальную LLM, который пишет мои проектные карточки
Как автоматически заполняется раздел "Projects" на этом сайте: cron job считывает мои private репозитории, просит локальную модель Gemma составить краткое описание и объединяет результат в SQLite — ни разу не перезаписывая мои правки и не утекая приватный репозиторий.
-
Семейный центр документов с отказоустойчивостью к опечаткам на базе FastAPI и Meilisearch
start.khanoff.com — тёплый, самохостируемый хаб для всей семьи: документы, инструкции, рецепты, ссылки и видео за одной прощающей поисковой строкой. FastAPI + HTMX + Meilisearch + Immich, вход по magic-link, PWA.
-
Создание самохостируемого резюме с помощью Astro, SQLite и локальной LLM
Как построен andrew.khanoff.com — серверный Astro, единый источник правды на базе SQLite, админ только по passkey и ежедневный конвейер GitHub→local-LLM, который составляет карточки проекта.
-
Автоматическая блокировка атакующих с помощью BGP — IDS, объявляющий маршруты черной дыры
Suri Defender: потоки обнаружения (CrowdSec + fail2ban) управляют route-injector ExaBGP, который объявляет вредоносные IP как маршруты RTBH через iBGP, поэтому трафик атаки отбрасывается на границах сети — а не на сервере. Стек в 2,7 ГБ переписан до нескольких сотен МБ.