Notice Place

приватный контур · dqlite · mesh

Центр инцидентов,
который никогда не теряет событие

Продюсеры публикуют события, центр дедуплицирует их в инциденты, ведёт повторы, доставки и аудит, а исполнители работают по реплицированному хранилищу. Оператор видит всё в одной консоли и может одним рычагом остановить весь ИИ-контур.

Консоль закрыта общим SSO: auth.bezrabotnyi.com.

Инциденты

Событие превращается в инцидент по dedup_key. Повтор того же ключа не создаёт новую запись, а увеличивает occurrences — журнал показывает, сколько раз срабатывало то или иное.

Доставки и эскалации

У каждого консьюмера своя цепочка ступеней: канал, задержка, повтор, звук. Тайминги вынесены в настройки, темы Telegram — в маршруты, глушения — в отдельный список.

Рычаг

Авто-диагностика включается и выключается одним рычагом на весь флот. Это обратимое аудируемое действие: скоупы переводятся в automatic_health_diagnosis=false, бэкапы остаются на диске, откат — одна кнопка.

Исполнители

Каждый инцидент может поднять ИИ-сессию. В журнале видно её идентификатор, harness, статус и связь с инцидентом — без гадания, кто и почему что-то чинил.

Установка

Один скрипт ставит сервис, кладёт панель и проверяет, что API отвечает.

git clone git@github.com:megamen32/ServersAdministartion.git
cd ServersAdministartion/automation/noticeplace-console
sudo bash install.sh

Скрипт поднимает noticeplace-console-api.service на 127.0.0.1:8094: сервис отдаёт и панель, и JSON API, и читает реплицированное хранилище напрямую.

Доступ извне

Публичный маршрут — только через общий SSO, одна зона на хост:

location / {
    include /etc/nginx/snippets/gptadmin-cookie-auth-protect.conf;
    proxy_pass http://127.0.0.1:8094;
    proxy_set_header X-Notify-Admin 1;
}

Сервис доверяет только этому заголовку и только за гардом — напрямую из интернета он недоступен.

Что где лежит

Реплицированное хранилище
dqlite в общем контуре, доступ — через unix-сокет меша
Бэкенд
console_api.py — слой данных и JSON API, меш-сторона
Фронтенд
panel/ — статическая панель, без доступа к мешу
Операторский рычаг
noticeplace-mesh-kill — аудируемое гашение исполнителей