Commit Graph
98 Commits
Author SHA1 Message Date
gilfanovrandClaude Opus 5.5 e38ca91cff rpi: books-sync — без обложек, предисловий, указателя и прочей обвязки книги
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:48:06 +03:00
gilfanovrandClaude Opus 5.5 4eacb09f8e rpi: books-sync — диалоги с ИИ не выгружать, только заметки и рекапы
Нужное из диалога владелец сохраняет кнопкой «В заметки». Файл книги, где заметок
не осталось, переписывается шапкой («Мои мысли» сохраняются).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:43:08 +03:00
gilfanovrandClaude Opus 5.5 71486960c5 rpi: books-sync — заметки читалки в Obsidian «Книги/» (pull по export-токену)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 00:39:22 +03:00
gilfanovrandClaude Opus 5.5 8a06244ef4 rpi: выгрузка Telegram второго аккаунта (tg_export с Mac) — stacks/rpi-tg-export
Пользователь tgexport, сессия /var/lib/tg-export (600), тексты в /mnt/backup/tg (группа astra),
докачка раз в сутки без медиа, итог в backup-metrics. Вход делает владелец.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:26:35 +03:00
gilfanovrandClaude Opus 5.5 8373a87826 TODO: пункт 14 закрыт — других ящиков не подключаем
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:19:22 +03:00
gilfanovrandClaude Opus 5.5 169978d2d4 rpi: второй ящик ruzzyrullezz@gmail.com в почте Astra (astra-bot 86c7f4d)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:18:42 +03:00
gilfanovrandClaude Opus 5.5 e7499cab3e TODO: книги — сделано (books.ruzzy.dev)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:56:35 +03:00
gilfanovrandClaude Opus 5.5 643744a575 TODO: MCP ко всему (книги — внешний доступ: токены/OAuth; дальше заметки, почта, календарь)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 16:55:16 +03:00
gilfanovrandClaude Opus 5.5 fdc52ba982 fr1: gVisor (runsc) для books-runner
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:45:48 +03:00
gilfanovrandClaude Opus 5.5 d08516d2ab fr1: books-runner — песочница запуска примеров кода
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:50:36 +03:00
gilfanovrandClaude Opus 5.5 85fc5c0bce fr1: books — thinking выключен, прогретые процессы Claude
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:38:25 +03:00
gilfanovrandClaude Opus 5.5 316e1e4af4 fr1: books — Go-инструменты и фоновая подготовка глав
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:14:00 +03:00
gilfanovrandClaude Opus 5.5 352d114023 fr1: books — ИИ подключён и проверен
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:04:15 +03:00
gilfanovrandClaude Opus 5.5 9c5c9de412 fr1: books.ruzzy.dev — vhost, сертификат, DNS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:58:28 +03:00
gilfanovrandClaude Opus 5.5 7408e350f5 fr1: books — вход по логину и паролю
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:51:37 +03:00
gilfanovrandClaude Opus 5.5 dfb8dffc6f fr1: books — деплой без .git
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:45:14 +03:00
gilfanovrandClaude Opus 5.5 0f2a403b99 books: код переехал в отдельный репо ruzzy/books
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:45:05 +03:00
gilfanovrandClaude Opus 5.5 9aab5b3f40 fr1: books.ruzzy.dev — читалка с ИИ (PDF/EPUB → главы, рекапы, перевод/объяснение выделенного, вопросы с RAG; Claude Code по подписке без инструментов; вход через Telegram)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:39:51 +03:00
gilfanovrandClaude Opus 5.5 8fd84239be rpi: личные дела — скилл life
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:06:11 +03:00
gilfanovrandClaude Opus 5.5 4b8405040e TODO: бэкапы OneDrive и роутера проходят успешно
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:02:43 +03:00
gilfanovrandClaude Opus 5.5 5a16e62745 TODO: подключить остальные почты (ruzzyrullezz@gmail.com в первую очередь)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:01:28 +03:00
gilfanovrandClaude Opus 5.5 d23be78c0a rpi: mail — метки без префикса Astra/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:55:08 +03:00
gilfanovrandClaude Opus 5.5 f1bef9d2aa rpi: mail — метки классов в Gmail
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:40:54 +03:00
gilfanovrandClaude Opus 5.5 a65a19d5b2 rpi: mail — оповещения об ожидаемых письмах (nellka)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:25:17 +03:00
gilfanovrandClaude Opus 5.5 5dcf669200 rpi: Astra — критерии подтверждений, меньше кнопок
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:11:53 +03:00
gilfanovrandClaude Opus 5.5 fb76b2116b rpi: mail — индекс «Отправленных», поиск по адресатам
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 17:10:56 +03:00
gilfanovrandClaude Opus 5.5 3512f4dbef rpi: mail — ссылка на коммит astra-bot
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:50:57 +03:00
gilfanovrandClaude Opus 5.5 2a166b70cb rpi: mail — индексация завершена, сверка «прочитано», уточнены классы
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:50:43 +03:00
gilfanovrandClaude Opus 5.5 dff068b9e5 rpi: work — проекты с планами, проблемами и журналом
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 13:12:00 +03:00
gilfanovrandClaude Opus 5.5 d832be2ccf rpi: рабочий помощник — скилл work (задачи/входящие/дневник/встречи в vault Работа/, сводка будни 09:00, напоминания ⏰)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 13:02:54 +03:00
gilfanovrandClaude Opus 5.5 d101f7093a rpi: почта — индекс/классы (mail), выгрузка писем Нели в Nelka/, gmail.modify; квота Gmail ~100 писем/мин
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 10:34:20 +03:00
gilfanovrandClaude Opus 5.5 b69afd89a1 rpi: календарь — правила записи, оповещения об изменениях Оли, напоминания; TODO: календарь Полины
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 10:04:19 +03:00
gilfanovrandClaude Opus 5.5 7d31435262 rpi: Google — праздники Кипра вместо США
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:55:57 +03:00
gilfanovrandClaude Opus 5.5 f87fcd1f5a rpi: Google — календарь и Gmail (только чтение) для Astra; fr1: страницы OAuth на www.ruzzy.dev/astra
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:54:55 +03:00
gilfanovrandClaude Opus 5.5 d28fe9f5be rpi: vault закрыт для 129703290, отдельный vault по просьбе; починен .profile astra
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:47:37 +03:00
gilfanovrandClaude Opus 5.5 1c636c1f0f rpi: уведомления малины — также 129703290 (по его просьбе)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:46:09 +03:00
gilfanovrandClaude Opus 5.5 5b2640ee10 rpi: получатели уведомлений — TG_NOTIFY_IDS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:36:02 +03:00
gilfanovrandClaude Opus 5.5 d96dcf1f64 rpi: astra-bot — доступ Telegram ID 129703290 (как у владельца)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 09:34:26 +03:00
gilfanovrandClaude Opus 5.5 a4aee69170 rpi: eljur — триместры/промежутки, итоговые, доступ Поли; форматирование бота
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:54:27 +03:00
gilfanovrandClaude Opus 5.5 9c589936e6 rpi: eljur table (триместр/промежуток), рендер таблиц в боте; грабли с границами триместров
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:37:53 +03:00
gilfanovrandClaude Opus 5.5 ed1ea6d207 rpi: eljur — оценки по отдельному предмету
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:30:36 +03:00
gilfanovrandClaude Opus 5.5 1415aa37d4 rpi: электронный дневник ЭлЖур — скилл eljur, уведомления о новых оценках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:27:34 +03:00
gilfanovrandClaude Opus 5.5 6ef28a7621 rpi: Samba — сетевая папка бэкапа OneDrive для Mac (только чтение, только LAN)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:21:07 +03:00
gilfanovrandClaude Opus 5.5 2ea676eee8 rpi: субагент Claude Code — пользователь claude (sudo), Gitea-пользователь, мост ask-claude; TODO п.9 закрыт
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:41:43 +03:00
gilfanovrandClaude Opus 5.5 8548ea0bb4 TODO: убраны снятые пункты (банки, камера); сведения о камере — в servers/rpi.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:23:59 +03:00
gilfanovrandClaude Opus 5.5 72ad013505 TODO: убран выполненный пункт Obsidian (факт — в servers/rpi.md)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:23:21 +03:00
gilfanovrandClaude Opus 5.5 b44a9e6fb2 rpi: архив vault в gitea — каждый час при изменениях (было раз в сутки); алерт свежести 3 ч
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:22:03 +03:00
gilfanovrandClaude Opus 5.5 7ef4d0b3e5 rpi: Obsidian-vault через Obsidian Sync, суточный архив в ruzzy/MyVault, скилл obsidian у Astra; алерты backup_vault
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:20:06 +03:00
gilfanovrandClaude Opus 5.5 89c9563453 Удалить stacks/astra-marusia: интеграция с Марусей отменена (остаётся в истории git)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:04:30 +03:00
gilfanovrandClaude Opus 5.5 4775d59a4e rpi: интеграция с Марусей удалена (юниты, код, секрет, CODEX_HOME, ключ туннеля)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:01:53 +03:00
gilfanovrandClaude Opus 5.5 5c17e4f3d6 fr1: интеграция с Марусей демонтирована (nginx, LE, sshd, пользователь, audit); осталась DNS-запись
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:58:55 +03:00
gilfanovrandClaude Opus 5.5 3ecc432ab4 Маруся: интеграция отменена владельцем — службы и туннель на rpi выключены; остатки на fr1 — к демонтажу
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:43:42 +03:00
gilfanovrandClaude Opus 5.5 cc363aa714 fr1: у бота claude-channels убран доступ к Obsidian-vault, ~/MyVault удалён, ask-astra → /root/astra-work
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:41:10 +03:00
gilfanovrandClaude Opus 5.5 5b60da731b TODO: Obsidian — git-синк убран везде, дальше ob на rpi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:19:44 +03:00
gilfanovrandClaude Opus 5.5 61b38b6886 fr1: синк MyVault через git выключен (Obsidian-vault теперь на Obsidian Sync), MyVault — архив на 2026-09-23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:10:23 +03:00
gilfanovrandClaude Opus 5.5 3a87905764 TODO: банки сняты (решение владельца)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 19:09:04 +03:00
gilfanovrandClaude Opus 5.5 b682f4db3c TODO: .46 — пункт 12 (11 занят снятой камерой)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 19:08:20 +03:00
gilfanovrandClaude Opus 5.5 d2283f0d77 TODO: сняты бэкап малины и Wi‑Fi роутера (решение владельца), .46 — в общий список
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 19:04:04 +03:00
gilfanovrandClaude Opus 5.5 5cc0d468ef fr1: туннель Маруси проверен; fail2ban — домашний IP в ignoreip
- 18788 только на loopback, 8788/18788 снаружи закрыты, коды вебхука
  совпали с ожидаемыми, секрета в логах nginx нет
