вторник, 25 ноября 2025 г.

Nextcloud: AppAPI default deploy daemon is not set

 После обновления Nextcloud до версии 32.x в настройках появилось предупреждение "AppAPI deploy daemon: AppAPI default deploy daemon is not set. Please register a default deploy daemon in the settings to install External Apps (Ex-Apps).".

Я не планирую ставить external apps и просто хочу отключить эту функциональность. В разделе поддержки Nextcloud нашёлся ответ как это сделать - нужно зайти в список активных приложений и отключить "AppAPI". После этого предупреждение пропадает.

четверг, 20 ноября 2025 г.

Апгрейд SSD в ноутбуке

В процессе установки пакета разработки для STM32 в очередной раз закончилось место на домашнем разделе (/home) в ноутбуке. Походил с du по директориям, но больше 4 GB освободить не получилось. Заниматься радикальной чисткой или перемещением части данных на домашний сервер было лениво и в итоге был заказан новый NVME SSD на 1 TB от Kingston (SNV3S1000G).

Т.к. новый диск заметно больше прежнего, то перенос системы не вызывает вопросов. Подключил новый диск через USB-NVME переходник и скопировал данные

$ sudo dd if=/dev/nvme0n1 of=/dev/sda bs=1M iflag=direct oflag=direct conv=notrunc status=progress

Дальше переставил новый диск в ноутбук и загрузился с LiveCD чтобы увеличить размер домашнего раздела. У меня система стоит на LVM поверх LUKS поэтому команды специфичны для этого варианта установки.

$ sudo parted /dev/nvme0n1 resizepart 3 100%

$ sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

$ sudo cryptsetup resize nvme0n1p3_crypt

$ sudo pvresize /dev/mapper/nvme0n1p3_crypt

$ sudo vgchange -ay dragoncore

$ sudo fsck -Cf /dev/dragoncore/home

$ sudo lvextend -L+650G dragoncore/home

$ sudo resize2fs -p /dev/dragoncore/home

$ sudo vgchange -an dragoncore

$ sudo cryptsetup close nvme0n1p3_crypt

воскресенье, 16 ноября 2025 г.

Заново открываю для себя STM32

Так вышло что микроконтроллеры STM32 я обошёл стороной и в основном использовал ATMEGA8/ATMEGA328 и ESP8266. Заказывал на пробу платы Blue pill с STM32F103C8T6, помигал светодиодом и отложил в ящик до лучших времён. Тогда интерес был в районе IoT и ESP8266 давал больше возможностей в сравнении с ATMEGA и STM32 у которого не было встроенного WiFi.

Недавно собирал частотомер на ESP32-S3 и мне не хватало 32-битного таймера чтобы считать импульсы без переполнения. Полистал спецификацию на популярные сейчас Black pill и заказал две платы с STM32F411CEU6 на борту чтобы сделать ещё один подход к STM32.

Обе платы приехали ко мне меньше чем за месяц. На фотографии одна из плат с уже с припаянными контактами. Одна из них после включения плавно мигает синим светодиодом, а во вторую залита обычная мигалка.

Для поддержки этой платы потребуется Arduino IDE 2.х (я установил актуальную версию 2.3.6) в которой нужно добавить ссылку https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/refs/heads/main/package_stmicroelectronics_index.json в поле "Дополнительные ссылки для Менеджера плат" в меню Файл / Параметры.

пятница, 14 ноября 2025 г.

Ingress-nginx уходит на покой

На днях в блоге Kubernetes появилась запись Ingress NGINX Retirement: What You Need to Know в которой сообщается что поддержка Ingress Nginx будет осуществляться до марта 2026 и далее не стоит ожидать каких-либо новых выпусков или исправлений.

To prioritize the safety and security of the ecosystem, Kubernetes SIG Network and the Security Response Committee are announcing the upcoming retirement of Ingress NGINX. Best-effort maintenance will continue until March 2026. Afterward, there will be no further releases, no bugfixes, and no updates to resolve any security vulnerabilities that may be discovered. Existing deployments of Ingress NGINX will continue to function and installation artifacts will remain available.

Другими словами, самое время начинать двигаться дальше и искать альтернативу. Жаль конечно, на мой взгляд это был один из самых популярных ингресс контроллеров, но отсутствие ресурсов на поддержку и "излишняя гибкость" сделали своё дело.

вторник, 11 ноября 2025 г.

Сломалась сборка образов в Gitlab

 Сегодня сборка Docker образов сломалась на docker-machine ранерах.

