# ОМНИСПИКЕР · IaC v3 — железо колонки OMNISPEAKER-1

> **Такт:** v11.20 «АРСЕНАЛ» · **Дата:** 2026-10-14 · **Источник:** блокнот владельца, пакет `singulyar_iac_config-v3` · **Двери:** ·42 КОЛОНКА, ·51, ·52
> **Закон приёмки:** 10 файлов v3 приняты байт-в-байт; README — единственная новая строка. Пакет v2 (супергей, `README.md`, `install.sh`-дубль) остался в блокноте — v3 его замещает.

## Что здесь лежит

| Файл | Слой | Суть |
|---|---|---|
| `flash_sd_card.sh` | Установка | Заливает образ ОС на SD-карту колонки одной командой |
| `cloud-init.yaml` | Первый старт | Имя узла, сеть, ключи, пакеты — без монитора и клавиатуры |
| `install.sh` | Сборка | Ставит рантайм дома и зависимости узла |
| `singulyar-kiosk.service` | Сервис | systemd-юнит: браузер в киоск-режиме на экране колонки, автостарт, автоперезапуск |
| `singulyar-kiosk.sh` | Скрипт юнита | Команда запуска киоска (Wayland/X, без курсора, полный экран) |
| `nginx.conf` | Раздача | Локальный раздатчик дома на узле: кэш-заголовки, без логов приватности |
| `Dockerfile` | Контейнер | Изолированная сборка узла — повторяемость на любом железе |
| `generate_node_passport.py` / `.sh` | Паспорт | Генератор ECDSA-паспорта узла (P-256, SHA-256): отпечаток железа + подпись |
| `README_PASSPORT.md` | Паспорт | Формат паспорта и как его проверять |

## Смысл

Колонка — орган дома ·42. Паспорт узла решает вопрос доверия в комнате: любое устройство предъявляет подписанный паспорт, дом знает своих. IaC решает вопрос воспроизводимости: узел собирается из этих файлов за минуты, а не из памяти мастера.

## Связи

- Карта фаз железа 0–8: `КОЛОНКА/docs/07_DETAILED_ROADMAP.md` (линия К1 — решение владельца).
- Прототип и тесты: [../SINGULYAR_v2.0/](../SINGULYAR_v2.0/README.md).