- грабли: access log выключен только в vhost astra — запрос к пути
  вебхука на другом имени пишется в общий лог (было превью TelegramBot
  с пустым секретом)
- fail2ban: 46.199.208.45 в ignoreip (IP динамический — ⚠️)
- интеграция не завершена: навык VK и проверка на колонке за владельцем

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:59:35 +03:00
gilfanovrandClaude Opus 5.5 587ae5ce7a TODO: п. 11 (камера) снят — хватает Mi Home
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:52:04 +03:00
gilfanovrandClaude Opus 5.5 e2bd908198 fr1: вебхук Маруси — vhost astra.ruzzy.dev и пользователь туннеля marusia-tunnel
- nginx: vhost astra.ruzzy.dev (LE), только POST /marusia/webhook/ → 127.0.0.1:18788,
  limit_req 1r/s, 64k, без access log, error_log crit (секрет в пути); ссылка zz-,
  чтобы не перехватить ответ на неизвестный SNI у git
- sshd: Match User marusia-tunnel — только remote forward 127.0.0.1:18788;
  добавлен в AllowUsers
- живые конфиги fr1 в stacks/astra-marusia/ вместо nginx-location.example
- fr1.md: эффективные настройки sshd проверены под root, отпечатки host-ключей
- туннель ещё не поднят, интеграция не завершена (хвост в fr1.md)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:22:56 +03:00
gilfanovrandClaude Opus 5.5 0de0132eef TODO: подключить камеру
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:50:12 +03:00
gilfanovrandClaude Opus 5.5 2cac56073e rpi-media: пароли сняты для домашней сети (*arr, qBittorrent, Bazarr), Jellyfin — пользователь «Дом» без пароля
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:47:43 +03:00
gilfanovrandClaude Opus 5.5 fc59f7ac39 TODO: п. 10 — банки (Bank of Cyprus, Revolut), анализ трат и подписок
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:43:36 +03:00
gilfanovrandClaude Opus 5.5 78f34c97eb TODO: п. 9 — Claude Code как субагент Astra на rpi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:00:44 +03:00
gilfanovrandClaude Opus 5.5 b982f63b24 TODO: п. 8 — промежуточные точки доступа и скиллы для других устройств
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:58:46 +03:00
gilfanovrandClaude Opus 5.5 4ed2a16499 TODO: новые возможности Astra — просто список, детали позже
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:55:07 +03:00
gilfanovrandClaude Opus 5.5 1287a857cf TODO: новые возможности Astra — Obsidian, два календаря, книги PDF, планы обучения, проекты, личные дела, чаты
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:54:16 +03:00
gilfanovrandClaude Opus 5.5 b34e831fef rpi: DLNA и FTP на диске роутера выключены; TODO — срочный раздел снят (сделано/снято владельцем)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:48:48 +03:00
gilfanovrandClaude Opus 5.5 618f789ec0 TODO.md: открытые задачи по инфре после настройки rpi, бэкапов, мониторинга и роутера
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:44:16 +03:00
gilfanovrandClaude Opus 5.5 b8a31c7e54 rpi-media: приоритет русской дорожки и автозамена, ручные субтитры из Sub-раздачи
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:39:35 +03:00
gilfanovrandClaude Opus 5.5 716539def3 rpi: Astra управляет медиацентром (скилл media)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:16:38 +03:00
gilfanovrandClaude Opus 5.5 705a7dce99 rpi: убрать номер записи DHCP (сдвинулся после удаления .101)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:12:48 +03:00
gilfanovrandClaude Opus 5.5 94bc983401 rpi-media: стартовая страница Homepage, Radarr/Sonarr → Jellyfin connect
- homepage/: сервисы с описанием и живыми виджетами; ключи — в homepage.env на малине
- Jellyfin-виджет через customapi (встроенный не совместим с Jellyfin 12)
- provision.py: шаги homepage и connect

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:12:39 +03:00
gilfanovrandClaude Opus 5.5 f70d5c848f rpi-media: RuTracker через FlareSolverr, таймаут прокси 180 с
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:12:39 +03:00
gilfanovrandClaude Opus 5.5 08aa787b95 rpi: медиацентр (Jellyfin, Seerr, qBittorrent, *arr) в Docker; диск роутера и резерв DHCP
- stacks/rpi-media: docker-compose и идемпотентный provision.py
- servers/rpi.md: раздел «Медиацентр», почему NTFS и SFTP на роутере,
  закрыт хвост про резерв адреса