*** WARNING: Service runner-xxxxxxxx-project-xxxxx-concurrent-0-xxxxxxxxxxxxxx-docker-0 probably didn't start properly.
Health check error:
service "runner-xxxxxxxx-project-xxxxx-concurrent-0-xxxxxxxxxxxxxx-docker-0-wait-for-service" health check: exit code 1
Health check container logs:
2025-11-11T14:15:01.392368160Z FATAL: No HOST or PORT found                      
Service container logs:
2025-11-11T14:15:01.155180886Z cat: can't open '/proc/net/ip6_tables_names': No such file or directory
2025-11-11T14:15:01.156146175Z cat: can't open '/proc/net/arp_tables_names': No such file or directory
2025-11-11T14:15:01.159149102Z iptables v1.8.11 (nf_tables)
2025-11-11T14:15:01.198255845Z time="2025-11-11T14:15:01.197837859Z" level=info msg="Starting up"
2025-11-11T14:15:01.201660747Z time="2025-11-11T14:15:01.201577762Z" level=warning msg="Binding to IP address without --tlsverify is insecure and gives root access on this machine to everyone who has access to your network." host="tcp://0.0.0.0:2375"
2025-11-11T14:15:01.201682858Z time="2025-11-11T14:15:01.201643206Z" level=warning msg="Binding to an IP address, even on localhost, can also give access to scripts run in a browser. Be safe out there!" host="tcp://0.0.0.0:2375"
2025-11-11T14:15:01.201770114Z time="2025-11-11T14:15:01.201692789Z" level=warning msg="[DEPRECATION NOTICE] In future versions this will be a hard failure preventing the daemon from starting! Learn more at: https://docs.docker.com/go/api-security/" host="tcp://0.0.0.0:2375"

Вызовы docker завершались ошибкой

ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?

Связано это с выходом Docker 29.0.0, который перестал быть совместимым с docker-machine (подробности есть в gitlab-org/gitlab-runner #39100 и cattle-ops/terraform-aws-gitlab-runner #1324).

Для исправления достаточно откатиться на предыдущую версию Docker добавив engine-install-url=https://releases.rancher.com/install-docker/28.3.3.sh в MachineOptions

Если используется модуль cattle-ops/terraform-aws-gitlab-runner, то это делается через добавление параметра

  runner_worker_docker_machine_ec2_options = [
    "engine-install-url=https://releases.rancher.com/install-docker/28.3.3.sh",
  ]

воскресенье, 9 ноября 2025 г.

Обновление генератора сигналов UTG932E до UTG962E

Перед покупкой генератора сигналов UTG932E проштудировал форумы и выяснил что нет смысла переплачивать за версию на 60 МГц, т.к. с точки зрения железа они ничем не отличаются. Получить старшую модель можно редактированием одного байта в микросхеме EEPROM.

Пока не было необходимости в частотах выше 30 МГц, то не было и смысла лезть внутрь генератора. Когда игрался с самодельным частотомером и входным формирователем, то захотелось проверить их на более высоких частотах чем 30 МГц.

Сегодня дошли руки до этой переделки и первым делом съездил в магазин электроники за программатором на базе CH341A.

В описании товара было указано "CH341A-MOD" и в нём реализовано питание микросхемы CH341A от 3,3 В стабилизатора а также 9 ножка (V3) подключена к 3,3В. В этом случае прошиваемые микросхемы питаются от 3,3В и уровень сигнала соответствующий. Без каких либо переделок этим программатором можно прошивать микросхемы EEPROM/FLASH 24-й (I2C) и 25-й (SPI) серий на 5В и 3,3В. Если понадобится прошить микросхему на 1,8 В, то потребуется отдельный переходник.

пятница, 7 ноября 2025 г.

Услышать мерцание света

Стараюсь покупать лампочки с высоким цветовым индексом и отсутствием пульсаций, которые могут привести к усталости во время чтения. Рейтинг ламп смотрел на сайте проекта LampTest, но не всегда получалось найти информацию о лампах которые продаются в данный момент.

Мерцание ламп можно определить если подключить фотоэлемент к осциллографу, но это вариант для дома. Если лампа мерцает, то придётся тратить время на возврат и снова выбирать другую лампу.

Этот проект начался после просмотра видео ИНДИКАТОР МЕРЦАНИЯ - в каждую избу! от Дмитрия Коржевского. Вместо использования bluetooth колонки я собрал свой вариант из готовых модулей:

  • Фотоэлемент 70х70 мм на 5,5 В 
  • PAM8403 в качестве усилителя
  • Динамик 6 Ом 1,5 Вт от старой колонки
  • MT3608 повышает напряжение литиевого аккумулятора до 5 В
  • TP4056 для зарядки и защиты литиевого аккумулятора
  • Литиевый аккумулятор стандарта 18650
  • Выключатель 

Первый вариант схемы не заработал из-за дохлого MT3608 (он был уже паянный, но не помню чтобы я его палил). Со второго раза всё заработало на столе

Чтобы придать законченный вид смоделировал и распечатал корпус. Для фотоэлемента сделано углубление чтобы он не выступал из корпуса.