Из недр картофельного ядра 🥔⚙️#
Основные направления
#android → Android без лишнего крахмала: Shizuku, Obtainium, OS-фиксы, автоматизация
#docker → Контейнеры, которые не развариваются: оркестрация, бэкапы, оптимизация
#git → Контроль версий без комков: от submodule до GitHub CLI
#gpt → AI в инфраструктуре: умные помощники, автоматизация, эксперименты
#linux → Системы, которые работают: NixOS, ARM, восстановление, тонкая настройка
#mesh → Своя сеть без интернета: LoRa, Meshtastic, Reticulum, приватность
#openwrt → Роутеры с характером: фильтрация, WireGuard, мониторинг
#windows → Гибридные решения: WSL, OpenSSH, интеграция с экосистемой
🥔 Картофель - это не просто овощ. Это состояние души.
А хороший код - это не просто работа. Это искусство.
Следуйте за нами:
VK | MAX | Steam | RSS
Вместо того чтобы форматировать флешку под каждый новый образ, Ventoy позволяет просто копировать ISO-файлы как обычные файлы. При загрузке вы получаете меню со всеми доступными образами.
Преимущества:
✅ Не нужно перезаписывать флешку для каждого образа ✅ Поддержка Windows, Linux, утилит - всё на одном носителе ✅ Обычные файлы доступны из любой ОС ✅ Гибкая настройка через JSON-конфиги 🗂 Правильная структура флешки [Первый раздел флешки - exFAT/NTFS] ├── /ventoy/ # ← Обязательно здесь! │ ├── ventoy.json # Главный конфиг │ ├── revi/ # Авто-установка Windows │ │ └── autounattend.xml │ └── theme/ # Кастомная тема │ └── distro/theme.txt │ ├── BACKUP/ # Рабочие файлы ├── LINUX/ # Образы Linux │ ├── Archlinux 2025.12.01.iso │ ├── Debian 13.2.0.iso │ └── NixOS 25.11.1734.iso ├── WINDOWS/ # Образы Windows │ ├── Windows 10 22H2.iso │ ├── Windows 10 Enterprise LTSC 2021.iso │ └── Windows 11 25H2.iso ├── ReviSetup/ # Скрипты пост-установки │ └── setup.cmd └── UTILS/ # Утилиты ├── gparted-live.iso └── memtest86+.iso ⚠️ Критично: /ventoy/ должна быть на первом разделе (том, где лежат ISO), не в корне!
...
📌 Это третья часть цикла. Часть 1: Теория, Часть 2: Практика.
🔗 Что будем интегрировать Компонент Назначение Сложность ONEmesh MQTT Мост между локальной сетью и глобальной картой + уведомления в Telegram 🟢 Низкая Home Assistant Сенсоры нод, device_tracker, автоматизации на сообщения из сети 🟡 Средняя Уведомления Алерты о новых нодах, потере связи, упоминаниях в чате 🟢 Низкая 💡 Все примеры проверены на: HA 2026.4.2 (Docker) + Orange Pi 3B + встроенный MQTT-брокер.
...
Home Assistant в Docker не видит Bluetooth-устройства, даже если на хосте всё работает.
Причины:
❌ Контейнер не имеет прямого доступа к /dev/hci0 ❌ BlueZ внутри контейнера конфликтует с демоном на хосте ❌ Пассивное сканирование BLE требует флага --experimental в BlueZ Решение: не запускать Bluetooth-стек внутри контейнера, а пробросить D-Bus с хоста.
✅ Настройка Docker Compose Минимальная конфигурация services: home-assistant: container_name: home-assistant image: ghcr.io/home-assistant/home-assistant:stable volumes: - config:/config - /run/dbus:/run/dbus:ro # ← Критично для Bluetooth cap_add: - NET_ADMIN - NET_RAW - SYS_ADMIN restart: unless-stopped networks: - traefik - prometheus volumes: config: driver: local networks: traefik: external: true name: traefik prometheus: external: true name: prometheus ⚠️ Не добавляйте devices: - /dev/hci0:/dev/hci0 - это не нужно при пробросе D-Bus и может вызвать конфликт.
...
На Orange Pi 3B встроенный Bluetooth-чип Spreadtrum UWE5622 подключён через UART (/dev/ttyBT0). В отличие от USB-адаптеров, он требует:
Загрузки прошивки и калибровочных данных перед инициализацией Запуска hciattach_opi с правильными флагами Корректного порядка запуска: сначала инициализация чипа, потом демон BlueZ Симптомы:
bluetoothctl scan on → No default controller available btmgmt info → Index list with 0 items hciconfig -a показывает hci0, но bluetoothctl его не видит Ошибка org.bluez.Error.Busy при попытке включить питание Причина: сервис orangepi3b-sprd-bluetooth.service запускает hciattach_opi с флагом -n (no-detach), который удерживает устройство, не давая BlueZ зарегистрировать контроллер.
...
Домашняя зона (zone.home) - основа для:
✅ Детекции присутствия (автоматизации «пришёл/ушёл») ✅ Расчёта времени восхода/заката (освещение, шторы) ✅ Прогноза погоды (привязка к координатам) ✅ Геозон для устройств и пользователей Неточные координаты = ложные срабатывания, неверный прогноз, сбои автоматизаций.
🎯 Проблема стандартного мастера При первой настройке Home Assistant предлагает выбрать локацию на карте. Но:
❌ Нет ручного ввода координат в мастере ❌ Автоопределение по IP часто даёт погрешность 1–10 км ❌ Высота над уровнем моря не запрашивается Решение: настроить точные координаты после установки, через UI или YAML.
...
📌 Это вторая часть цикла. Часть 1: Теория объясняет, зачем это нужно.
📦 Распаковка и подготовка Комплектация Heltec V4 Компонент Назначение Плата ~60×30 мм ESP32-S3R2 + SX1262, OLED 128×64, USB-C Антенна (IPEX) Подключается к разъёму ANT - обязательно! Кабель USB-C Питание + прошивка + отладка Пины (опционально) Для подключения внешних датчиков/антенн ⚠️ Важно: без подключённой антенны радиомодуль может выйти из строя. Всегда подключайте антенну перед подачей питания.
Характеристики Heltec V4 Компонент Описание MCU ESP32-S3R2 (WiFi + Bluetooth) LoRa Transceiver Semtech SX1262 Частоты 863–870 МГц (EU), 902–928 МГц (US) Дисплей 0.96" OLED 128×64 Мощность До +28±1 dBm (High Power option) Питание USB-C + оптимизированное управление LiPo Разъёмы USB-C, U.FL/IPEX для LoRa, 1.25-8Pin GNSS, 1.25-2Pin Solar Форм-фактор Совместим с V3/V3.1 по пинам ⚡ Прошивка: веб-флешер Официальный флешер: https://flasher.meshtastic.org
...
PostgreSQL не поддерживает in-place upgrade между мажорными версиями (15 → 17, 17 → 18). Данные нужно переносить логически: через дамп и восстановление.
Почему это важно:
✅ Новые версии = исправления безопасности, оптимизации, новые функции ✅ Поддержка актуальных клиентов (Nextcloud, Mastodon, Authelia требуют свежие версии) ✅ Предсказуемость: один и тот же процесс для любого проекта Сложность в Docker:
❌ Нельзя просто поменять тег образа - формат данных несовместим ❌ pg_upgrade требует одновременного доступа к старым и новым бинарникам - ломает изоляцию контейнеров ✅ Решение: pg_dumpall → новый контейнер → psql < dump 📋 Предварительные требования Перед началом убедись, что:
...