- AGENTS.md: роль малины

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:12:31 +03:00
gilfanovrandClaude Opus 5.5 880ad61253 rpi: удалена неиспользуемая DHCP-привязка 192.168.10.101
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:05:05 +03:00
gilfanovrandClaude Opus 5.5 60558dc4b3 rpi: роутер HG8245X6 — скилл router, сторож устройств и трафика, алерты home-network, дашборд home-net
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:59:58 +03:00
gilfanovrandClaude Opus 5.5 facc6c1e65 monwatch: сторож мониторинга fr1 на rpi — раз в час health-проверка, тревога в Telegram напрямую
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:36:56 +03:00
gilfanovrandClaude Opus 5.5 d780c91bd5 rpi: ежемесячная выборочная перечитка файлов OneDrive с диска роутера (sha256) + алерты
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:21:32 +03:00
gilfanovrandClaude Opus 5.5 4965f70299 alerts: BackupNeverReported (absent) — ловит задачи бэкапа, ни разу не отчитавшиеся
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:16:17 +03:00
gilfanovrandClaude Opus 5.5 464e12abdb rpi: вторая копия /mnt/backup на 1 ТБ диск в роутере (rclone SFTP) + мониторинг монтирования и заполнения
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:06:53 +03:00
gilfanovrandClaude Opus 5.5 550c359e4a Gitea: пользователь astra вместо двух deploy-ключей — один ключ, запись в infra/astra-bot, свои репо
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:57:13 +03:00
gilfanovrandClaude Opus 5.5 0a6d728851 rpi: код бота — только в ruzzy/astra-bot; доступ astra к нему, временная копия из infra убрана
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:48:36 +03:00
gilfanovrandClaude Opus 5.5 7d0a891793 Бэкап серверов fr1/ru1 на rpi: сервер шифрует age открытым ключом, малина только хранит
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:44:05 +03:00
gilfanovrandClaude Opus 5.5 e645377916 rpi: агенту Astra разрешён прямой push в main infra
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:12:49 +03:00
gilfanovrandClaude Opus 5.5 ef2891323c rpi: агент Astra — Codex + Telegram-бот (ruzzy/astra-bot), грабли с Codex Remote на Linux
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:07:30 +03:00
gilfanovrandClaude Opus 5.5 65a01740e8 grafana: дашборд RPi — диск и бэкап OneDrive; заполнение /mnt/backup в метриках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:37:14 +03:00
gilfanovrandClaude Opus 5.5 2bb74f7430 rpi: пользователь astra (sudo) и deploy-ключ с записью в ruzzy/infra для агента
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:33:28 +03:00
gilfanovrandClaude Opus 5.5 d1269162e7 rpi: бэкап OneDrive на HDD + SMART/бэкап-метрики через pushgateway на fr1
- servers/rpi.md: новая домашняя Raspberry Pi 4 (Trixie, cloud-init), HDD 4 ТБ,
  грабли с питанием двух HDD от USB
