Files
hado/README.md
2026-09-04 08:35:59 -03:00

2.1 KiB
Raw Blame History

Hado — 波 · ядро умных уведомлений

Сервисы пушат события с датой, ядро само считает каскад напоминаний, окна и доставляет туда, где ты сейчас доступен (веб, Telegram, webhook/Home Assistant). Спека: docs/superpowers/specs/2026-09-03-hado-core-design.md.

Dev

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; локально: расширение браузера для заголовков или curl -H 'X-Remote-User: nikita' localhost:8080/me)
  • 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<TOKEN>/setWebhook?url=https://hado.<домен>/hooks/telegram&secret_token=<SECRET>"
  3. В инбоксе «Подключить Telegram» → отправь боту /start <код>.

Home Assistant

В инбоксе добавь webhook-канал: deliver_url — HA webhook-триггер (https://ha/api/webhook/<id>), 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.