rpi: субагент Claude Code — пользователь claude (sudo), Gitea-пользователь, мост ask-claude; TODO п.9 закрыт
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8548ea0bb4
commit
2ea676eee8
@@ -40,7 +40,6 @@ _Собрано 2026-10-11._
|
||||
- [ ] 6. Скилл для ведения собственных дел
|
||||
- [ ] 7. Скрипты для работы с чатами — выжимки и слежение за интересующей информацией
|
||||
- [ ] 8. Собрать промежуточные точки доступа (mesh D-Link M15 ×2, E15) и настроить скиллы для других устройств
|
||||
- [ ] 9. Подключить Claude Code как субагента для Astra на rpi
|
||||
- [ ] 12. Опознать `.46` (`ea:08:6d:8c:59:56`, iOS без имени) и подтвердить, что `.13` — iPhone жены
|
||||
|
||||
## 📅 По расписанию
|
||||
|
||||
@@ -174,6 +174,17 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст
|
||||
- Заводская прошивка: открытых TCP-портов нет (ни RTSP, ни ONVIF, ни веба), только UDP 54321 (miIO); видео и настройки — через облако Xiaomi / Mi Home.
|
||||
- Интеграцию с rpi владелец снял: просмотр, движение и запись уже даёт Mi Home. Если вернёмся (снимок для Astra/в Telegram, доступ без аккаунта Xiaomi, архив на rpi без облака) — начинать с go2rtc (источник `xiaomi`, нужен вход в аккаунт Xiaomi; проверить поддержку модели). Выгрузка роликов в облако управляется «Обнаружением движения» (MIoT siid 5).
|
||||
|
||||
## Субагент Claude Code (с 2026-10-11)
|
||||
- Пользователь **`claude`** (uid 1002; группы `sudo`, `adm`, `systemd-journal`, `users`, **`astra`**), пароль заблокирован, **sudo NOPASSWD** (`/etc/sudoers.d/91-claude`) — по решению владельца, как у Astra. ⚠️ Это второй агент с root на rpi.
|
||||
- Почему отдельный пользователь, а не под `astra`: свои клоны и `$HOME` (иначе Codex и Claude Code правили бы одну рабочую копию `~/infra` и ломали друг другу git), отдельная авторизация подписки, видно, кто что сделал.
|
||||
- Claude Code 2.1.296 — нативный установщик под `claude` (`~claude/.local/bin/claude`, автообновление). Вход — **личная подписка Claude владельца** (`ruz…@gmail.com`, `stripe_subscription`), `~claude/.credentials.json` (600). Подписка общая с Claude Code владельца на Mac (лимиты).
|
||||
- Gitea-пользователь **`claude`** (id 6, пароль случайный, вход ключом `~claude/.ssh/gitea`), коллаборатор с записью в `ruzzy/infra` и `ruzzy/astra-bot`; клоны `~claude/infra`, `~claude/astra-bot`, коммиты «Claude (rpi)». Прямой push в `main` разрешён, как Astra.
|
||||
- Доступ к ресурсам Astra — через группу `astra`: `/home/astra` открыт группе (750, было 700) ради vault и снимков; секреты Astra (`~astra/.codex/auth.json`, ключи `~astra/.ssh/*`) — 600, `claude` их не читает (проверено). `/etc/router.env` — `root:astra 640`.
|
||||
- Вход с Mac: `ssh rpi-claude` (ключ владельца в `~claude/.ssh/authorized_keys`).
|
||||
- Мост **`ask-claude`** (`/usr/local/bin/ask-claude`, исходник — `ruzzy/astra-bot` `codex/skills/claude-code/scripts/`): Astra запускает `claude -p … --output-format json --dangerously-skip-permissions` через `sudo -u claude`; `--bg` — фоном, до 3 одновременно, тайм-аут 60 мин; `status` / `result` / `wait`. Журнал — `/var/lib/ask-claude/runs/<ID>/` (`claude:astra 2770`). ⚠️ Подсчёт идущих задач — по `/proc/<pid>`, не `kill -0` (процесс чужого пользователя → EPERM).
|
||||
- Инструкция субагента — `~claude/.claude/CLAUDE.md` (исходник `codex/claude/CLAUDE.md`): правила хоста/infra/vault, не работать в клонах Astra, отчёт в конце. Скилл Astra — `claude-code` (делегирует по просьбе и сама при распараллеливании; каждый запуск — через кнопку подтверждения).
|
||||
- Проверено 2026-10-11: две фоновые задачи параллельно (место на дисках, таймеры) — обе код 0, 4 и 8 с.
|
||||
|
||||
## Открытые хвосты (на 2026-10-11)
|
||||
- USB3-хаб с питанием — теперь только ради скорости: WD Elements 1 ТБ работает второй копией в роутере (~10 МБ/с); на малине через хаб было бы ~100 МБ/с (обновлено 2026-10-11, было «копия одна»).
|
||||
- Нет node-exporter (CPU/RAM/диск самой малины в Prometheus не видны) — пуш через pushgateway для node-метрик неудобен; решить, нужен ли.
|
||||
|
||||
Reference in New Issue
Block a user