- stacks/rpi-backup: rclone sync с вечным архивом версий, еженедельная сверка
  хэшей, smartd, пуш SMART и статуса бэкапов
- fr1: pushgateway (127.0.0.1:9091), приём по SSH через forced command
  ~/bin/pushgw-ingest, алерты группы rpi

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:28:20 +03:00
gilfanovrandClaude Opus 5.5 3604e843c8 ru1: рестарт networkd снёс fwmark-правило умного роутинга — починено и защищено
После apt-get из установки WEB-прокси needrestart перезапустил
systemd-networkd, тот удалил ip rule fwmark 0x64 -> vpn: ~45 мин
зарубежный трафик клиентов OpenVPN #1 шёл через RU IP. Правило
возвращено, networkd запрещено трогать чужие правила и маршруты.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:21:42 +03:00
gilfanovrandClaude Opus 5.5 2ab38bc1f8 ru1: WEB-прокси Telegram вместо telemt
На ru.ruzzy.dev:443 поднят официальный tproxy-server (relay, carrier
websocket) перед официальным MTProxy на loopback. Фронт — nginx в
~/gost, сертификат только на ru.ruzzy.dev.

- MTProxy: --nat-info 10.8.1.4:161.97.93.252 вручную — трафик к
  Telegram выходит через wg0 с IP fr1, автоопределение install.sh
  ошиблось бы и прокси молча не отвечал бы.
