Подход · инфраструктура

Карта инфраструктуры

Четыре репозитория на рабочей машине, одна почта вместо общего сервера, реле раз в пять минут и сервер, который принимает только проверенное. Всё, что ниже, — одна схема и таблица «что где живёт».

01Схема

Две стороны канала

Карта: рабочая машина с четырьмя репозиториями и почтой, сервер с Caddy, столом заявок и гейтом, Telegram и GitHub Слева рабочая машина: четыре репозитория, шина mailbox в каждом, реле раз в пять минут. Справа сервер: Caddy, стол заявок, гейт приёма. Внизу Telegram и GitHub, связанные с обеими сторонами. рабочая машина · Windows 4 репозитория узел · bot · template · portfolio шина в каждом inbox · outbox · processed реле раз в 5 минут: принять и разложить сервер · Linux Caddy TLS · домены · заголовки стол заявок вопросы, которые ждут решения гейт приёма подпись · трейлер · verify Telegram стол и сторож GitHub публичный код
Слева — где пишут и проверяют, справа — что принимает и отдаёт; связь идёт почтой и гейтом

Смысл схемы простой: рабочая машина готовит и проверяет, сервер принимает только то, что прошло гейт. Между ними нет общей папки и общего администратора — есть почта в каждом репозитории и реле, которое раскладывает письма.

02Что где живёт

Семь слоёв

  • Правила, доска долгов, решения — репозиторий узла, каталог docs/. Меняет узел; владелец — через заявку.
  • Почта шины — mailbox/ в каждом репозитории. Агент кладёт письмо в свой outbox, реле раскладывает.
  • Реле — задача планировщика, раз в пять минут. Код меняет узел, интервал — владелец.
  • Гейт — приёмка на сервере: подпись, трейлер Agent:, зелёный verify.py, след задачи.
  • Стол заявок — узел и Telegram-бот: вопрос с номером, ответ владельца, возврат на шину.
  • Сайты — каталог статики на сервере. Агент пишет site/, публикует узел.
  • Секреты — отдельные каталоги вне кода и писем; доступ только у владельца.

03Границы

Что нельзя размывать

  1. Наружу открыты только 22, 80 и 443. Новый порт — решение владельца, не агента.
  2. Почта — файлы в своих репозиториях, а не общая папка: чужой ящик не читается.
  3. Пуш в main идёт только через гейт: подпись, трейлер, зелёный verify.py, след задачи.
  4. Расписание принадлежит сессии; интервалы — зона владельца.
  5. Секреты не покидают свои каталоги: в письмах и коде их нет, реле отклоняет письмо с признаками ключа.

Граница — это не запрет, а место проверки. Каждый слой отвечает за одно: реле — за доставку, гейт — за допуск, владелец — за решения.