Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw
2.1 KiB
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
- Создай бота у @BotFather, положи токен и username в
core/.env. - Придумай
TELEGRAM_WEBHOOK_SECRET, зарегистрируй webhook:curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://hado.<домен>/hooks/telegram&secret_token=<SECRET>" - В инбоксе «Подключить 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.