# Hado — 波 · ядро умных уведомлений Сервисы пушат события с датой, ядро само считает каскад напоминаний, окна и доставляет туда, где ты сейчас доступен (веб, Telegram, webhook/Home Assistant). Спека: `docs/superpowers/specs/2026-09-03-hado-core-design.md`. ## Dev ```bash cp core/.env.example core/.env docker compose up -d --build docker compose exec app php artisan key:generate docker compose exec app php artisan migrate docker compose exec app php artisan hado:source:create docs # токен печатается один раз ``` - http://localhost:8080/ — инбокс. В проде пользователь приходит в заголовке `X-Remote-User` от хаба; локально поставь `HADO_DEV_USER=nikita` в `core/.env` (работает только при `APP_ENV=local`) и открывай в браузере без заголовков. - `PUT /api/events` с `Authorization: Bearer <токен>` — см. спеку §5 Тесты локально: `cd core && php artisan test` (SQLite in-memory, нужны расширения `pdo_sqlite`, `intl` в php.ini). Стиль: `vendor/bin/pint`. ## Telegram 1. Создай бота у @BotFather, положи токен и username в `core/.env`. 2. Придумай `TELEGRAM_WEBHOOK_SECRET`, зарегистрируй webhook: `curl "https://api.telegram.org/bot/setWebhook?url=https://hado.<домен>/hooks/telegram&secret_token="` 3. В инбоксе «Подключить Telegram» → отправь боту `/start <код>`. ## Home Assistant В инбоксе добавь webhook-канал: `deliver_url` — HA webhook-триггер (`https://ha/api/webhook/`), `presence_url` — любой URL, отвечающий `{"present": true|false}` (например, template-сенсор через REST API или Node-RED). Автоматизация в HA получает JSON `{event, actions}` и может дёрнуть `actions.done` POST-ом без авторизации. ## Прод `core/Dockerfile` (serversideup/php), compose с `scheduler` и `worker`, Caddy — `deploy/Caddyfile.snippet` в хаб sekai. Compose в репозитории — dev-стек (`Dockerfile.dev`, `artisan serve`); прод-сборка через `core/Dockerfile` (serversideup/php) описана, но не проверена — отдельный шаг перед деплоем.