Commit Graph

114 Commits

Author SHA1 Message Date
dttb
42d1b4ad85 NPM: troubleshooting disk-full LXC 103 (git push 500), защита логов
Корень падения git push по HTTPS: диск NPM 100% забит логами host-22
(trust_forwarded_proto warning флуд). Truncate + cron npm-log-cap (>200M).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 01:54:23 +03:00
dttb
58fd3fa17a mailcow dttb: спам-фикс, SSL, апдейт 2026-05c, BIMI+подпись, Roundcube, сбор почты
- фикс входящего спама: No-SNAT на OpenWrt (видел все письма как 10.0.0.1)
- SSL mail-портов: cert из NPM + cron-синхрон на Proxmox
- апдейт mailcow 2026-01 -> 2026-05c; урок: forward-zone unbound обязателен (RKN режет рекурсию)
- логотип UI, BIMI-SVG (Tiny PS) + хостинг, HTML-подпись
- Roundcube на /rc (bind-mount, public_html)
- внешний сбор почты Яндексом (IMAP/POP3)
- snippets: sync-mailcow-cert.sh, dttb-mail-branding/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 01:43:19 +03:00
dttb
ead03fcf9f Homepage 2-я итерация: glances хоста, доска клиентов (NetBird), закладки, watchdog
- группа 'Хост Proxmox': 6 glances-виджетов (CPU/RAM/темпы/диски/сеть) с pve-хоста :61208
- LXC 145 в NetBird 100.70.113.28 → доска клиентов (ping НИИКН/ММФБ/Бужарово/Знаменское/Главторг/Sergey/Lipki)
- bookmarks.yaml (NetBird/Spaceweb/Hostkey/claude.ai usage)
- netbird-watchdog */5; находка: jobs.cfg пуст (нет бэкапов) — отдельная задача

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 00:49:50 +03:00
dttb
4010fbd235 Homepage: перенос на 10.0.0.148 — был конфликт IP на .145 (502/refused)
.145 оказался занят чужим устройством (MAC ac:ba:c0:39:82:64): pve резолвил в контейнер,
а NPM и NetBird-клиенты — в чужого → 502 на dash.dttb.ru. Перенесли на свободный .148
(проверено ARP), NPM forward_host обновлён, HOMEPAGE_ALLOWED_HOSTS поправлен.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 00:32:48 +03:00
dttb
3fe379f12c Homepage дашборд на dash.dttb.ru (LXC 145): live-виджеты Proxmox/NPM/Gitea/NC, Basic Auth
- LXC 145 homepage, Docker, 22 сервиса в 5 группах
- read-only доступы: PVEAuditor токен, Gitea PAT, NC app-password
- грабли: docker.io SNI-блок РКН (зеркало Яндекса), split-DNS hosts, NPM+authentik forward-auth
- authentik forward-auth отложен (localhost в authorize) → пока NPM Basic Auth

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 00:23:13 +03:00
dttb
d39ddb989d authentik SSO/IdP на auth.dttb.ru (LXC 144): пилот OIDC Open WebUI+Gitea, обязательная 2FA
- LXC 144 Debian12/Docker, server+worker+postgres (2026.5.3, без Redis)
- NPM #41 auth.dttb.ru, LE cert id133, публичная A-запись Spaceweb
- OIDC: Open WebUI (chat) + Gitea (git, ROOT_URL→https)
- 2FA обязательна на IdP (TOTP/WebAuthn force-enroll)
- принцип «2FA через нужную дверь» (OIDC, не forward-auth)
- критичную инфру не трогали; остался ручной enrollment Олега

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 19:17:10 +03:00
dttb
12705f148f German: веб-дашборд Hermes на german.dttb.ru (NPM #40, LE id130)
Подняли родную панель hermes dashboard на LXC 141 за NPM с basic_auth.
Грабля: флаг --insecure отключает cookie-gate (включает легаси _SESSION_TOKEN)
→ login ok, но всё внутри 401. Фикс: бинд 0.0.0.0 БЕЗ --insecure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:15:32 +03:00
dttb
3d71b56ae3 Домашний роутер: awg2 (Финляндия) рабочий — корень был rp_filter, не протокол
- Корень «awg2 не ходил»: строгий rp_filter=1 на интерфейсе дропал transport
  из туннеля (handshake жив, транзит 0%). awg0 работал на rp_filter=2 (loose).
  При заведении финского awg2 строка rp_filter=2 не была добавлена (для awg0 была).
- Фикс на роутере: net.ipv4.conf.awg2.rp_filter=2 в /etc/sysctl.conf
  + hotplug 99-awg-rpfilter (loose на все awg* при ifup). podkop → awg2.
- podkop-reference §5: добавлена грабля rp_filter (handshake-есть-транзита-нет).
- Снято неверное «awg2 сломан / OpenWrt не тянет AWG 1.5» — сервер/протокол исправны.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:50:55 +03:00
dttb
098b1fe421 manual sync 2026-06-23 13:58:02 +03:00
dttb
b8bef27825 Хардинг финского VPS: SSH key-only (awg-fi), ufw 22+41624, fail2ban; панель переведена на ключ
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:56:51 +03:00
dttb
a63b4476eb Amnezia Web Panel: LXC 143 — control-plane VPN-нод (NetBird-only), HOSTKEY Finland хаб; persistence data.json через bind-mount
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:00:25 +03:00
dttb
993bc95f05 Open WebUI: дефолт cc/claude-opus-4-8 + фикс 0 моделей (ключ OmniRoute = пустой)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 05:19:04 +03:00
dttb
96d16306ca Open WebUI на home lab: LXC 142 → chat.dttb.ru поверх OmniRoute (NPM id39, LE id129)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 05:00:27 +03:00
dttb
e5084e8d1c Принтер Александра: IP сменился .148→.147 (DHCP), CUPS перенацелен напрямую, IP зафиксированы; принтер чинён 2026-06-21 2026-06-22 00:44:30 +03:00
dttb
b1f6c50651 pve-147: VM 100 ZimaOS удалена (qm destroy, ~83G освобождено); German доступ на LXC102; пароль pve исправлен (1qaz!QAZ, j5DS мёртв) 2026-06-18 23:39:34 +03:00
dttb
38d7b1a168 German: вернул Opus 4.8 (400 был транзиентным окном Max, не лимитом — проверено curl) 2026-06-18 22:54:05 +03:00
dttb
4ff5e73142 German: подключён к NetBird (100.70.99.82, Claude-Diag); apt-репо вместо GitHub install.sh + --disable-dns 2026-06-18 22:49:57 +03:00
dttb
055b3fe35c German: primary на kr/sonnet-4.5 (cc/opus Max флапает 400, fallback не ловит); фикс задвоения Telegram 2026-06-18 22:22:34 +03:00
dttb
125564d055 German: модель → kr/claude-sonnet-4.5 (Max-квота cc/opus исчерпана); live раунд-трип подтверждён
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 22:14:26 +03:00
dttb
55bf07a266 German: Hermes Agent личный ассистент Олега на LXC 141 (Telegram + KB-доступ)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 22:09:09 +03:00
dttb
c65d2409fe Александр: pve.umnybot.ru публично за Basic Auth (Proxmox UI), доки обновлены 2026-06-17 22:08:10 +03:00
dttb
cc72a71c7d Александр: финал публичного доступа (только umnybot.ru→SwarmClaw) + полная architecture.md с диаграммой 2026-06-17 21:31:52 +03:00
dttb
0bb13ae6b6 Александр: чистка VPS NPM — убраны 8 ZimaOS-доменов + публичные cloud/alex; осталось umnybot.ru(swarm)+omni 2026-06-17 21:26:49 +03:00
dttb
010f44f34f Александр: umnybot.ru (корень) -> SwarmClaw публично через VPS+NetBird 2026-06-17 21:10:58 +03:00
dttb
8eb1915617 Александр: публичный доступ через VPS-шлюз+NetBird (WAN динамический); cloud/alex наружу, NetBird на NPM коробки 2026-06-17 21:05:48 +03:00
dttb
25ca390669 Антошка-сторож: переписан под переезд коробки (LXC137→NetBird→LXC102) 2026-06-17 19:12:07 +03:00
dttb
f361f7bd6e коробка Александра 2026-06-17: автономизация (NPM бэкенды, удалён maxcc, gitea scrub) + ZimaOS заблокирован VT-x/CMOS 2026-06-17 18:56:51 +03:00
dttb
decb126195 коробка Александра: переезд pve-147 на сеть 192.168.1.0/24 (хост .247 static+резерв, контейнеры DHCP) 2026-06-17 16:22:53 +03:00
dttb
51dcea50b2 unifi: контроллер UniFi на LXC 140 (10.0.0.196) + домен unifi.dttb.ru
- Docker-стек mongo:4.4 + linuxserver/unifi-network-application
- MongoDB 4.4 принудительно: хост Xeon X5672 без AVX, 5.0+ падает Illegal instruction
- образ с docker.io (ghcr.io виснет из РФ), rootfs на work (local-lvm 90%)
- NPM #36 + Let's Encrypt (DNS через Spaceweb, один editMain add)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-15 13:29:13 +03:00
dttb
bf83c01324 umnybot: tg+rustdesk поддомены через основной NPM — DNS, Basic Auth ACL, LE-серты
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 23:41:07 +03:00
dttb
922c7dc27e netbird: сохранён полный reusable setup-key для swarmclaw (для переподключения/новых хостов)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 11:50:58 +03:00
dttb
a842f2e1aa swarmclaw: подключён к NetBird (100.70.95.183), агенты дотягиваются до 100.70.x; setup-key в credentials, inventory
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 01:29:53 +03:00
dttb
6fa63a944d swarmclaw: HTTPS готов — LE cert для swarm.dttb.ru (id 118), ssl_forced
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:32:54 +03:00
dttb
b55b33b73b swarmclaw: деплой LXC 135 (оркестратор над openclaw) + домен swarm.dttb.ru
- LXC 135 Debian/Docker, SwarmClaw 24/7, провайдер OmniRoute, агент Opus 4.8
- gateway-связка с openclaw 137 (device paired, connect ok)
- NPM host swarm.dttb.ru -> 10.0.0.135:3456 (WSS), DNS A-запись в SpaceWeb
- обновлены proxmox-inventory, network-topology, npm-proxy-hosts

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:32:04 +03:00
dttb
ed40441cbd dttb/openwrt-router: podkop 0.7.14→0.7.19 на 10.0.0.1 (Cudy TR3000); грабля status='not running' при живом sing-box, лечение зависшего sing-box killall+restart, проверка фейкапа через 127.0.0.42
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:00:17 +03:00
dttb
b3a91986f8 Алекс: 2-й Codex-аккаунт в OmniRoute (пул cx/gpt-5.5, проверено)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:56:08 +03:00
dttb
eff0fa2596 Антошка: самолечение — двухслойный watchdog + алерт
- antoshka-watch-self.sh (cron */5 в LXC 137): gateway/порт/DNS/getMe/crash-loop -> рестарт + алерт
- antoshka-host-watchdog.sh (cron */5 на pve): контейнер лёг -> pct start + алерт
- поверх systemd Restart=always + lingering; боевой тест ОК

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:39:05 +03:00
dttb
a66174bbad ZimaOS веб-пароль -> App5870w (выбор Олега)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 12:26:31 +03:00
dttb
d1886cf75f ZimaOS веб-пароль сменён на сильный (закрыт публичный риск)
- CasaOS хранит пароль как чистый MD5 в /var/lib/casaos/db/user.db o_users
- смена через sudo sqlite3 UPDATE (API/CLI смены нет); старый отвергнут, новый ок
- alex-nas цел (SSH Linux отдельный, не менялся)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 11:58:42 +03:00
dttb
b4f98b15d5 zima.umnybot.ru -> ZimaOS веб (основной NPM + LE cert id116)
- A-запись Spaceweb, proxyhost id31 -> 10.0.0.190:80, force-SSL, websocket
- NPM v2.14 cert-create: только meta:{} (грабли)
- ФЛАГ безопасности: ZimaOS-админка в открытом инете с слабым паролем

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 11:08:16 +03:00
dttb
845e8193a7 ZimaOS NAS интегрирован с Алексом
- alex-nas.sh: место / поиск файлов (кириллица через python) / папки / usage
- доступ sshpass admin@10.0.0.190, в allowlist (read-only)
- проверено в TG: «место на NAS, найди договор» → Алекс отвечает

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 10:31:16 +03:00
dttb
8959ca2cbf CF Tunnel: тест из РФ — http2 подключается, но quick-tunnel флапает (530); риск, нужен named-test или VPS-туннель
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 23:03:56 +03:00
dttb
d136b7358b NPM коробки автономен: omni.umnybot.ru на LXC 101
- proxy host omni->OmniRoute (websocket+force-SSL), cert перенесён с основного NPM
- проверено локально: серт LE valid, проксирует (307); коробка раздаёт домен сама
- handover: DNS+роутер клиента 443/80 -> NPM коробки, пере-выпуск LE; иначе CF Tunnel

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 22:47:37 +03:00
dttb
83a73e0d3a Антошка стережёт Алекса: мониторинг + лечение + алерт пилота
- antoshka-watch-alex.sh на LXC 137, cron */3
- проверяет контейнер/gateway/omniroute/диск, лечит restart/pct start
- алерт Олегу от имени Антошки, дедуп; боевой тест пройден

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 22:30:02 +03:00
dttb
8b7010ea0a Алекс: хард-гейт approval ВКЛЮЧЁН и подтверждён в Telegram
- exec-policy allowlist + ask on-miss: read-инструменты свободно, write -> кнопка [Allow Once][Deny]
- живой тест в TG прошёл (кнопка на alex-fix.sh restart-podkop)
- SOUL облегчён (объясняет + кнопка, без дубля "да?"); гибкость сохранена (ask on-miss)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 22:19:24 +03:00
dttb
f757b4afd1 Алекс: исследован хард-гейт approval (allowlist), откат на yolo до живого TG-теста
- allowlist read-tools + exec-policy allowlist/on-miss: чтение свободно, write блокируется
- 2 вопроса (Telegram-кнопка approval не проверена; allowlist лишает гибкости) -> yolo
- механизм и allowlist-записи задокументированы для финализации в Этап 9

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:52:55 +03:00
dttb
dd0a498fbe Алекс Этап 4: write-действия + подтверждение + авто-лечение сети
- alex-fix.sh (restart-podkop / reboot-ap) с авто-аудитом Олегу в TG
- гейт подтверждения = двухшаговое правило в SOUL.md (проверено: спрашивает)
- авто-лечение в watchdog: WAN-SSH дыра -> сам закрывает + алерт (боевой тест ОК)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:39:36 +03:00
dttb
2f939c9400 Алекс-защитник: сторож сети против WAN-SSH/спам-атак
- alex-security.sh (аудит Cudy под вектор инцидента 2026-05-20)
- alex-secwatch.sh + cron */15 -> алерт Олегу в TG при угрозе
- on-demand "нас не ломают?" проверено; всё чисто, ~150 брутов отбито

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:20:25 +03:00
dttb
a7fac84f6e Алекс (пилот): доступ к UniFi (Cloud Key→mongo) + печать на HP M775 (CUPS+IPP DNAT)
- alex-router.sh / alex-unifi.sh / alex-print.sh на коробке
- UniFi через Cudy→dbclient→mongo ace (API залочен SSO)
- печать CUPS Everywhere через DNAT Cudy 6310→148:631, персистентно nftables.d
- проверено в TG: Алекс сам зовёт инструменты

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:09:08 +03:00
dttb
a54ef6e14b AI-ассистент umnybot: NetBird Benelux setup-key + коробка в mesh (100.70.186.192), достаёт Cudy Александра
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 19:17:10 +03:00