Commit Graph
40 Commits
Author SHA1 Message Date
astra 587a57a60c rpi: усилить изоляцию Маруси и записать повторную проверку 2026-10-11 18:41:06 +03:00
astra aece60da74 rpi: запустить и проверить туннель вебхука Маруси 2026-10-11 18:26:59 +03:00
astra 258367d22d rpi: усилить ограничения разговорного сервиса Маруси 2026-10-11 18:24:26 +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
astra 436e855f33 rpi: установить локальный разговорный сервис Маруси 2026-10-11 17:55:56 +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 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 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
astra 629b11f03f rpi: настроить домашнюю печать на Brother DCP-L2620DW 2026-10-11 15:18:56 +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 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
astra bba3858894 rpi: исправить приём картинок и пересланных сообщений в Astra 2026-10-11 14:46:48 +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 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 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 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 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
ruslangilfanovandClaude Opus 4.8 b0faa0e019 monitoring/cadvisor: тюнинг CPU + фикс зомби-лика
housekeeping 30s, docker_only, отключены дорогие метрики,
init:true для reaping healthcheck-wget. На fr1 дало 231%→14% CPU.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 09:42:24 +03:00
Ruslan Gilfanov 1c1ef5eee1 monitoring: убраны de1-таргеты (de1 выведен, метрики удалены) 2026-06-22 14:14:38 +03:00
Ruslan Gilfanov ddc081bc7f ipcam: домен cam.ruzzy.dev + Let's Encrypt (vsftpd) + авто-reload хук, PASV на домен 2026-06-22 11:18:31 +03:00
Ruslan Gilfanov 6ce2cef479 ipcam: FTPS-приёмник (vsftpd) на fr1, PASV_ADDRESS=fr1, без переноса видео 2026-06-22 11:07:56 +03:00
Ruslan Gilfanov e054d35cc0 monitoring: OpenVPN per-client (openvpn_exporter на ru1 + дашборд) 2026-06-21 23:12:05 +03:00
Ruslan Gilfanov da10b50174 monitoring: network дашборд — панели объёма (ГБ за период) + скорость 2026-06-21 22:57:54 +03:00
Ruslan Gilfanov f204e94930 monitoring: подключён ru1 (host-net агент, видит VPN-интерфейсы) 2026-06-21 22:54:42 +03:00
Ruslan Gilfanov 3389a76c41 monitoring: сетевой дашборд + node-exporter в host-network (видит eth0/wg0) 2026-06-21 22:45:25 +03:00
Ruslan Gilfanov 818958ace9 monitoring: подключён de1 (агент node-exporter+cadvisor, доступ только с fr1) 2026-06-21 21:17:27 +03:00
Ruslan Gilfanov f52aa85ba1 monitoring: рабочий дашборд Gitea (старый был k8s-only → no data) 2026-06-21 20:19:21 +03:00
Ruslan Gilfanov 71fa9309d5 monitoring: gitea metrics (scrape job + дашборд) 2026-06-21 20:07:12 +03:00
Ruslan Gilfanov b00aae6c5e gitea: перенос de1 → fr1 (1.25.4, git.ruzzy.dev на fr1) 2026-06-21 19:57:35 +03:00
Ruslan Gilfanov b2d04e0573 monitoring: алерты через Alertmanager → Telegram (node down/cpu/mem/disk) 2026-06-21 19:34:39 +03:00
Ruslan Gilfanov 75d00cc400 monitoring: node-exporter hostname=fr1 (имя ноды в дашборде) 2026-06-21 19:16:51 +03:00
Ruslan Gilfanov 29e9079ca4 monitoring: системные дашборды + multi-server (file_sd), readme 2026-06-21 19:12:03 +03:00
Ruslan Gilfanov e0adc8997d fr1: Grafana через mon.ruzzy.dev (nginx + Let's Encrypt) 2026-06-21 19:02:17 +03:00
Ruslan Gilfanov d9b268ac77 fr1: стек мониторинга (prometheus+grafana+node-exporter+cadvisor) 2026-06-21 18:55:45 +03:00