- relay на 8090/8091: 8080 занят cadvisor.
- telemt удалён окончательно (контейнер, образ, конфиг, том).
- certbot до этого не работал вовсе: сертификат был просрочен с
  2026-07-01, продлён и запущен.

stacks/tproxy/: compose и nginx.conf стека ~/gost, setup-ru1.sh —
однократная root-установка relay и MTProxy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:16:12 +03:00
gilfanovrandClaude Opus 5.5 123cdaa19b ru1: ключ claude-bot@ruzzy.dev в authorized_keys mik
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-23 16:28:06 +03:00
gilfanovrandClaude Opus 5 11531ceb16 Указатели на контракт — на самом сервере
Контракт в репозитории достаёт только агентов, у которых этот репозиторий
есть. Astra работает на fr1 как tgclaude и infra у неё не склонирован, так
что до неё не дошло бы ничего.

Заведено на сервере:
  ~rus/CLAUDE.md и ~tgclaude/CLAUDE.md — указатель на репо, правило и пять
  граблей, стоивших больше всего; AGENTS.md рядом симлинком, для агентов с
  другой конвенцией. Claude Code читает CLAUDE.md вверх по дереву, поэтому
  файл в хоме работает и при работе в ~tgclaude/imgbot.

  ~rus/MyVault/TOOLS.md, раздел SSH — то же для Astra. Файл смонтирован в
  claude-channels как /vault, изменение видно агенту сразу, в Gitea уезжает
  кроном каждые 5 минут.

