- 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>
- homepage/: сервисы с описанием и живыми виджетами; ключи — в homepage.env на малине
- Jellyfin-виджет через customapi (встроенный не совместим с Jellyfin 12)
- provision.py: шаги homepage и connect
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- stacks/rpi-media: docker-compose и идемпотентный provision.py
- servers/rpi.md: раздел «Медиацентр», почему NTFS и SFTP на роутере,
закрыт хвост про резерв адреса
- AGENTS.md: роль малины
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
На 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>
Проект агента (~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>
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>
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>