Бэкап claude-memory (8 файлов) — 2026-03-09

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-03-09 17:58:38 +00:00
parent 2bcdc53921
commit 424177e722
8 changed files with 701 additions and 0 deletions

227
claude-memory/MEMORY.md Normal file
View File

@@ -0,0 +1,227 @@
# Server: Proxmox HP Z800 (10.0.0.250)
- root / 1qaz!QAZ (API: works, SSH: fail2ban blocks after attempts)
- Proxmox API: POST https://10.0.0.250:8006/api2/json/access/ticket (password URL-encoded: 1qaz%21QAZ)
- Node name: pve
- Use Python urllib for Proxmox API (curl has cookie issues in this env)
## Key LXC/VM containers
| VMID | Name | IP | Notes |
|------|------|----|-------|
| 107 | Mailcow | 10.0.0.107 | Mailcow для dttb.ru, 4 cores, 8GB RAM |
| 131 | agentdvr | 10.0.0.232 | Agent DVR, 8 cores, 6GB RAM, port 8090 |
| 129 | clawdbot | 10.0.0.206 | Clawdbot AI bot (основной, claude-opus-4-6, @maxim_dttb_bot) |
| 133 | clawdbot-1 | 10.0.0.237 | Бот НИИКН (cliproxy/claude-sonnet-4-6, @maximka_assistant_bot) |
| 134 | clawdbot-2 | 10.0.0.238 | Знам — бот ЧОП видеоархив (@ZnamSecurityBot, haiku) |
| 111 | WinServer2025 | - | RTX 3060 LHR passed through |
| 117 | motioneye | - | Old camera software |
| 124 | Matrix | 10.0.0.224 | Matrix Synapse + Element Web, Ubuntu 24.04 |
| 127 | HomeAssistant | 10.0.0.155 | HAOS 17.0, port 8123, home.dttb.ru |
| 128 | amnezia-vpn | - | AmneziaVPN |
| 250 | Nextcloud-AIO | 10.0.0.230 | Nextcloud AIO dttb.ru, NC 32.0.6 |
## Agent DVR (LXC 131) — домашний
- Install dir: /opt/AgentDVR/, binary: Agent
- Recordings: /opt/AgentDVR/Media/WebServerRoot/Media/video/ (rootfs, NOT on work storage)
- Service: agentdvr.service, Web UI: http://10.0.0.232:8090
- 20+ камер, Decoder=NONE
## Agent DVR (VM 104) — Знаменское (ЧОП)
- IP: 10.0.0.227, SSH: agentdvr / 1qaz!QAZ (key auth настроен)
- AgentDVR v7.0.0.0, Web UI: http://10.0.0.227:8090
- 14 камер (ZnamHome-Cam01..13 + Znam29-Cam1), все записывают
- Recordings: /mnt/storage/agentdvr-media/video/, формат MP4, 2TB диск (269GB используется)
- HTTP file server: http://10.0.0.227:8091 (python3 http.server, nohup + @reboot cron)
- 8 vCPU, 8GB RAM (критически мало — 99% использовано)
## Clawdbot (LXC 129) — основной бот
- Real config: ~/.clawdbot/clawdbot.json (NOT /opt/clawdbot/config.yaml)
- ANTHROPIC_API_KEY=sk-clawdbot-proxy in /etc/systemd/system/clawdbot.service
- Telegram bot: @maxim_dttb_bot
- Model: anthropic/claude-opus-4-6 (через CLIProxy localhost:8317)
- CLIProxy: порт 8317 (cliproxy.service), проксирует Anthropic API для всех ботов (129, 133, 134)
- CLIProxy auth: batlaew@gmail.com, auto-refresh токен (единственный инстанс с refresh)
- Gateway: порт 18789, token: changeme123
- SSH: ключ claude-code (id_ed25519 с LXC 132)
## Nextcloud dttb.ru (VM 250) → см. nextcloud-dttb.md
- URL: https://dttb.ru, admin / 1qaz!QAZ, NC 32.0.6, AIO v12.6.1
- VM 250 IP: 10.0.0.230, SSH: cloud / 1qaz!QAZ (sudo pipe)
- AIO: https://10.0.0.230:8080, passphrase: raider baguette muster...
- NPM proxy #1: dttb.ru -> 10.0.0.230:11001
- WebDAV: https://dttb.ru/remote.php/dav/files/admin/
## Clawdbot-1 / НИИКН (LXC 133)
- IP: 10.0.0.237, Netbird: 100.70.200.150 (clawdbot-1.netbird.cloud)
- Telegram: @maximka_assistant_bot (token: 8279417986:AAEjmdnOSO4izFHZJZYPbjcqKzqLARqPnow)
- Model: cliproxy/claude-sonnet-4-6 (через CLIProxy на 129 — http://10.0.0.206:8317)
- CLIProxy: свой остановлен и отключен (cliproxy.service disabled), ходит через 129
- ZAI_API_KEY=5c83707827ef... в /etc/systemd/system/clawdbot.service (не используется)
- Персона: бот для НИИКН (SOUL.md/IDENTITY.md/USER.md в /root/clawd/)
- SMB: нет (клон без mp0)
## GPU passthrough
- RTX 3060 LHR: IOMMU Group 20, IDs 10de:2504,10de:228e → VM 111
- Quadro 6000: IOMMU Group 3, IDs 10de:06d8,10de:0be5 → vfio-pci (unused)
- GRUB: intel_iommu=on iommu=pt video=vesafb:off video=efifb:off
## Clawdbot-2 / Знам (LXC 134)
- IP: 10.0.0.238, Telegram: @ZnamSecurityBot
- Персона: Знам — бот видеоархива ЧОП
- Model: cliproxy/claude-sonnet-4-6 (через CLIProxy на 129:8317)
- Skill: agentdvr (/usr/lib/node_modules/clawdbot/skills/agentdvr/)
- Script: /root/clawd/scripts/find_recordings.py (cameras/snapshot/find/clip/grab)
- Записи: HTTP from 10.0.0.227:8091, видео сжимается ffmpeg 480p crf35 перед отправкой
- groupPolicy: open, requireMention: false (отвечает в группе без @mention)
- Upload интернета ~3-30 KB/s — видео сжимаются до <200 KB для Telegram
- SSH: ключ claude-code (id_ed25519 с LXC 132)
## Matrix (VM 124, 10.0.0.224)
- Ubuntu 24.04, 8 cores, 16GB RAM, 100GB disk
- SSH: matrix / 1qaz!QAZ (root SSH отключен, fail2ban активен, IP 10.0.0.179 забанен)
- TODO: unban 10.0.0.179, создать user test/1qaz!QAZ, узнать registration_shared_secret
- Synapse v1.145.0 (docker: matrix-synapse, порт 8008)
- Element Web (docker: matrix-element-web, порт 8080)
- Coturn (docker: matrix-coturn, порт 3478 — имеет проблему bind)
- AI Bot (docker: matrix-ai-bot — Timed out, нужен ремонт)
- Mautrix-Telegram (docker: mautrix-telegram, порт 29317)
- Mautrix-WhatsApp (docker: mautrix-whatsapp)
- Nginx на хосте (порт 80) — дефолтный, не проксирует (проксирование через NPM)
- NPM proxy host ID:23 — matrix.dttb.ru → Element:8080, /_matrix→Synapse:8008
- NPM proxy host ID:12 — bitrix24.dttb.ru (старый, тоже работает)
- SSL: Let's Encrypt cert ID:100 (matrix.dttb.ru)
- Well-known: настроены для matrix.dttb.ru
- Homeserver: bitrix24.dttb.ru (в конфиге Synapse, исторически)
- Docker compose файлы: ~/matrix-ai-bot/, ~/mautrix-telegram/, ~/mautrix-whatsapp/
- Документация: ~/PROJECT_CONTEXT.md, ~/CURRENT-STATUS.txt, ~/MATRIX-SUCCESS.txt
## Mailcow HomeLab (VM 107, 10.0.0.107)
- Web UI: https://mail.dttb.ru (через NPM proxy host #25)
- Admin: admin / 1qaz!QAZ
- API key: dttb-mailcow-api-2026
- Домен: dttb.ru (добавлен), DKIM: selector=dkim, 2048-bit
- Ящики: admin@dttb.ru, noreply@dttb.ru (пароль: 1qaz!QAZ)
- SMTP: 10.0.0.107:587, STARTTLS, LOGIN auth
- Клон с VM 106 НИИКН, MAILCOW_HOSTNAME=mail.dttb.ru
- SSH: root (ключ claude-code ed25519), cloud-init IP static
- Unbound: forward-zone к 8.8.8.8/1.1.1.1 (обязательно, иначе DNS fail)
- SSL: self-signed для mail.dttb.ru, NPM cert ID:106 для HTTPS web
- OpenWrt проброс: 25,465,587,993,995,4190 → 10.0.0.107
- DNS (Spaceweb): A mail→176.62.183.186, MX→mail.dttb.ru, SPF, DMARC, DKIM настроены
## NPM HomeLab (CT 103, 10.0.0.195)
- Web UI: http://10.0.0.195:81
- API auth: it5870@yandex.ru / 1qaz!QAZ (python urllib, curl не работает с !)
- NPM v2.12.2
- Основные proxy hosts: dttb.ru(1), mail.dttb.ru(25), matrix.dttb.ru(23), bitrix24.dttb.ru(12), home.dttb.ru(16), pve.dttb.ru(6), bot.dttb.ru(18), git.dttb.ru(22), rec.dttb.ru(21) и др.
- DNS *.dttb.ru → 10.0.0.195 (роутер перехватывает DNS порт 53, hairpin)
## Mailcow НИИКН (VM 106, 192.168.1.128)
- Web UI: https://mail.niikn.com (через NPM proxy host #17)
- Admin: admin / 1qaz!QAZ
- API key: niikn-mailcow-api-2026
- Домен: niikn.com (добавлен), DKIM: selector=dkim, 2048-bit
- Ящик: noreply@niikn.com, пароль: NiIkN-NoReply-2026!
- SMTP: 192.168.1.128:587, STARTTLS, LOGIN auth — проверено, работает
- MikroTik проброс: 25,465,587,993,995,4190 → 192.168.1.128
- SSL: Let's Encrypt через NPM (cert ID 50)
- DNS настроены (2026-03-03): MX, SPF, DMARC, DKIM — все через Spaceweb API
- PTR: нужен (текущий: Aquatern.access.comstar.ru → нужен mail.niikn.com)
## Spaceweb DNS (niikn.com, dttb.ru)
- Панель: vps.sweb.ru, логин: it5870yand / 1qaz!QAZ
- Логин: POST https://mcp.sweb.ru/main/auth_submit/ (поля: login, password, new_panel=1, to, savepref)
- API: POST https://api.sweb.ru/domains/dns, Content-Type: application/json
- Payload: {"jsonrpc":"2.0","id":1,"user":"it5870yand","method":"...","params":{...}}
- editMain params: {domain, action:"add"/"edit", name, type:"A", value, prefix:"", index(edit)}
- editMx params: {domain, subDomain:"", action:"add"/"edit", priority, value:"host.", index(edit)}
- editTxt params: {domain, action:"add"/"edit", subDomain:"@"/..., value, index(edit)}
- Капча после 2-3 запросов подряд — новая сессия сбрасывает
## OpenWrt Router HomeLab (10.0.0.1:8080)
- LuCI Web UI: http://10.0.0.1:8080/cgi-bin/luci/
- ubus RPC: POST http://10.0.0.1:8080/ubus/ (root / 1qaz!QAZ)
- SSH: НЕ работает с этим паролем (другой или key-only)
- DNS Hijack: перехватывает порт 53 → 10.0.0.1 (все DNS запросы через роутер)
- Проброс: 80→NPM, 443→NPM, 25/465/587/993/995/4190→Mailcow(10.0.0.107)
- uci apply: нужен rollback=True + confirm, иначе правила теряются
## Matrix НИИКН (VM 107, 192.168.1.133) — Proxmox НИИКН
- Ubuntu 24.04, 4 cores, 8GB RAM, 100GB disk
- SSH: root / 1qaz!QAZ (matrix user тоже, PermitRootLogin=yes), fail2ban НЕ установлен, UFW неактивен
- Synapse v1.145.0 (MAS ОТКАЧЕН 2026-03-05, см. mas-niikn.md)
- Element Web (docker: matrix-element-web, порт 8080)
- Coturn (docker: matrix-coturn, порт 3478)
- LiveKit (docker: matrix-livekit, порт 7880/7881/50100-50200, v1.9.11)
- lk-jwt-service (docker: matrix-lk-jwt, порт 9090, v0.4.1)
- LiveKit key: matrixrtc, secret: 8TyXGXsuKytM09OqQIzlCzpzlBrY4698HTN7mGxKU3E=
- LiveKit config: /opt/livekit/livekit.yaml
- server_name: matrix.niikn.com
- Admin: @admin:matrix.niikn.com / 1qaz!QAZ
- DB: PostgreSQL synapse/Matrix2026!
- Docker compose: /opt/matrix-synapse-docker/docker-compose.yml
- NPM proxy host ID:18 (matrix.niikn.com), lk.niikn.com proxy host (cert ID:55)
- msc4108_enabled: false, msc3266+msc4222 enabled, max_event_delay_duration: 24h
- well-known: rtc_foci → https://matrix.niikn.com/livekit/jwt/
## Proxmox НИИКН (192.168.1.201:8006)
- root / 1qaz!QAZ, Node: pve
- VMs: 100(Cloud-nc-AIO), 101(VPN), 103(Win11), 104(Win2025), 106(Mailcow), 107(Matrix), 108(Nextclaud-AIO), 111(KasmOS), 112(RustDesk)
- CTs: 102(NPM), 105(zabbix), 109(Cups-Server), 110(SMB)
- Доступ: через jump-host clawdbot-1 (10.0.0.237) → sshpass
## RustDesk Server (VM 112, 192.168.1.112) — Proxmox НИИКН
- Ubuntu 24.04 (cloud-init image, cloud-init disabled after setup)
- SSH: root / 1qaz!QAZ
- Docker 29.3.0, docker-compose: /opt/rustdesk/docker-compose.yml
- RustDesk Server Pro: hbbs + hbbr (network_mode: host)
- Data: /opt/rustdesk/data/
- Public Key: ev77pauVf4fEs4YafTN9briHXjglfVsadHRletOfcUY=
- Web Console: https://rd.niikn.com (NPM proxy host #20, cert #57)
- Порты: 21114(API), 21115(NAT test), 21116(ID TCP+UDP), 21117(Relay), 21118(WS), 21119(Relay)
- MikroTik NAT: 21114-21119/tcp + 21116/udp → 192.168.1.112
- DNS: rd.niikn.com → 85.235.181.190 (Spaceweb)
- Лицензия: нужно купить Basic ($19.90/мес) и активировать
## NPM НИИКН (LXC 102, 192.168.1.22)
- Web UI: http://192.168.1.22:81
- API auth: it5870@yandex.ru / 1qaz!QAZ
- Proxy hosts: niikn.com(4), mail.niikn.com(17), matrix.niikn.com(18), lk.niikn.com(new,cert55), pve.niikn.com(11), cloud.niikn.com(10), rd.niikn.com(20,cert57) и др.
## MikroTik НИИКН (192.168.1.1)
- SSH: AI / OL260380eg
- RouterOS 7.20.6, модель hAP ac³
- WAN IP: 85.235.181.190
- NAT: 25,465,587,993,995,4190→Mailcow(192.168.1.128); 8448,3478→Matrix(192.168.1.133); 7881/tcp,50100-50200/udp→LiveKit(192.168.1.133); 3479,20000-20100,49152-49252→NC(192.168.1.200); 21114-21119/tcp+21116/udp→RustDesk(192.168.1.112)
- Hairpin NAT: NPM(80,443), TURN(3478→133), Talk TURN(3479→200), RustDesk(21114-21119→112)
## Nextcloud НИИКН (VM 108, 192.168.1.200) → см. niikn-nextcloud.md
- Домен: niikn.com, AIO порт 11000, Talk+Matterbridge, TURN: niikn.com:3479
- Netbird VPN: ip rule 172.18.0.0/16 lookup main (обязательно)
- Groupfolders: 2.9TB, 458K файлов. Диск 4.4T (85% занято)
## Gitea Knowledge Base (LXC 136, 10.0.0.189)
- URL: https://git.dttb.ru/oleg/knowledge-base
- Auth: oleg / OL260380eg
- Git remote: http://oleg:OL260380eg@10.0.0.189:3000/oleg/knowledge-base.git
- Структура: projects/dttb/, projects/niikn/, projects/krasnogorsk/, decisions/, notes/, snippets/
- Clone: git clone https://git.dttb.ru/oleg/knowledge-base.git
## Знаменское Home → см. znamenskoe-home.md
- Роутер: Cudy TR3000 v1, OpenWrt 24.10.3, Netbird: 100.70.54.204, LAN: 10.3.0.1/24
- UniFi Gateway: 10.3.0.175 (WAN) / 192.168.1.1 (LAN), cloud unifi.ui.com, Net 7.4.162
- TP-Link Deco P9: 3 ноды (.187, .196, .208)
- Windows jump: 100.70.0.106 (SSH claude/1qaz1QAZ), LAN 192.168.1.135
- ~43 устройства в 192.168.1.0/24 (камеры, IoT)
- TODO: Force Provision UniFi → SSH → полная диагностика
## Красногорск (Снегири) → см. krasnogorsk.md
- Роутер: Cudy TR3000, OpenWrt 24.10.3, Netbird: 100.70.152.137, LAN: 192.168.2.0/24
## Проект: ServiceDesk dttb → см. servicedesk-dttb.md
- Freescout (LXC 135) + clawdbot-3 (LXC 136) + support@dttb.ru + support.dttb.ru
- 3 канала: веб, Telegram (@dttb_support_bot), email
- Межботовая маршрутизация: все боты ↔ Freescout API
- Статус: ПЛАНИРОВАНИЕ
## Правило: сохранение информации
- MEMORY.md + Gitea knowledge-base (oleg/OL260380eg) + Nextcloud WebDAV infrastructure.md

View File

@@ -0,0 +1,33 @@
# Проект Красногорск (Снегири)
## Топология
- Провайдер → Deco P9 (192.168.68.1) → Cudy TR3000 (192.168.2.1) → устройства
## Deco P9 (шлюз провайдера)
- Master: MAC 14:EB:B6:DC:DC:36 ("Гараж"), Satellite: 14:EB:B6:DC:D2:10 ("Мой Гараж")
- deco P9(EU) v2.0, FW 1.3.0
- Web: https://192.168.68.1 (шифрованный API, cloud passthrough не работает)
- TP-Link Cloud: batlaew@yandex.ru / 260380Oleg
- ISP: **PPTP** (провайдер lk-telecom.ru)
- PPTP-сервер: Pptp.lk-telecom.ru, внешний IP: 185.197.35.186
- Статический IP: 192.168.87.120/24, gw 192.168.87.1
- DNS: 192.168.100.243, 192.168.100.207
- Логин/пароль PPTP: TODO — извлечь из Tether
## Cudy TR3000 (OpenWrt)
- OpenWrt 24.10.3, Hostname: OpenWrt_6
- LAN: 192.168.2.1/24, WAN: 192.168.68.100 (DHCP), MAC: 80:AF:CA:CC:D1:13
- Netbird: 100.70.152.137, AmneziaWG: 10.8.1.26
- LuCI/ubus: http://100.70.152.137 (root / 1qaz!QAZ)
- SSH: key auth настроен (claude-code ed25519), dropbear порт 22
- WiFi: open (нет шифрования!) — TODO: настроить WPA
## Задача: замена Deco P9 на MikroTik LTE
- ISP = PPTP (Pptp.lk-telecom.ru) + Static IP 192.168.87.120/24
- Primary: PPTP → 185.197.35.186, Backup: Мегафон LTE SIM
- TODO: получить PPTP логин/пароль из Tether
## Документация
- Nextcloud: Документация/Проекты/Красногорск/README.md
- Gitea: projects/krasnogorsk/README.md
- КП: КП/КП по видеонаблюдению Снегири.pdf

View File

@@ -0,0 +1,96 @@
# MAS НИИКН — ОТКАЧЕН 2026-03-05
## Статус MAS: ОТКАЧЕН (snapshot rollback)
- Proxmox snapshot `pre-mas-deploy` → восстановлен на VM 107
- msc4108_enabled: изменён на false в homeserver.yaml (без MAS вызывает краш Synapse)
- NPM server_proxy.conf удалён с LXC 102
- Nextcloud OIDC: восстановлен client "Matrix Synapse" с redirect /_synapse/client/oidc/callback
## Nextcloud Talk (VM 108, 192.168.1.200) — РАБОТАЕТ
- TURN: niikn.com:3479, secret: ebf6a8ce0fd1629c2da55356169feea7ab118a18368c2550
- STUN: stun.nextcloud.com:443 + niikn.com:3479
- Signaling: https://niikn.com/standalone-signaling/
- eturnal (TURN) внутри NC AIO Docker (172.18.0.4:3479)
- Janus (WebRTC SFU) внутри того же контейнера
## Исправление: Janus nat_1_1_mapping для внешних звонков
- **Проблема**: Janus рекламировал Docker-внутренние IP (172.18.0.4, fd74:...) как ICE кандидаты
- Внешние клиенты (iPhone по сотовой) не могли установить WebRTC соединение — ICE failed
- **Решение**: `nat_1_1_mapping = "85.235.181.190"` и `rtp_port_range = "20000-20100"` в janus.jcfg
- eturnal: `relay_ipv4_addr: "85.235.181.190"` (вместо контейнерного IP)
- Контейнер read-only rootfs → конфиг копируется в /tmp, Janus перезапускается с /tmp/janus.jcfg
- **Убран `--full-trickle`** — с ним ICE-кандидаты терялись из-за race condition в сигнальном сервере
- С full-trickle: кандидаты отправляются отдельно от SDP → "No MCU subscriber found" → потеряны
- Без full-trickle (half-trickle): кандидаты включены в SDP → доставляются надёжно
- **Автопатч**: `/opt/talk-janus-patch.sh` + systemd `talk-janus-patch.service` (enabled)
- Скрипт: ждёт контейнер → iptables DNAT+MASQUERADE → патчит eturnal.yml → копирует/патчит janus.jcfg → перезапускает Janus без --full-trickle → убивает signaling (supervisord рестартит)
## Текущее состояние Talk (2026-03-05) — ТРЕБУЕТ ДОРАБОТКИ
- Janus PID 9576: half-trickle, nat_1_1_mapping=85.235.181.190, /tmp/janus.jcfg
- Signaling PID 12313: свежий, подключён к Janus на ws://127.0.0.1:8188
- Supervisord (PID 7) управляет eturnal, nats, signaling; Janus запущен вручную (supervisord сдался после 3 попыток)
- iptables на VM 200: DNAT+FORWARD+MASQUERADE для UDP 20000:20100 и 49152:49252 → 172.18.0.4
### Нерешённые проблемы
1. **DTLS alert/timeout** — subscriber/publisher получают hangup (DTLS alert), вызов переподключается
- tcpdump подтвердил: RTP-пакеты доходят до контейнера, но DTLS handshake не завершается
- Может быть связано с MTU на сотовой сети или фрагментацией DTLS
2. **"The user is not invited to this room"** — после перезапуска signaling старые токены клиентов невалидны
- Решение: обоим участникам нужно перезагрузить страницу (F5) для получения свежего токена
- Нужно проверить работает ли после перезагрузки страниц
3. **Supervisord не управляет нашим Janus** — при краше Janus не перезапустится автоматически
- Supervisord запускает оригинальный Janus с --full-trickle и без nat_1_1_mapping
- Наш Janus запущен через docker exec -d — без автоперезапуска
- Нужно: либо модифицировать supervisord.conf (но rootfs read-only), либо обёртка-watchdog
### Что нужно сделать при возврате
- [ ] Попросить пользователя перезагрузить страницы обоих клиентов и протестировать звонок
- [ ] Если DTLS всё ещё падает — попробовать `dtls_mtu = 1200` в janus.jcfg
- [ ] Решить проблему автоперезапуска Janus (watchdog или модификация /supervisord.conf в /tmp)
- [ ] Проверить звонки LAN↔LAN, LAN↔сотовая, сотовая↔сотовая
- [ ] Обновить /opt/talk-janus-patch.sh если нужно после тестов
## Исправление: Netbird VPN ломал внешний доступ к Talk
- **Проблема**: Netbird VPN (wt0) перехватывал весь внешний трафик через таблицу маршрутизации `netbird`
- Пакеты SYN приходили через ens18 (MikroTik), но SYN-ACK уходили через wt0 (Netbird) — асимметричный роутинг
- **Диагностика**: tcpdump на bridge показал что контейнер отвечает SYN-ACK, но они не доходят до ens18
- `ip route get 194.26.100.165` → показывал `dev wt0 table netbird` вместо `dev ens18`
- **Решение**: `ip rule add from 172.18.0.0/16 lookup main priority 104`
- Постоянный скрипт: `/etc/networkd-dispatcher/routable.d/50-docker-routing.sh`
- После исправления порт 3479 открыт из Канады, Индии, Нидерландов, Турции
## MikroTik NAT правила (192.168.1.1) — ДЕЙСТВУЮЩИЕ
- Talk-TURN-TCP: dstnat 85.235.181.190:3479 → 192.168.1.200:3479
- Talk-TURN-UDP: dstnat 85.235.181.190:3479 → 192.168.1.200:3479
- Janus-RTP-UDP: dstnat 85.235.181.190:20000-20100 → 192.168.1.200
- TURN-relay-UDP: dstnat 85.235.181.190:49152-49252 → 192.168.1.200
- Hairpin Talk TURN TCP/UDP: srcnat masquerade 192.168.1.0/24 → 192.168.1.200:3479
- Matrix TURN TCP/UDP: dstnat 3478 → 192.168.1.133:3478
- Matrix Federation: dstnat 8448 → 192.168.1.133:8448
- Hairpin TURN dstnat/srcnat TCP/UDP: для 192.168.1.0/24 → 85.235.181.190:3478 → 192.168.1.133
## VM 200 UFW — открытые порты
- 22/tcp, 3479/tcp+udp, 49152:49252/udp, 20000:20100/udp — from Anywhere
- 11000 — from 192.168.1.22 (NPM)
- 80, 8080, 8443, 8000, 9443, 3389, 3390 — LAN only
- Tailscale/Netbird (wt0) — all traffic
## Element X / Element Call (2026-03-05)
- well-known `/.well-known/matrix/client` обновлён через NPM advanced_config (proxy host #18)
- Добавлено: `"org.matrix.msc4143.rtc_foci": []` — mesh mode (P2P без SFU)
- Для групповых звонков нужен LiveKit SFU (не развёрнут)
- homeserver.yaml НЕ изменён (SSH к VM 107 заблокирован fail2ban)
- Также: `msc4108_enabled: false` — QR-вход отключен (требует MAS)
## SSH доступ к VM 107 (2026-03-05) — ПРОБЛЕМА
- fail2ban забанил IP 10.0.0.237 (jump host) и 192.168.1.200 (VM 200)
- Порт 22 открыт (SSH banner отдаётся), но пароль отклоняется
- QEMU guest agent не установлен — Proxmox API exec не работает
- sshpass не установлен на Proxmox хосте (192.168.1.201)
- **Решение**: нужно разбанить IP через Proxmox console (noVNC/SPICE) или ждать expiry
## Данные MAS (для возможного повторного развёртывания)
- DB: mas/MASniikn2026
- Matrix secret: 60pMasWfQd8XUyxix932yIxsweyCG89x
- Полный конфиг: /root/mas-config.yaml
- syn2mas: 97 пользователей, 2 с паролями, 2 с OAuth

View File

@@ -0,0 +1,108 @@
# Nextcloud AIO dttb.ru (VM 250, 10.0.0.230)
## Общее
- URL: https://dttb.ru, login: admin / 1qaz!QAZ
- WebDAV: https://dttb.ru/remote.php/dav/files/admin/
- Nextcloud AIO v12.6.1, Nextcloud 32.0.6
- VM 250 на Proxmox HomeLab (10.0.0.250)
- 4 sockets x 2 cores = 8 vCPU, 16GB RAM, 100GB disk (65% used)
- Ubuntu, cloud-init, QEMU guest agent НЕ установлен
- SSH: cloud / 1qaz!QAZ (sudo через echo pipe: `echo '1qaz!QAZ' | sudo -S ...`)
- SSH root НЕ работает, ключ НЕ настроен
- Для SSH через sshpass нужно: `-o PreferredAuthentications=password` (иначе fail)
## AIO Management
- URL: https://10.0.0.230:8080 (HTTPS обязательно)
- Passphrase: raider baguette muster nanometer disallow hypnotism rut dreamless
- AIO_TOKEN: 7e40792bc68c4ce81d0588a89fa883fed1ab2b3347a1781c
- AIO_URL: 10.0.0.230:8080 (исправлено 2026-03-07, было localhost:8080)
- Патч isLoginAllowed(): return true (позволяет логин по IP при работающем NC)
- Файл: /var/www/docker-aio/php/src/Docker/DockerActionManager.php
- ВНИМАНИЕ: патч сбрасывается при обновлении mastercontainer
- Конфиг: /mnt/docker-aio-config/data/configuration.json (внутри mastercontainer)
- Также: /var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/configuration.json (на хосте)
## NPM proxy
- NPM proxy host ID:1 — dttb.ru -> http://10.0.0.230:11001
## Docker контейнеры
- nextcloud-aio-mastercontainer (порты 80, 8080, 8443, 9000)
- nextcloud-aio-apache (порт 11001)
- nextcloud-aio-nextcloud
- nextcloud-aio-database (PostgreSQL)
- nextcloud-aio-redis
- nextcloud-aio-onlyoffice
- nextcloud-aio-imaginary
- nextcloud-aio-whiteboard
- nextcloud-aio-notify-push
- nextcloud-aio-talk (порт 3479)
- nextcloud-aio-talk-recording
- nextcloud-aio-watchtower
## Конфигурация (из configuration.json)
- domain: dttb.ru
- apache_port: 11001
- talk_port: 3479
- nextcloud_datadir: /mnt/ncdata
- nextcloud_mount: /mnt/
- upload_limit: 16G
- memory_limit: 2048M
- max_time: 3600
- isOnlyofficeEnabled: true
- isImaginaryEnabled: true
- isWhiteboardEnabled: true
- isTalkEnabled: false (Talk отключен в AIO, но контейнер talk работает — legacy?)
- isCollaboraEnabled: false
- isClamavEnabled: false
## Секреты
- NEXTCLOUD_PASSWORD: 5752c16a373b465100050053e8c5805d0b40bcc20a28f59d
- ONLYOFFICE_SECRET: 84b288f6182489c3a39d109c39e11c320f610c2c9d9d3da6
- TURN_SECRET: c86fd98e4db4cba78c8b512d570d91993cc36ee999e59868
- REDIS_PASSWORD: df04c3de5d838cb263b82489d12864ec146a4389ac43227e
- DATABASE_PASSWORD: 9410ae9648674eff97f37108f770e9e63dc2136964af3f33
- BORGBACKUP_PASSWORD: 666fbf2cd2fb7633f34369a4736bfdb0b7280aef82648d94
## Почта (2026-03-07)
- Системная почта: support@dttb.ru через mail.dttb.ru:587 STARTTLS
- Mail app: аккаунт support@dttb.ru (IMAP mail.dttb.ru:993 SSL, SMTP mail.dttb.ru:587 STARTTLS)
- SSL: LE-сертификат скопирован с NPM (cert ID:106) на Mailcow
- Cron: /opt/sync-le-cert.sh на Mailcow — ежедневно 04:00 синхронизирует LE cert с NPM
- DNS override: mail.dttb.ru → 10.0.0.107 на OpenWrt (dnsmasq domain record)
- app.mail.verify-tls-peer=true (LE cert валидный)
## Home Assistant интеграция (2026-03-07)
- Приложение: integration_homeassistant v0.0.7
- HA URL: http://10.0.0.155:8123 (VM 127, haos-17.0)
- HA user: dttb / 1qaz!QAZ
- Long-Lived Access Token (365 дней, имя "Nextcloud Integration"):
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3OTgyNzZmZGE3OWM0ODgxYWU1ZGJjMWMwYTNhOWM0ZiIsImlhdCI6MTc3Mjg4OTQ4NywiZXhwIjoxODA0NDI1NDg3fQ.c_6wHfui9YJEtUJoJwbHsMnBzHET-pjEPSWqrthcH18
- Виджет "Умный дом" (Jinja2 template, обновление 60 сек):
погода, присутствие, iPhone батарея/локация, восход/закат, NC статистика (диск/RAM/CPU/онлайн)
- Виджет "Устройства" (YAML, WebSocket real-time):
медиаплееры (Спальня, VLC), камеры PVZ (6 датчиков движения), NC бинарные сенсоры
- 170 сущностей в HA: 70 sensors, 24 cameras, 39 device_trackers, 14 binary_sensors, 2 media_players, 1 weather
- NPM proxy: home.dttb.ru → http://10.0.0.155:8123 (proxy host #16)
## Troubleshooting (2026-03-07)
- Контейнеры остановились при обновлении, OnlyOffice был удалён
- Nextcloud зависал на "Waiting for OnlyOffice to become available..."
- Решение: через AIO API включить OnlyOffice, затем Stop+Start через AIO
- AIO login блокируется при работающем Apache — патч isLoginAllowed() или docker stop apache
- AIO_URL передаётся как env при создании контейнера — для обновления нужен Stop+Start через AIO
- spreed (Talk) удаляется при перезапуске если isTalkEnabled=false
## SSH команды (шаблоны)
```bash
# SSH подключение
sshpass -p '1qaz!QAZ' ssh -o StrictHostKeyChecking=no -o PreferredAuthentications=password cloud@10.0.0.230
# Docker через sudo
python3 << 'PYEOF'
import subprocess
cmd = ['sshpass', '-p', '1qaz!QAZ', 'ssh', '-o', 'StrictHostKeyChecking=no', '-o', 'PreferredAuthentications=password', 'cloud@10.0.0.230']
commands = "echo '1qaz!QAZ' | sudo -S docker ps -a --format '{{.Names}} | {{.Status}}' 2>&1 | grep -v 'пароль для'"
result = subprocess.run(cmd + [commands], capture_output=True, text=True, timeout=15)
print(result.stdout)
PYEOF
```

View File

@@ -0,0 +1,60 @@
# Nextcloud НИИКН (niikn.com)
## Инфраструктура
- Proxmox НИИКН: 192.168.1.201, root / 1qaz!QAZ, node: pve
- VM 100: Cloud-nc-AIO (running)
- VM 108: Nextclaud-AIO (running) — основной NC
- VM IP: 192.168.1.200, SSH не работает (пароль не подходит)
- AIO интерфейс: https://192.168.1.200:8080 (login заблокирован пока NC работает)
- Portainer: https://192.168.1.200:9443 (пароль admin/1qaz!QAZ не подходит)
- NC внутренний порт: http://192.168.1.200:11000
- NC Talk версия: 22.0.9
- AIO auto-login: через NC → Администрирование → Обзор (IP в ссылке 192.168.1.147, реальный 192.168.1.200)
## Другие VM на Proxmox НИИКН
| VMID | Name | Status |
|------|------|--------|
| 100 | Cloud-nc-AIO | running |
| 101 | VPN | stopped |
| 103 | Win11 | running |
| 104 | Win2025 | running |
| 106 | Mailcow | running |
| 107 | Matrix | running |
| 108 | Nextclaud-AIO | running |
| 111 | KasmOS | stopped |
## VPS 89.111.131.105 — HPB (ОТКЛЮЧЕН)
- Использовался для HPB Talk (signaling + janus + coturn + nats)
- Все сервисы остановлены и отключены (signaling, janus, nats, coturn)
- DNS: turn.niikn.com → 89.111.131.105
- Сертификат LE для turn.niikn.com (certbot)
- coturn secret: ebf6a8ce0fd1629c2da55356169feea7ab118a18368c2550
- signaling backend secret: eba8b0547b0285a475157911300720f99886fe1202a3ca98
## NC Talk — текущее состояние (2026-03-03)
- signalingMode: internal (HPB НЕ настроен)
- signaling_servers: ПУСТО (очищено при откате VPS конфига)
- stun_servers: ["stun.nextcloud.com:443"]
- turn_servers: [] (пусто)
- Встроенный AIO сигнальный сервер РАБОТАЕТ: https://niikn.com/standalone-signaling/ (v2.1.0~docker)
- signaling_token_privkey_es256: есть (JWT v2.0 auth)
- Проблема: signaling_servers не прописан → "Конфигурация Nextcloud Talk не завершена"
## Что нужно сделать для Talk
1. Через AIO интерфейс (https://192.168.1.200:8080) перезапустить контейнеры Talk
2. AIO автоматически пропишет signaling_servers с правильным shared secret
3. После этого проверить что signalingMode стал "external" и HPB работает
## История изменений
- 2026-03-03: Попытка настроить HPB на VPS для звонков через сотовую сеть
- Настроен coturn с TLS на порту 443 (turn.niikn.com)
- Отключен HTTP/2 на NPM для совместимости с Talk
- Звонки по сотовой сети так и не заработали (баг iOS Talk — IPv6 ULA, ICE timeout)
- Пользователь решил откатить: VPS не нужен, в AIO всё работало и без него
- Все VPS сервисы остановлены, signaling_servers очищены
- Осталось: перезапустить AIO контейнеры Talk чтобы восстановить встроенный HPB
## NPM (Nginx Proxy Manager)
- На 192.168.1.22 (НИИКН сеть)
- HTTP/2 отключен для niikn.com (для совместимости с Talk)
- Файл: /data/compose/2/data/nginx/proxy_host/4.conf

View File

@@ -0,0 +1,68 @@
# Проект: ServiceDesk dttb
Статус: ПЛАНИРОВАНИЕ (создан 2026-03-09)
## Концепция
Единая система приёма и обработки заявок от клиентов через 3 канала:
- Веб-портал (support.dttb.ru) — чат-виджет, форма заявки, FAQ, проверка статуса
- Telegram — новый бот @dttb_support_bot (AI на Claude)
- Email — support@dttb.ru (через Mailcow)
## Архитектура
- **Freescout** — бэкенд (тикеты, очереди, SLA, отчёты, операторы)
- **Новый Telegram-бот (clawdbot-3)** — AI-фронт для клиентов
- **Существующие боты** — маршрутизация заявок между организациями
## Компоненты
| Компонент | Где | VMID | IP | Статус |
|-----------|-----|------|----|--------|
| Freescout + веб-портал | LXC, домашний Proxmox | 135 (план) | TBD | Не создан |
| clawdbot-3 (support bot) | LXC, домашний Proxmox | 136 (план) | TBD | Не создан |
| support@dttb.ru | Mailcow VM 107 | 107 | 10.0.0.107 | Не создан |
| support.dttb.ru | NPM CT 103 | 103 | 10.0.0.195 | Не создан |
## Очереди Freescout
- **Клиенты (public)** — внешние заявки (веб, Telegram, email)
- **НИИКН** — внутренние заявки НИИКН (от clawdbot-1)
- **ЧОП** — заявки по охране/камерам (от clawdbot-2)
## Межботовая маршрутизация
- Все боты общаются через Freescout API (единый хаб)
- clawdbot-3 → Freescout → очередь по категории → нужный бот/оператор
- clawdbot-1 (НИИКН) может создать тикет в очередь ЧОП и наоборот
- Webhook из Freescout → бот уведомляет клиента о решении
## Модули Freescout (платные, разово ~$76)
- Live Chat ($19) — виджет чата на сайте
- Telegram ($15) — интеграция с ботом
- Contact Form ($9) — веб-форма заявки
- Knowledge Base ($19) — FAQ на сайте
- Auto Reply ($5) — «Заявка #N принята»
- Satisfaction ($9) — оценка качества
## Новый бот (clawdbot-3)
- Telegram: @dttb_support_bot (зарегистрировать в BotFather)
- Модель: cliproxy/claude-sonnet-4-6 (через CLIProxy на 129:8317)
- Персона: вежливый формальный саппорт, без доступа к инфраструктуре
- Skill: helpdesk (работа с Freescout API)
- Не знает паролей/IP, не выполняет команды — только общение + тикеты
## Веб-портал (support.dttb.ru)
- Чат-виджет (Freescout Live Chat)
- Форма заявки (имя, email, тема, описание)
- FAQ / база знаний
- Проверка статуса заявки по номеру
- Ссылки на Telegram-бот и email
## План развёртывания
1. [ ] Создать LXC 135 на домашнем Proxmox → Freescout (PHP+MariaDB+Nginx)
2. [ ] Настроить support.dttb.ru в NPM
3. [ ] Создать support@dttb.ru в Mailcow, подключить IMAP к Freescout
4. [ ] Купить и установить модули Freescout (Telegram, Live Chat, KB, etc.)
5. [ ] Зарегистрировать @dttb_support_bot в BotFather
6. [ ] Создать LXC 136 → clawdbot-3 (клон шаблона clawdbot)
7. [ ] Написать skill helpdesk (Freescout API: create/read/update тикеты)
8. [ ] Написать SOUL.md — персона публичного саппорта
9. [ ] Подключить clawdbot-1 и clawdbot-2 к Freescout API
10. [ ] Сверстать веб-портал support.dttb.ru
11. [ ] Тестирование полного цикла: заявка → AI-обработка → эскалация → решение → уведомление

View File

@@ -0,0 +1,39 @@
# Видеонаблюдение Знаменское — ключевая информация
## VPS для видеонаблюдения
- IP: 89.111.140.86 (другой VPS, НЕ 89.111.131.105 который для NC Talk)
- SSH: ключ id_rsa
- WireGuard: wg0, 10.5.0.1/24, порт 51820/UDP
- Конфиг WG: /etc/wireguard/wg0.conf
- iptables: /etc/iptables/rules.v4
## Локация 1: Знаменское 29 (WG 10.5.0.2)
- 1 камера HiWatch: 192.168.88.42 (admin/1qaz!QAZ)
- Mikrotik: 192.168.88.1 (admin/admin01)
- Внешний доступ: :8080(web) :8082(SDK) :8554(RTSP)
## Локация 2: Охотхозяйство (WG 10.5.0.3)
- NVR: 192.168.8.247 (admin/1qaz!QAZ)
- Mikrotik: 192.168.8.1 (admin/1qaz!QAZ)
- OpenWrt NetBird: 192.168.8.108 (root/1qaz!QAZ)
- 6 камер: .2, .3, .102, .110, .113, .120
- Внешний доступ NVR: :8180(web) :8100(SDK) :8555(RTSP)
- Камеры напрямую: RTSP :8561-8566, SDK :8201-8206
## Локация 3: Знаменское Home (WG 10.5.0.4)
- NVR: 192.168.1.123 (admin/1qaz!QAZ)
- ONT Huawei: 192.168.100.1 (root/admin)
- OpenWrt_3 WAN: 192.168.100.3 (root/1qaz!QAZ), LAN: 10.3.0.1, NetBird: 100.70.54.204
- UDM Pro: 10.3.0.175 (SSH: k9gLi2C / xdjM0eQkIeZfmCFBYo9DP)
- WG приватный ключ: 4C9B6iHRRARQfFGBoXimIeznJKj8NX7QmUBW3O+pklE=
- Внешний доступ NVR: :8280(web) :8282(SDK) :8284(RTSP)
- Цепочка: VPS → WG → OpenWrt_3 → UDM Pro → NVR
## Особенности
- UDM Pro: SSH работает, но веб-интерфейс Ubiquiti не работает
- OpenWrt_3: podkop/sing-box может мешать TCP, при проблемах: service podkop stop; service sing-box stop
- NetBird маршрут NIIKN для 192.168.1.0/24 деселектирован (конфликт с WG)
- Huawei ONT иногда зависает — перезагрузка помогает
## Документация
- Nextcloud: Документация/Проекты/videonablyudenie-znam.md

View File

@@ -0,0 +1,70 @@
# Знаменское Home — сетевая инфраструктура
## Статус: ожидание provision UniFi (2026-03-09)
- Нужно: Force Provision UniFi gateway через unifi.ui.com → Devices
- После этого SSH-ключи применятся и можно продолжить
## Роутер Cudy TR3000 v1 (OpenWrt 24.10.3)
- Netbird: 100.70.54.204, SSH: root / 1qaz!QAZ (ключ установлен)
- WAN: 192.168.100.2 (DHCP от ISP router 192.168.100.1, MAC 38:4c:4f:0e:7f:b8)
- LAN: 10.3.0.1/24 (br-lan, eth1)
- Wi-Fi: ВЫКЛЮЧЕН (radio0 2g + radio1 5g disabled)
- VPN: AmneziaWG (awg0, 10.8.1.7 → 202.71.12.186:37209), WireGuard (wg0, 10.5.0.4 → 89.111.140.86:51821)
- Netbird: wt0, 100.70.54.204
- Podkop v0.6.2: VLESS-Reality proxy + awg0 VPN, community lists: russia_inside, hodca
- DNS: через podkop (127.0.0.42), bootstrap 77.88.8.8
- Route: 192.168.1.0/24 via 10.3.0.175 (UniFi)
- Единственный клиент на LAN: 10.3.0.175 (UniFi, MAC 9c:05:d6:ac:98:b8)
## UniFi Gateway (10.3.0.175 WAN / 192.168.1.1 LAN)
- MAC: 9c:05:d6:ac:98:b8 (Ubiquiti)
- Cloud-managed: unifi.ui.com, Network 7.4.162
- SSH: admin, пароль установлен 1qaz!QAZ (но не работает — нужен provision)
- SSH-ключи добавлены: claude-code (RSA 4096), windows-claude (RSA 2048)
- Все порты закрыты с WAN (10.3.0.x) стороны — управление только с LAN или cloud
- Firewall rule "Allow SSH WAN" создан (тип "Интернет подключен", TCP 22)
- Шлюз для сети 192.168.1.0/24
## TP-Link Deco P9 (3 ноды)
- 192.168.1.187 — HTTPS /webpages/index.html (tpEncrypt.js)
- 192.168.1.196 — HTTPS /webpages/index.html
- 192.168.1.208 — HTTPS /webpages/index.html
## Устройства в сети 192.168.1.0/24 (из Cudy ping sweep, ~43 хоста)
### HTTP 200 (вероятно камеры):
192.168.1.20, .40, .41, .42, .46, .47, .49, .56, .57, .58, .63, .64, .69, .70, .100, .101, .123
- 192.168.1.100: NETSurveillance WEB (NVR/DVR)
- 192.168.1.123: web interface (без title)
### HTTP 307 → HTTPS (TP-Link Deco):
192.168.1.187, .196, .208
### SSH open (ssh-rsa,ssh-dss — возможно камеры):
192.168.1.16, .66, .96, .173, .213, .220
### Без HTTP/SSH (IoT/прочее):
192.168.1.7, .29, .38, .75, .114, .119, .127, .133, .135, .142, .155, .173, .188, .189, .239, .246, .248, .252
## Windows jump host
- Netbird: 100.70.0.106
- LAN: 192.168.1.135
- Hostname: DESKTOP-AGBMLPN
- SSH: claude / 1qaz1QAZ (OpenSSH Server установлен)
- Назначение: видеонаблюдение для ЧОП
- Пользователь HP без пароля (основной)
## Известные проблемы
1. Wi-Fi на Cudy выключен — нормально, раздаёт UniFi/Deco
2. UniFi SSH не применён — нужен Force Provision
3. Cudy RAM 497MB, load ~1.0 — норма
4. dmesg ошибка: RTL8221B-VB-CG 2.5Gbps PHY config_init failed: -110 (возможно не критично)
5. odhcpd: "No default route present, overriding ra_lifetime to 0!" (IPv6 RA issue)
## TODO после provision UniFi
- SSH на UniFi → получить полную конфигурацию
- Определить модель UniFi (UDM/USG/UDR)
- Получить DHCP leases с UniFi
- Проверить конфигурацию Wi-Fi
- Проверить TP-Link Deco P9 (mesh, каналы, проблемы)
- Составить полную топологию
- Сканировать на проблемы