MOTD и .bashrc сознательно не использованы: .bashrc выходит на строке 6 для
неинтерактивных шеллов, MOTD показывается только при интерактивном входе, а
агенты обычно дёргают `ssh host 'команда'` и не увидят ни того, ни другого.

Ограничения механизма и причина, по которой детектор дрейфа не заведён,
описаны в servers/fr1.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 17:04:08 +03:00
gilfanovrandClaude Opus 5 b56c137b5c Механизм поддержания описаний в актуальном состоянии
Сверка fr1 показала, что дока расходится с фактом по десятку пунктов —
значит нужен не разовый проход, а контракт и инструмент.

  CLAUDE.md — правило «тронул сервер, обнови servers/<хост>.md в том же
  прогоне» плюс стиль: факт + причина + что сломается молча. Лежит именно
  в CLAUDE.md, потому что AGENTS.md автоматически агенту не подгружается.

  .claude/skills/server-audit/ — метод сверки и накопленные грабли: где
  дока врёт чаще всего, почему ufw не отвечает на вопрос об открытых
  портах, почему нужен up -d --dry-run, почему «executed successfully»
  не доказывает работу задания.

  scripts/snapshot.sh — инвентаризация живого состояния за один проход:
  только чтение, без sudo, секретов не печатает, недоступное под root
  помечает и подсказывает команду.

Первый же прогон скрипта нашёл две вещи, обе описаны:

  - IPv6 не «починился», а мигает: за один день FAILED -> REACHABLE ->
    FAILED без единой правки конфига. Описан как мигающий, с выводом
    ничего на него не завязывать.
  - В основном sshd_config стоит PermitRootLogin yes (правка шаблона
    Contabo). Root-вход закрыт только потому, что Include дроп-инов
    стоит выше, а sshd берёт первое значение. Уберёшь дроп-ин —
    включится.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:52:22 +03:00
gilfanovrandClaude Opus 5 4308c5c7e1 fr1: сверка описания с живым сервером
Дока расходилась с фактом по десятку пунктов. Что исправлено по
результатам обхода сервера:

  - ядро 6.8.0-137 (было 134); IPv6 заработал — шлюз отвечает на NDP,
    хотя конфиг не менялся, так что может отвалиться обратно
  - Gitea 1.27.3, 1.9 ГБ, 20 репо (было 1.25.4 / 4.3 ГБ / 16)
  - апекс ruzzy.dev уже на fr1; появились vhost'ы share и www
  - мониторинг шире описанного: таргеты ru1 и job gitea, дашборды
    OpenVPN и Gitea; убраны устаревшие упоминания выведенного de1
  - vault-синк claude-channels работает (дока говорила обратное), том
    claude-home раздулся заново до 2.8 ГБ

