[2026-06-17] update balda-valera.md — rebuild instructions (single image for both bots)

This commit is contained in:
Alexey Martemyanov
2026-06-17 11:11:21 +06:00
parent e3197994b2
commit 55371a0028
8 changed files with 25 additions and 12 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
**Weekly → Кракен HDD** (`Persistent=true`):
- `saves-sync-kraken.timer` (weekly)
- Скрипт: `~/scripts/backup-saves-to-kraken.sh`
- Назначение: `kraken@192.168.1.14:/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/backups/htpc-saves/`
- Назначение: `kraken@192.168.1.15:/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/backups/htpc-saves/`
- ⚠️ Путь назначения **всегда на HDD** (`/srv/dev-disk-by-uuid-.../`), не в `~/` (SSD, маленький)
- Транспорт: rsync по LAN (SSH ключ bazzite→kraken авторизован)
+8 -1
View File
@@ -4,6 +4,13 @@
## SSH с любой машины
**Контейнер hermes-kraken:**
- Маппинг `/home/kraken/.ssh:/opt/data/.ssh:ro` в docker-compose.yml
- Кастомный `/etc/passwd` с пользователем `kraken:x:1000:1000` (файл `passwd-with-kraken` рядом с compose)
- `HERMES_UID=1000 HERMES_GID=1000` чтоб entrypoint ремапил пользователя
- SSH из контейнера: `ssh -i /opt/data/.ssh/id_ed25519 kraken@localhost`
- Ключ `kraken` добавлен в `authorized_keys` на хосте
`~/.ssh/config` на Eagle:
```
Host kraken
@@ -36,7 +43,7 @@ ssh -J root@91.207.28.205 kraken@127.0.0.1 -p 2223
Кракен держит постоянный **reverse SSH tunnel** на VPS через autossh:
```
Кракен (RPi 5, 192.168.1.14)
Кракен (RPi 5, 192.168.1.15)
└── autossh → ssh -R 2223:localhost:22 root@91.207.28.205
VPS (91.207.28.205)
+2 -2
View File
@@ -94,11 +94,11 @@ mallexxx.duckdns.org:/mnt/RED_2TB/storage/git/obsidian-vault.git
```bash
# Проверить последний sync
ssh kraken@192.168.1.14 "tail -5 /tmp/vault-sync.log"
ssh kraken@192.168.1.15 "tail -5 /tmp/vault-sync.log"
ssh truenas_admin@mallexxx.duckdns.org "tail -5 /tmp/vault-sync.log"
# Запустить sync вручную
ssh kraken@192.168.1.14 "bash ~/scripts/sync-vault.sh"
ssh kraken@192.168.1.15 "bash ~/scripts/sync-vault.sh"
ssh truenas_admin@mallexxx.duckdns.org "bash ~/sync-vault.sh"
# Посмотреть историю коммитов в bare repo
+3 -3
View File
@@ -7,7 +7,7 @@ tags:
created: '2026-05-11'
updated: '2026-05-12'
status: hermes-pending
ip: 192.168.1.14
ip: 192.168.1.15
---
# OpenMediaVault на Raspberry Pi 5
@@ -22,7 +22,7 @@ ip: 192.168.1.14
| 2 — Первый запуск + обновление | ✅ | apt upgrade выполнен |
| 3 — Установка OMV | ✅ | OMV 7 установлен |
| 4 — Первый вход в веб-интерфейс | ✅ | Пароль сменён |
| 5 — Сеть | ✅ | DHCP static lease `192.168.1.14` (eth0 MAC `2c:cf:67:64:03:f3`); WiFi включён (wlan0, ASUS5, 192.168.1.15, 2026-05-19) |
| 5 — Сеть | ✅ | DHCP static lease `192.168.1.15` (eth0 MAC `2c:cf:67:64:03:f3`); WiFi включён (wlan0, ASUS5, 192.168.1.15, 2026-05-19) |
| 6 — USB HDD | ✅ | 12TB Seagate ST12000NT001, EXT4, UUID `49e8f586-3839-4c5d-a1e1-58bfc3579ade`, смонтирован через OMV в `/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade` |
| 7 — omv-extras + Docker | ✅ | omv-extras 7.0.6, Docker 29.4.3, kraken в группе docker |
| 8 — Контейнеры | ✅ | Все через отдельные docker compose, конфиги на HDD (см. ниже) |
@@ -137,7 +137,7 @@ network:
В роутере (ASUS): добавить static lease в `dhcp_staticlist` через nvram:
```bash
ssh -i ~/.ssh/id_rsa admin@192.168.1.1 \
"nvram set dhcp_staticlist='...<2C:CF:67:64:03:F3>192.168.1.14>kraken>' && nvram commit && service restart_dnsmasq"
"nvram set dhcp_staticlist='...<2C:CF:67:64:03:F3>192.168.1.15>kraken>' && nvram commit && service restart_dnsmasq"
```
Отключить WiFi навсегда (modprobe blacklist):
+2 -2
View File
@@ -194,7 +194,7 @@ services:
ssh kraken "cd /srv/.../docker/jackett && docker compose up -d"
```
Web UI: `http://192.168.1.14:9117`
Web UI: `http://192.168.1.15:9117`
### Настройка RuTracker
1. Открыть Jackett Web UI → Add Indexer → поиск "rutracker"
@@ -204,7 +204,7 @@ Web UI: `http://192.168.1.14:9117`
### API — как Eagle ищет игру
```bash
# Поиск через Jackett Torznab API
curl "http://192.168.1.14:9117/api/v2.0/indexers/rutracker/results/torznab/?apikey=JACKETT_KEY&t=search&q=Donkey+Kong+Tropical+Freeze+Switch&cat=8000"
curl "http://192.168.1.15:9117/api/v2.0/indexers/rutracker/results/torznab/?apikey=JACKETT_KEY&t=search&q=Donkey+Kong+Tropical+Freeze+Switch&cat=8000"
# Возвращает XML/JSON с magnet-ссылками и метаданными
```
+1 -1
View File
@@ -9,7 +9,7 @@
- **Web UI:** http://truenas.mallexxx.duckdns.org
- **Portainer:** https://portainer.mallexxx.duckdns.org
- **Host (local network):** `192.168.2.197` — ⚠️ ИСПОЛЬЗОВАТЬ `ssh truenas_admin@mallexxx.duckdns.org`. НЕ ИСПОЛЬЗОВАТЬ локальный IP для SSH доступа!
- ⚠️ Eagle (Mac, 192.168.1.x) и Kraken (192.168.1.14) находятся в **другой подсети**
- ⚠️ Eagle (Mac, 192.168.1.x) и Kraken (192.168.1.15) находятся в **другой подсети**
- ⚠️ Кра́кен и TrueNAS — **разные сети** (192.168.1.x vs 192.168.2.x). Доступ с Кракена на TrueNAS по локальному IP **не работает**
## Пользователи и группы (ключевые)
+1 -1
View File
@@ -22,7 +22,7 @@ tags:
HTPC (Bazzite 192.168.1.86)
└── rsync → Kraken HDD /srv/.../media/
Kraken (RPi 5, 192.168.1.14)
Kraken (RPi 5, 192.168.1.15)
├── /srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/media/
│ ├── movies/ ← фильмы (127 папок)
│ ├── cartoons/ ← мультфильмы (126 папок)
+7 -1
View File
@@ -8,14 +8,20 @@
- Дублирующий compose `~/Developer/balda/compose.valera.yaml` — НЕ использовать (сеть `balda_default` без DNS)
## Запуск / рестарт
```bash
cd ~/Docker/balda-agent
docker-compose restart
# Rebuild после изменений в коде:
docker-compose build && docker-compose up -d
cd ~/Developer/balda
docker build -t balda-agent-valera -f ~/Docker/claudio-agent/Dockerfile.claudio .
cd ~/Docker/balda-agent && docker-compose up -d
cd ~/Docker/claudio-agent && docker-compose up -d
```
> Валера и Клавдий — **один образ** (`balda-agent-valera`), собирается из одного Dockerfile (`Dockerfile.claudio`). Разница только в конфиге (`config.yaml`) и `.env`, которые монтируются volumes. После сборки — перезапустить оба контейнера.
## Архитектура получения сообщений
Валера — **outgoing webhook bot** (bot_type=3). Zulip отправляет webhook только для @mention и DM.