Добавлены разделы, которых не было вовсе:
  - tgclaude — общий вход для агентов; цепочка Telegram-бот → агент в
    контейнере → SSH → группа docker → root на хосте
  - imgbot и его переезд в контейнеры
  - расписания: полная инвентаризация cron и таймеров
  - открытые хвосты, включая непогашенные токены в Gitea

Разобрано и описано попутно: ufw не управляет docker-портами (ipcam
месяцами держал 2221 и 30000-30010 наружу без единого правила);
sysstat хранил историю 7 дней при HISTORY=7 — поднято до 365 (при >28
sa1 сам переключает имена на saYYYYMMDD, иначе смысла нет); /etc/cron.
hourly/free час за часом выбрасывал страничный кэш (до -3.89 ГиБ,
подтверждено по Prometheus) — удалён.

Уборка диска: 104 → 52 ГБ занято. Ушли ipcam, sc2-parser, booty,
booty-collector, vacuum-scraper, ollama (8.1 ГБ), легаси-архив
картинок, docker build cache (43.4 ГБ).

В AGENTS.md поправлены две неверные строки: de1 значился действующей
прод-нодой, хотя выведен, а туннель ru1 — идущим до de1. Сами
servers/de1.md и servers/ru1.md не сверялись.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 15:26:40 +03:00
gilfanovrandClaude Opus 5 a65d6a249e imgbot: стек из двух сервисов вместо процессов на хосте
Проект агента (~tgclaude/imgbot) работал тремя голыми python-процессами,
запущенными руками из SSH-сессии: без юнита, без restart-политики, при
Linger=no. Держались только на KillUserProcesses=no и не пережили бы
перезагрузку, причём молча.

Один образ на базе playwright/python:v1.62.0-noble (версия пакета
playwright обязана совпадать с тегом, иначе разъезжается ревизия
chromium), два сервиса:
  - imgbot-daemon — APScheduler: refresh 30 мин, analyze 5 мин
  - imgbot-http   — объединил прежние mcp-http (8765) и file-server
    (8766): MCP как под-приложение Starlette плюс маршрут /photo/<id>

Неочевидное, из-за чего это ломается молча (в compose есть комментарии):
  - данные монтируются в тот же путь, что на хосте: images.file_path в
    SQLite абсолютный, и его читают обе стороны
  - корней хранения может быть больше одного — проверять все префиксы
    file_path, а не только data_dir
  - HOME обязателен: collector.py вызывает Path.home(), а uid 1001 не
    имеет записи в /etc/passwd образа
  - у MCP своя защита от DNS-rebinding: без IMGBOT_ALLOWED_HOSTS отдаёт
    421 на любой Host кроме localhost

Порт не публикуется на хост, сервис доступен из общей docker-сети с
claude-channels — агент наконец ходит по MCP, а не по SSH.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 15:26:16 +03:00
gilfanovrandClaude Opus 5 bf4708b775 ipcam выведен; пин Gitea приведён к рабочей 1.27.3
ipcam/FTPS-приёмник удалён с fr1 целиком: контейнер, образ, том, сеть,
каталоги /srv/ipcam и /srv/ftps, deploy-хук certbot и сертификат
cam.ruzzy.dev. Видео так и не начали складываться — на момент удаления
в /srv/ipcam было 0 файлов.

Пин образа Gitea в стеке держал 1.25.4, тогда как работает 1.27.3
(обновлён 2026-08-31). Любой `docker compose up -d` откатил бы сервис
на две минорные версии назад.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 15:26:00 +03:00