NetBird VPN inventory + cleanup report 13.03.2026
- Full peer inventory (44 active peers) - Groups mapping - Deleted 12 stale peers (6+ months offline) - Also staged pending NIIKN and video surveillance docs
This commit is contained in:
169
projects/dttb/netbird-inventory.md
Normal file
169
projects/dttb/netbird-inventory.md
Normal file
@@ -0,0 +1,169 @@
|
||||
# NetBird VPN — Инвентаризация
|
||||
|
||||
**Дата:** 2026-03-13 19:46 UTC
|
||||
**Всего пиров:** 44
|
||||
**Онлайн:** 23
|
||||
**Оффлайн:** 21
|
||||
|
||||
## Онлайн пиры
|
||||
|
||||
| Имя | IP | ОС | Город | Версия |
|
||||
|-----|----|----|-------|--------|
|
||||
| 89-111-140-86.swtest.ru | 100.70.93.36 | Ubuntu 24.04 | Moscow | 0.65.1 |
|
||||
| Cloud-NIIKN New niikn.com | 100.70.117.21 | Ubuntu 24.04 | | 0.65.3 |
|
||||
| DESKTOP-2IOQS54 | 100.70.82.83 | Windows 10 | Saransk | 0.50.3 |
|
||||
| DESKTOP-AGBMLPN | 100.70.0.106 | Windows 11 | Helsinki | 0.66.2 |
|
||||
| DESKTOP-HL0BB05 | 100.70.235.80 | Windows 11 | Lipetsk | 0.59.7 |
|
||||
| Kripto-ARM | 100.70.145.223 | Windows 11 | | 0.54.0 |
|
||||
| MacBook-Pro | 100.70.242.212 | Darwin 26.3.1 | Istra | 0.65.3 |
|
||||
| OpenWrt 1 | 100.70.239.211 | OpenWrt 24.10.3 | Moscow | 0.50.2 |
|
||||
| OpenWrt Benilux | 100.70.207.97 | OpenWrt 24.10.3 | Istra | 0.59.13 |
|
||||
| OpenWrt Вишневый сад ( Константин ) | 100.70.152.137 | OpenWrt 24.10.3 | Moscow | 0.59.12 |
|
||||
| OpenWrt_4 | 100.70.235.2 | OpenWrt 24.10.3 | Moscow | 0.50.2 |
|
||||
| OpenWrt_Lipki | 100.70.35.234 | OpenWrt 24.10.3 | Istra | 0.59.13 |
|
||||
| OpenWrt_Sergey | 100.70.110.164 | OpenWrt 24.10.3 | Odintsovo | 0.59.12 |
|
||||
| OpenWrt_Znamenskoe_Home | 100.70.54.204 | OpenWrt 24.10.3 | Moscow | 0.50.2 |
|
||||
| OpenWrt_ohothozyistvo | 100.70.63.67 | OpenWrt 21.02.1 | Istra | 0.36.5 |
|
||||
| clawdbot-1 | 100.70.200.150 | Debian GNU/Linux 12 | Istra | 0.65.2 |
|
||||
| cloud | 100.70.152.70 | Ubuntu 24.04 | | 0.66.3 |
|
||||
| code-server | 100.70.92.138 | Ubuntu 24.04 | Istra | 0.66.0 |
|
||||
| finland5870.com | 100.70.0.15 | Ubuntu 22.04 | Helsinki | 0.62.3 |
|
||||
| netbird-29-HP | 100.70.137.181 | Ubuntu 24.04 | Moscow | 0.64.5 |
|
||||
| pve LionART | 100.70.128.49 | Debian GNU/Linux 12 | Istra | 0.59.6 |
|
||||
| pve ded_mozay | 100.70.121.235 | Debian GNU/Linux 13 | Istra | 0.28.6 |
|
||||
| rustdeskserver | 100.70.191.161 | Debian GNU/Linux 12 | Istra | 0.66.0 |
|
||||
|
||||
## Оффлайн пиры
|
||||
|
||||
| Имя | IP | ОС | Последний раз онлайн | Город |
|
||||
|-----|----|----|---------------------|-------|
|
||||
| MacBook-Pro-Vera.local | 100.70.252.228 | Darwin 26.3.1 | 2026-03-13 | St Petersburg |
|
||||
| LAPTOP-3IR5EA9J | 100.70.149.179 | Windows 11 | 2026-03-13 | Mérida |
|
||||
| iPhone-netbird | 100.70.18.13 | iOS 26.3.1 | 2026-03-13 | |
|
||||
| Znamenskoe | 100.70.100.155 | Debian GNU/Linux 11 | 2026-03-13 | Helsinki |
|
||||
| clawdbot | 100.70.219.93 | Debian GNU/Linux 12 | 2026-03-13 | Istra |
|
||||
| pve-niikn | 100.70.120.229 | Debian GNU/Linux 12 | 2026-03-13 | Istra |
|
||||
| WIN-BC0OTBOBBCH | 100.70.181.152 | Windows Server 2025 | 2026-03-13 | Moscow |
|
||||
| DESKTOP-LBD73OR | 100.70.78.170 | Windows 11 | 2026-03-13 | Astana |
|
||||
| Kolyadenko | 100.70.146.58 | Windows 10 | 2026-03-10 | |
|
||||
| KOMPUTER | 100.70.83.120 | Windows 11 | 2026-03-10 | St Petersburg |
|
||||
| iPhone-batlaew | 100.70.57.167 | iOS 26.3.1 | 2026-03-10 | Istra |
|
||||
| Work Server dttb | 100.70.12.3 | Windows Server 2025 | 2026-03-09 | Istra |
|
||||
| Денис Тихая | 100.70.155.107 | Windows 10 | 2026-02-28 | |
|
||||
| iPad-batlaew | 100.70.211.159 | iPadOS 18.6.2 | 2026-02-25 | Istra |
|
||||
| DESKTOP-IC5A0K2 M.Maul | 100.70.178.190 | Windows 10 | 2026-02-24 | |
|
||||
| kasm | 100.70.121.49 | Ubuntu 24.04 | 2026-02-23 | |
|
||||
| DESKTOP-5RGAUUG | 100.70.221.26 | Windows 11 | 2026-02-18 | Istra |
|
||||
| pdm | 100.70.128.10 | Debian GNU/Linux 13 | 2026-02-10 | Istra |
|
||||
| Cups-Server | 100.70.100.82 | Ubuntu 22.04 | 2025-12-22 | |
|
||||
| MastaNotebook | 100.70.116.166 | Windows 11 | 2025-10-24 | Moscow |
|
||||
| DESKTOP-9VJ949T скоморохова | 100.70.44.183 | Windows 10 | 2025-09-23 | St Petersburg |
|
||||
|
||||
## Группы
|
||||
|
||||
### All (44 пиров)
|
||||
- 89-111-140-86.swtest.ru
|
||||
- Cloud-NIIKN New niikn.com
|
||||
- Cups-Server
|
||||
- DESKTOP-2IOQS54
|
||||
- DESKTOP-5RGAUUG
|
||||
- DESKTOP-9VJ949T скоморохова
|
||||
- DESKTOP-AGBMLPN
|
||||
- DESKTOP-HL0BB05
|
||||
- DESKTOP-IC5A0K2 M.Maul
|
||||
- DESKTOP-LBD73OR
|
||||
- KOMPUTER
|
||||
- Kolyadenko
|
||||
- Kripto-ARM
|
||||
- LAPTOP-3IR5EA9J
|
||||
- MacBook-Pro
|
||||
- MacBook-Pro-Vera.local
|
||||
- MastaNotebook
|
||||
- OpenWrt 1
|
||||
- OpenWrt Benilux
|
||||
- OpenWrt Вишневый сад ( Константин )
|
||||
- OpenWrt_4
|
||||
- OpenWrt_Lipki
|
||||
- OpenWrt_Sergey
|
||||
- OpenWrt_Znamenskoe_Home
|
||||
- OpenWrt_ohothozyistvo
|
||||
- WIN-BC0OTBOBBCH
|
||||
- Work Server dttb
|
||||
- Znamenskoe
|
||||
- clawdbot
|
||||
- clawdbot-1
|
||||
- cloud
|
||||
- code-server
|
||||
- finland5870.com
|
||||
- iPad-batlaew
|
||||
- iPhone-batlaew
|
||||
- iPhone-netbird
|
||||
- kasm
|
||||
- netbird-29-HP
|
||||
- pdm
|
||||
- pve LionART
|
||||
- pve ded_mozay
|
||||
- pve-niikn
|
||||
- rustdeskserver
|
||||
- Денис Тихая
|
||||
|
||||
### Lion ART (4 пиров)
|
||||
- DESKTOP-5RGAUUG
|
||||
- DESKTOP-HL0BB05
|
||||
- KOMPUTER
|
||||
- Денис Тихая
|
||||
|
||||
### NIIKN (14 пиров)
|
||||
- Cloud-NIIKN New niikn.com
|
||||
- DESKTOP-2IOQS54
|
||||
- DESKTOP-9VJ949T скоморохова
|
||||
- DESKTOP-AGBMLPN
|
||||
- DESKTOP-IC5A0K2 M.Maul
|
||||
- DESKTOP-LBD73OR
|
||||
- Kolyadenko
|
||||
- Kripto-ARM
|
||||
- LAPTOP-3IR5EA9J
|
||||
- MacBook-Pro-Vera.local
|
||||
- MastaNotebook
|
||||
- cloud
|
||||
- iPhone-netbird
|
||||
- pve-niikn
|
||||
|
||||
### OpenWRT VPN (3 пиров)
|
||||
- OpenWrt 1
|
||||
- OpenWrt_4
|
||||
- OpenWrt_Lipki
|
||||
|
||||
### Trance (4 пиров)
|
||||
- Cloud-NIIKN New niikn.com
|
||||
- MacBook-Pro
|
||||
- cloud
|
||||
- finland5870.com
|
||||
|
||||
### Москва (5 пиров)
|
||||
- DESKTOP-9VJ949T скоморохова
|
||||
- DESKTOP-LBD73OR
|
||||
- LAPTOP-3IR5EA9J
|
||||
- MacBook-Pro-Vera.local
|
||||
- MastaNotebook
|
||||
|
||||
### Эстония (3 пиров)
|
||||
- DESKTOP-5RGAUUG
|
||||
- DESKTOP-LBD73OR
|
||||
- pve ded_mozay
|
||||
|
||||
## Удалённые пиры (13.03.2026)
|
||||
|
||||
Удалено 12 устройств, оффлайн более 6 месяцев:
|
||||
- **DESKTOP-V81SJVM** (Win 11) — оффлайн 331 дн.
|
||||
- **Argo** (Win 11) — оффлайн 309 дн.
|
||||
- **cloud TEST** (Ubuntu 24.04) — оффлайн 272 дн.
|
||||
- **DESKTOP-D6NU2ET** (Win 10) — оффлайн 252 дн.
|
||||
- **iPhone-netbird (iOS 18.5)** (iOS) — оффлайн 252 дн.
|
||||
- **iPhone-batlaew (iOS 18.5)** (iOS) — оффлайн 246 дн.
|
||||
- **n8n** (Debian 12) — оффлайн 230 дн.
|
||||
- **DESKTOP-6R986PD** (Win 10) — оффлайн 227 дн.
|
||||
- **pve HP** (Debian 12) — оффлайн 214 дн.
|
||||
- **DESKTOP-1P2TPIM** (Win 11) — оффлайн 211 дн.
|
||||
- **iPhone-batlaew (iOS 18.6)** (iOS) — оффлайн 211 дн.
|
||||
- **DESKTOP-80JEBOL** (Win 10) — оффлайн 186 дн.
|
||||
@@ -19,21 +19,26 @@ AI-бот в Nextcloud Talk с доступом к базе знаний. Отв
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### Запуск бота
|
||||
### Запуск бота (systemd)
|
||||
```bash
|
||||
# На LXC 129 (clawdbot, 10.0.0.206)
|
||||
nohup python3 -u /root/clawd/scripts/nextcloud-talk-bot.py > /tmp/talk-bot.log 2>&1 &
|
||||
systemctl start nextcloud-talk-bot
|
||||
```
|
||||
|
||||
### Проверка
|
||||
```bash
|
||||
cat /tmp/talk-bot.log | tail -20
|
||||
pgrep -f nextcloud-talk-bot
|
||||
systemctl status nextcloud-talk-bot
|
||||
tail -20 /tmp/talk-bot.log
|
||||
```
|
||||
|
||||
### Остановка
|
||||
```bash
|
||||
pkill -f nextcloud-talk-bot
|
||||
systemctl stop nextcloud-talk-bot
|
||||
```
|
||||
|
||||
### Ручной запуск (без systemd)
|
||||
```bash
|
||||
nohup python3 -u /root/clawd/scripts/nextcloud-talk-bot.py > /tmp/talk-bot.log 2>&1 &
|
||||
```
|
||||
|
||||
### Обновить базу знаний (из чата Talk)
|
||||
@@ -205,7 +210,13 @@ Nextcloud Talk Bot API поддерживает webhooks, но в AIO (Docker) s
|
||||
Причина: cliproxy не передаёт system prompt. Решение: KB как первое user/assistant сообщение.
|
||||
|
||||
### Бот не запускается после перезагрузки
|
||||
Нужен systemd сервис (TODO).
|
||||
**Решено:** Создан systemd сервис `nextcloud-talk-bot.service` с `Restart=always`.
|
||||
```bash
|
||||
systemctl enable nextcloud-talk-bot # автозапуск при старте
|
||||
systemctl start nextcloud-talk-bot # запуск
|
||||
systemctl status nextcloud-talk-bot # проверка
|
||||
```
|
||||
Файл сервиса: `/etc/systemd/system/nextcloud-talk-bot.service`
|
||||
|
||||
---
|
||||
|
||||
@@ -238,9 +249,26 @@ $EXEC php occ talk:bot:uninstall {BOT_ID}
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### 2026-02-27
|
||||
- ✅ Создан systemd сервис `nextcloud-talk-bot.service` — автозапуск, restart при падении
|
||||
- ✅ Бот работает стабильно через polling
|
||||
|
||||
### 2026-02-26 / 2026-02-27 (ночь)
|
||||
- ✅ Первоначальная разработка и запуск
|
||||
- ✅ Зарегистрирован бот "Максимка" в Nextcloud Talk
|
||||
- ✅ Webhook не работает в AIO Docker → переход на polling
|
||||
- ✅ Создан пользователь `maximka` для отправки ответов
|
||||
- ✅ Подключена база знаний (knowledge-base) через git
|
||||
- ✅ Claude Sonnet через cliproxy (localhost:8317)
|
||||
- ✅ Команда `/reload` для обновления KB
|
||||
- ✅ История контекста (10 пар сообщений)
|
||||
- ✅ Фильтрация своих сообщений и ботов
|
||||
|
||||
## TODO
|
||||
- [ ] Systemd сервис для автозапуска
|
||||
- [ ] Поддержка нескольких чатов
|
||||
- [ ] Аватар для пользователя maximka
|
||||
- [ ] Интеграция с основным Clawdbot (через hooks или sessions)
|
||||
- [ ] Возможность выполнять команды (не только отвечать)
|
||||
- [ ] Persistent history (сохранение истории между перезапусками)
|
||||
|
||||
291
projects/dttb/video-surveillance-report.md
Normal file
291
projects/dttb/video-surveillance-report.md
Normal file
@@ -0,0 +1,291 @@
|
||||
# Система видеонаблюдения — Полный отчёт
|
||||
> Дата: 16 февраля 2026
|
||||
> Статус: Все 3 локации подключены
|
||||
|
||||
---
|
||||
|
||||
## Общая архитектура
|
||||
|
||||
Три удалённые локации объединены через VPN-туннели WireGuard к единому VPS-серверу со статическим IP.
|
||||
VPS выступает точкой агрегации: принимает внешние подключения из интернета и пробрасывает их через DNAT к камерам и регистраторам в локальных сетях.
|
||||
|
||||
```
|
||||
┌──────────────────────────────┐
|
||||
│ VPS 89.111.140.86 │
|
||||
│ WireGuard: 10.5.0.1 │
|
||||
│ NetBird: 100.70.93.36 │
|
||||
│ Ubuntu 24.04.3 LTS │
|
||||
└───┬──────────┬──────────┬────┘
|
||||
│ │ │
|
||||
10.5.0.2 10.5.0.3 10.5.0.4
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌──────────┐ ┌──────────┐ ┌──────────────┐
|
||||
│Знаменск29│ │Охотхоз-во│ │Знаменск Home │
|
||||
│Mikrotik │ │Mikrotik │ │ONT→OpenWrt→WG│
|
||||
│1 камера │ │NVR+6 кам │ │UDM Pro → NVR │
|
||||
└──────────┘ └──────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## VPS-сервер
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| IP-адрес | 89.111.140.86 |
|
||||
| ОС | Ubuntu 24.04.3 LTS, ядро 6.17.0-14-generic |
|
||||
| SSH | Ключ /Users/ai/Downloads/id_rsa |
|
||||
| WireGuard | wg0, порт 51820/UDP, IP 10.5.0.1/24 |
|
||||
| Публичный ключ WG | v95Qiu4diw2EBghyQK4obptxnJ7EhAAUXxNflMS0DTw= |
|
||||
| NetBird | 100.70.93.36 |
|
||||
| Конфиг WG | /etc/wireguard/wg0.conf |
|
||||
| Правила iptables | /etc/iptables/rules.v4 |
|
||||
|
||||
---
|
||||
|
||||
## Локация 1: Знаменское 29
|
||||
|
||||
### Оборудование
|
||||
|
||||
| Устройство | IP-адрес | Логин / Пароль |
|
||||
|-----------|----------|----------------|
|
||||
| Камера HiWatch (1 шт.) | 192.168.88.42 | admin / 1qaz!QAZ |
|
||||
| Mikrotik | 192.168.88.1 | admin / admin01 |
|
||||
|
||||
### Подключение к VPS
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| WireGuard IP | 10.5.0.2 |
|
||||
| Публичный ключ | 5ZFvQNSCyJwRn3IdLrxFzFh+BEFeejA8VzUoV5a++jY= |
|
||||
| Локальная подсеть | 192.168.88.0/24 |
|
||||
|
||||
### Схема
|
||||
|
||||
Простейшая из трёх локаций. Mikrotik поднимает WireGuard-туннель напрямую к VPS.
|
||||
Один роутер, одна камера.
|
||||
|
||||
```
|
||||
Интернет → VPS (89.111.140.86)
|
||||
│ DNAT
|
||||
▼
|
||||
WireGuard туннель
|
||||
│
|
||||
▼
|
||||
Mikrotik (192.168.88.1)
|
||||
│
|
||||
▼
|
||||
Камера HiWatch (192.168.88.42)
|
||||
```
|
||||
|
||||
### Внешний доступ
|
||||
|
||||
| Сервис | Адрес | Проброс на |
|
||||
|--------|-------|-----------|
|
||||
| Веб-интерфейс | http://89.111.140.86:8080 | 192.168.88.42:80 |
|
||||
| SDK (iVMS-4200) | 89.111.140.86:8082 | 192.168.88.42:8000 |
|
||||
| RTSP-поток | 89.111.140.86:8554 | 192.168.88.42:554 |
|
||||
|
||||
RTSP-ссылка: `rtsp://admin:1qaz!QAZ@89.111.140.86:8554/Streaming/Channels/101`
|
||||
|
||||
---
|
||||
|
||||
## Локация 2: Охотхозяйство
|
||||
|
||||
### Оборудование
|
||||
|
||||
| Устройство | IP-адрес | Логин / Пароль |
|
||||
|-----------|----------|----------------|
|
||||
| NVR HiWatch DS-N316(D) | 192.168.8.247 | admin / 1qaz!QAZ |
|
||||
| Mikrotik | 192.168.8.1 | admin / 1qaz!QAZ |
|
||||
| OpenWrt (NetBird хост) | 192.168.8.108 | root / 1qaz!QAZ |
|
||||
| Камера 1 | 192.168.8.2 | — |
|
||||
| Камера 2 | 192.168.8.3 | — |
|
||||
| Камера 3 | 192.168.8.102 | — |
|
||||
| Камера 4 | 192.168.8.110 | — |
|
||||
| Камера 5 | 192.168.8.113 | — |
|
||||
| Камера 6 | 192.168.8.120 | — |
|
||||
|
||||
### Подключение к VPS
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| WireGuard IP | 10.5.0.3 |
|
||||
| Публичный ключ | zZ4UoWNwTxBODr8xZmoCREBL2zXJcmdcxKIPGp/xBC8= |
|
||||
| Локальная подсеть | 192.168.8.0/24 |
|
||||
|
||||
### Схема
|
||||
|
||||
Mikrotik поднимает WireGuard-туннель к VPS. OpenWrt обеспечивает NetBird-доступ для удалённого управления.
|
||||
На VPS DNAT пробрасывает порты как NVR, так и каждой камеры индивидуально.
|
||||
|
||||
```
|
||||
Интернет → VPS (89.111.140.86)
|
||||
│ DNAT
|
||||
▼
|
||||
WireGuard туннель
|
||||
│
|
||||
▼
|
||||
Mikrotik (192.168.8.1)
|
||||
│
|
||||
┌─────┼──────────────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
NVR Камеры 1-6 OpenWrt (NetBird)
|
||||
(.247) (.2,.3,.102,.110, (.108)
|
||||
.113,.120)
|
||||
```
|
||||
|
||||
### Внешний доступ к NVR
|
||||
|
||||
| Сервис | Адрес | Проброс на |
|
||||
|--------|-------|-----------|
|
||||
| Веб-интерфейс | http://89.111.140.86:8180 | 192.168.8.247:80 |
|
||||
| SDK (iVMS-4200) | 89.111.140.86:8100 | 192.168.8.247:8000 |
|
||||
| RTSP-поток | 89.111.140.86:8555 | 192.168.8.247:554 |
|
||||
|
||||
RTSP NVR (каналы 1-6):
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/101`
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/201`
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/301`
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/401`
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/501`
|
||||
- `rtsp://admin:1qaz!QAZ@89.111.140.86:8555/Streaming/Channels/601`
|
||||
|
||||
### Внешний доступ к камерам напрямую
|
||||
|
||||
| Камера | IP | RTSP-порт VPS | SDK-порт VPS |
|
||||
|--------|-----|--------------|-------------|
|
||||
| 1 | 192.168.8.2 | 8561 | 8201 |
|
||||
| 2 | 192.168.8.3 | 8562 | 8202 |
|
||||
| 3 | 192.168.8.102 | 8563 | 8203 |
|
||||
| 4 | 192.168.8.110 | 8564 | 8204 |
|
||||
| 5 | 192.168.8.113 | 8565 | 8205 |
|
||||
| 6 | 192.168.8.120 | 8566 | 8206 |
|
||||
|
||||
---
|
||||
|
||||
## Локация 3: Знаменское Home
|
||||
|
||||
### Оборудование
|
||||
|
||||
| Устройство | IP-адрес | Логин / Пароль |
|
||||
|-----------|----------|----------------|
|
||||
| NVR HiWatch DS-N316(D) | 192.168.1.123 | admin / 1qaz!QAZ |
|
||||
| Huawei HG8245H (ONT) | 192.168.100.1 | root / admin |
|
||||
| OpenWrt_3 (WAN) | 192.168.100.3 | root / 1qaz!QAZ |
|
||||
| OpenWrt_3 (LAN) | 10.3.0.1 | — |
|
||||
| OpenWrt_3 (NetBird) | 100.70.54.204 | — |
|
||||
| UDM Pro (Ubiquiti) | 10.3.0.175 | SSH: k9gLi2C / xdjM0eQkIeZfmCFBYo9DP |
|
||||
|
||||
| Параметр NVR | Значение |
|
||||
|-------------|----------|
|
||||
| Серийный номер | DS-N316(D)1620250625CCRRGC0949997WCVU |
|
||||
| Прошивка | V4.76.015 (build 250210) |
|
||||
|
||||
### Подключение к VPS
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| WireGuard IP | 10.5.0.4 |
|
||||
| Публичный ключ | HRsAUPwDOh+36EoHrXVYY5t6YVdb612N+E+3I+o6RTw= |
|
||||
| Приватный ключ | 4C9B6iHRRARQfFGBoXimIeznJKj8NX7QmUBW3O+pklE= |
|
||||
| Локальные подсети | 192.168.1.0/24, 192.168.100.0/24 |
|
||||
|
||||
### Топология
|
||||
|
||||
Самая сложная из трёх локаций. Провайдерский GPON-терминал Huawei раздаёт интернет.
|
||||
За ним OpenWrt_3 поднимает WireGuard-туннель к VPS. На LAN-стороне OpenWrt_3 стоит
|
||||
Ubiquiti UDM Pro, за которым NVR на подсети 192.168.1.0/24.
|
||||
|
||||
```
|
||||
Интернет
|
||||
│
|
||||
▼
|
||||
Huawei HG8245H ONT (192.168.100.1)
|
||||
│ Провайдерский GPON-терминал
|
||||
│ LAN: 192.168.100.0/24
|
||||
▼
|
||||
OpenWrt_3
|
||||
│ WAN: 192.168.100.3
|
||||
│ LAN: 10.3.0.1
|
||||
│ WireGuard wg0 → VPS (10.5.0.4 ↔ 10.5.0.1)
|
||||
│ AmneziaWG awg0 (10.8.1.7)
|
||||
│ NetBird wt0 (100.70.54.204)
|
||||
│ Podkop + sing-box (обход блокировок)
|
||||
│
|
||||
│ LAN: 10.3.0.0/24
|
||||
▼
|
||||
UDM Pro (10.3.0.175)
|
||||
│ MAC: 9c:05:d6:ac:98:b8
|
||||
│ LAN: 192.168.1.0/24
|
||||
▼
|
||||
NVR HiWatch DS-N316(D) (192.168.1.123)
|
||||
```
|
||||
|
||||
### Цепочка трафика
|
||||
|
||||
`Интернет → VPS (DNAT) → WireGuard → OpenWrt_3 → UDM Pro → NVR`
|
||||
|
||||
### Ключевые настройки
|
||||
|
||||
| Элемент | Настройка |
|
||||
|---------|-----------|
|
||||
| Маршрут на OpenWrt_3 | 192.168.1.0/24 via 10.3.0.175 (UCI persistent) |
|
||||
| Файрвол OpenWrt_3 | Зона wg: masq=1, форвардинг wg↔lan, wg↔wan |
|
||||
| VPS AllowedIPs | 10.5.0.4/32, 192.168.1.0/24, 192.168.100.0/24 |
|
||||
| VPS маршруты | 192.168.1.0/24 via 10.5.0.4, 192.168.100.0/24 via 10.5.0.4 |
|
||||
|
||||
### Внешний доступ к NVR
|
||||
|
||||
| Сервис | Адрес | Проброс на |
|
||||
|--------|-------|-----------|
|
||||
| Веб-интерфейс | http://89.111.140.86:8280 | 192.168.1.123:80 |
|
||||
| SDK (iVMS-4200) | 89.111.140.86:8282 | 192.168.1.123:8000 |
|
||||
| RTSP-поток | 89.111.140.86:8284 | 192.168.1.123:554 |
|
||||
|
||||
RTSP-ссылка: `rtsp://admin:1qaz!QAZ@89.111.140.86:8284/Streaming/Channels/101`
|
||||
|
||||
---
|
||||
|
||||
## Сводная таблица портов VPS
|
||||
|
||||
Все внешние порты доступны по адресу 89.111.140.86:
|
||||
|
||||
| Порт | Протокол | Назначение | Локация |
|
||||
|------|----------|-----------|---------|
|
||||
| 51820 | UDP | WireGuard | Служебный |
|
||||
| | | | |
|
||||
| 8080 | TCP | Веб камеры | Знаменское 29 |
|
||||
| 8082 | TCP+UDP | SDK камеры | Знаменское 29 |
|
||||
| 8554 | TCP | RTSP камеры | Знаменское 29 |
|
||||
| | | | |
|
||||
| 8180 | TCP | Веб NVR | Охотхозяйство |
|
||||
| 8100 | TCP | SDK NVR | Охотхозяйство |
|
||||
| 8555 | TCP | RTSP NVR | Охотхозяйство |
|
||||
| 8201–8206 | TCP | SDK камер 1–6 | Охотхозяйство |
|
||||
| 8561–8566 | TCP | RTSP камер 1–6 | Охотхозяйство |
|
||||
| | | | |
|
||||
| 8280 | TCP | Веб NVR | Знаменское Home |
|
||||
| 8282 | TCP | SDK NVR | Знаменское Home |
|
||||
| 8284 | TCP | RTSP NVR | Знаменское Home |
|
||||
|
||||
---
|
||||
|
||||
## WireGuard-пиры VPS
|
||||
|
||||
| Локация | WG IP | Публичный ключ | AllowedIPs |
|
||||
|---------|-------|---------------|------------|
|
||||
| Знаменское 29 | 10.5.0.2 | 5ZFvQNSCyJwRn3Id... | 10.5.0.2/32, 192.168.88.0/24 |
|
||||
| Охотхозяйство | 10.5.0.3 | zZ4UoWNwTxBODr8x... | 10.5.0.3/32, 192.168.8.0/24 |
|
||||
| Знаменское Home | 10.5.0.4 | HRsAUPwDOh+36EoH... | 10.5.0.4/32, 192.168.1.0/24, 192.168.100.0/24 |
|
||||
|
||||
---
|
||||
|
||||
## Известные особенности
|
||||
|
||||
- **UDM Pro (Знаменское Home):** SSH-логин работает, но Network Application не запускается — веб-интерфейс управления Ubiquiti недоступен
|
||||
- **Podkop/sing-box на OpenWrt_3:** TPROXY может мешать исходящему TCP. При диагностике проблем со связью рекомендуется временно останавливать: `service podkop stop; service sing-box stop`
|
||||
- **NetBird на OpenWrt_3:** Маршрут NIIKN для 192.168.1.0/24 был деселектирован, чтобы не конфликтовать с WireGuard-маршрутом
|
||||
- **Huawei ONT (192.168.100.1):** Иногда показывает "Waiting..." — перезагрузка решает проблему
|
||||
110
projects/niikn/NC-Talk-Setup.md
Normal file
110
projects/niikn/NC-Talk-Setup.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# NC Talk — Конфигурация для ГИИКН (niikn.com)
|
||||
|
||||
## Архитектура (актуально на 2026-03-03)
|
||||
|
||||
Klient (browser/mobile) --> HTTPS niikn.com (85.235.181.190)
|
||||
MikroTik NAT --> NPM (192.168.1.22:443)
|
||||
/ --> 192.168.1.200:11000 (Apache AIO, Nextcloud)
|
||||
/standalone-signaling/ --> 89.111.131.105:8081 (VPS signaling)
|
||||
Klient --> WSS niikn.com/standalone-signaling/ --> VPS 89.111.131.105:8081
|
||||
Klient --> STUN 89.111.131.105:3478
|
||||
Klient --> TURN 89.111.131.105:3478 (UDP+TCP)
|
||||
|
||||
## Компоненты
|
||||
|
||||
### 1. Nextcloud Talk (Spreed) - v22.0.9
|
||||
- VM250 (192.168.1.200), NC AIO in Docker
|
||||
- URL: https://niikn.com/apps/talk
|
||||
- Docker: nextcloud-aio-nextcloud
|
||||
- occ: sudo docker exec -u 33 nextcloud-aio-nextcloud php occ
|
||||
- SSH: cloud@192.168.1.200 (пароль 1qaz!QAZ)
|
||||
|
||||
### 2. VPS 89.111.131.105 (SpaceWeb)
|
||||
- Ubuntu 24.04, SSH: root / 1qaz!QAZ
|
||||
- Все HPB-компоненты здесь
|
||||
|
||||
#### Signaling Server (nextcloud-spreed-signaling)
|
||||
- /usr/local/bin/nextcloud-spreed-signaling
|
||||
- Config: /etc/signaling/server.conf
|
||||
- Systemd: signaling.service
|
||||
- Port: 8081 (HTTP, проксируется через NPM с SSL)
|
||||
- Backend URL: https://niikn.com
|
||||
- Backend secret: eba8b0547b0285a475157911300720f99886fe1202a3ca98
|
||||
- MCU: ws://127.0.0.1:8188 (Janus)
|
||||
|
||||
#### Janus WebRTC Gateway - v1.1.2
|
||||
- Config: /etc/janus/janus.jcfg
|
||||
- Transport: /etc/janus/janus.transport.websockets.jcfg
|
||||
- Systemd: janus.service
|
||||
- Port: 8188 (WebSocket, localhost only)
|
||||
- NAT 1:1 mapping: 89.111.131.105
|
||||
- RTP ports: 20000-20100
|
||||
- ice_lite: true
|
||||
|
||||
#### Coturn (TURN/STUN) - v4.6.1
|
||||
- Config: /etc/turnserver.conf
|
||||
- Systemd: coturn.service
|
||||
- Port: 3478 (TCP+UDP)
|
||||
- Relay IP: 89.111.131.105
|
||||
- Relay ports: 49152-49252
|
||||
- Auth: use-auth-secret
|
||||
- Static auth secret: ebf6a8ce0fd1629c2da55356169feea7ab118a18368c2550
|
||||
- Realm: niikn.com
|
||||
|
||||
#### NATS - v2.10.24
|
||||
- Systemd: nats-server
|
||||
- Port: 4222 (localhost only)
|
||||
|
||||
#### Firewall (UFW)
|
||||
- 22/tcp, 3478/tcp+udp, 8081/tcp, 8188/tcp
|
||||
- 20000-20100/udp (Janus RTP)
|
||||
- 49152-49252/udp (Coturn relay)
|
||||
|
||||
### 3. NPM (192.168.1.22)
|
||||
- Docker: npm-app-1
|
||||
- Proxy host #4: niikn.com -> 192.168.1.200:11000 (SSL, Let's Encrypt)
|
||||
- Custom config: /data/compose/2/data/nginx/custom/server_proxy.conf
|
||||
- location /standalone-signaling/ -> http://89.111.131.105:8081/ (WebSocket upgrade, timeout 3600s)
|
||||
|
||||
## Настройки NC Talk (spreed)
|
||||
|
||||
signaling_servers: server=https://niikn.com/standalone-signaling/, secret=eba8b0547b0285a475157911300720f99886fe1202a3ca98
|
||||
stun_servers: 89.111.131.105:3478, stun.nextcloud.com:443
|
||||
turn_servers: server=89.111.131.105:3478, protocols=udp,tcp
|
||||
|
||||
## Управление через Некстклауд API
|
||||
|
||||
Читать nastroyki:
|
||||
curl -sk -u "admin:1qaz%21QAZ" "https://niikn.com/ocs/v2.php/apps/spreed/api/v3/signaling/settings" -H "OCS-APIRequest: true"
|
||||
|
||||
Обновить signaling:
|
||||
curl -sk -u "admin:1qaz%21QAZ" -X POST "https://niikn.com/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/spreed/signaling_servers" -H "OCS-APIRequest: true" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "value=..."
|
||||
|
||||
## Диагностика
|
||||
|
||||
Проверка signaling:
|
||||
curl -sk https://niikn.com/standalone-signaling/api/v1/welcome
|
||||
|
||||
Проверка WebSocket:
|
||||
curl -sk --http1.1 -i -N -H 'Connection: Upgrade' -H 'Upgrade: websocket' -H 'Sec-WebSocket-Version: 13' -H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' https://niikn.com/standalone-signaling/spreed
|
||||
|
||||
Проверка сервисов на VPS:
|
||||
sshpass -p '1qaz!QAZ' ssh root@89.111.131.105 "systemctl status coturn janus signaling --no-pager"
|
||||
|
||||
Логи signaling:
|
||||
ssh root@89.111.131.105 "journalctl -u signaling -f"
|
||||
|
||||
## История изменений
|
||||
|
||||
### 2026-03-03
|
||||
- VPS 89.111.131.105 переустановлен (SpaceWeb reset при добавлении SSH ключа)
|
||||
- Заново установлены: coturn 4.6.1, Janus 1.1.2, NATS v2.10.24, signaling (из исходников)
|
||||
- Первоначально signaling URL был http://89.111.131.105:8081 — mixed content, браузер блокировал WS
|
||||
- Создан NPM custom config для reverse proxy /standalone-signaling/ с WebSocket upgrade
|
||||
- URL переключен на https://niikn.com/standalone-signaling/
|
||||
- Исправлен формат TURN URLs (убран дубль turn: prefix)
|
||||
|
||||
### 2026-03-02
|
||||
- Миграция NC AIO на VM250
|
||||
- Баг: reverse-proxy.config.php перенаправлял на new.niikn.com — исправлено
|
||||
- NC Talk бот (LXC 133) настроен: webhook, pairing, ролевая модель
|
||||
268
projects/niikn/NIIKN-ChangeLog.md
Normal file
268
projects/niikn/NIIKN-ChangeLog.md
Normal file
@@ -0,0 +1,268 @@
|
||||
# NIIKN — Журнал изменений
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-24 — Подготовка VM108 (new.niikn.com) к продакшену
|
||||
|
||||
### Исправление Nextcloud AIO
|
||||
- Контейнер `nextcloud-aio-nextcloud` был **unhealthy** — PHP-FPM не стартовал из-за зависшего процесса FTS-индексации
|
||||
- Создан флаг `/mnt/ncdata/fts-index.done`, убит блокирующий процесс PID 255
|
||||
- Контейнер поднялся, сайт `https://new.niikn.com` стал доступен
|
||||
|
||||
### Сетевая конфигурация VM108
|
||||
- Назначен статический IP `192.168.1.200` (было DHCP 192.168.1.147)
|
||||
- Файл: `/etc/netplan/99-static.yaml`
|
||||
- На MikroTik (192.168.1.1): добавлена статическая DHCP-аренда, проброс Talk-порта 3479 (TCP/UDP), отключён UPnP
|
||||
|
||||
### UFW Firewall
|
||||
- Установлен и настроен UFW
|
||||
- Скрипт: `/home/cloud/setup-firewall.sh`
|
||||
- Правила: SSH (22), Talk TURN (3479), Nextcloud Apache только от NPM (11000), LAN-доступ к admin-портам, Proxmox (192.168.1.201), Tailscale (wt0)
|
||||
|
||||
### Исправления конфигурации Nextcloud
|
||||
- `trusted_proxies`: добавлен IP NPM (192.168.1.22)
|
||||
- `forwarded_for_headers`: настроен для корректного определения IP клиентов
|
||||
- `maintenance_window_start`: исправлено с `100` на `1` (1:00 UTC)
|
||||
|
||||
### NPM (Nginx Proxy Manager)
|
||||
- Обновлён вручную пользователем: upstream изменён с 192.168.1.147 на 192.168.1.200
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-24 — SMB LXC (192.168.1.79, LXC 110)
|
||||
|
||||
### Исправление прав файлов
|
||||
- 104,645 файлов принадлежали root → исправлено: `chown -R admin:admin /srv/samba/share`
|
||||
- Включена SSH-аутентификация по паролю
|
||||
- Доступ: `admin / 1qaz!QAZ`
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-24 — Groupfolders (VM100 → SMB)
|
||||
|
||||
### Состояние данных (проверено 2026-02-24)
|
||||
| Папка | VM100 | SMB | Статус |
|
||||
|-------|-------|-----|--------|
|
||||
| Общий ресурс | 1.5 TB, 219,396 файлов | 1.5 TB, 227,960 файлов | ✅ SMB актуальнее |
|
||||
| ГИКЭ_ВОКН_Москва | 1.2 TB, 238,903 файлов | 1.2 TB, 238,903 файлов | ✅ идентично |
|
||||
|
||||
- Данные на SMB уже были актуальны — дополнительное копирование не потребовалось
|
||||
- SMB содержит более полную копию «Общий ресурс» (227,960 файлов vs 219,396 на VM100 — разница: удалённые пользователями файлы)
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-24–25 — Миграция пользователей VM100 → VM108
|
||||
|
||||
### Метод
|
||||
1. Скопированы хэши паролей из БД VM100 (PostgreSQL) → VM108 одним запросом
|
||||
2. Файлы перенесены через `rsync -a --rsync-path="sudo rsync"` по SSH
|
||||
3. После переноса — `occ files:scan` для каждого пользователя
|
||||
|
||||
### Перенесённые пользователи (файлы)
|
||||
| Пользователь | Объём | Время | Статус |
|
||||
|---|---|---|---|
|
||||
| op.shishova@yandex.ru (Оксана Шишова) | 734 GB | ~3.5ч | ✅ |
|
||||
| 15101995ol@gmail.com | 45 MB | <1 мин | ✅ |
|
||||
| office-msk-exp@mail.ru | 171 MB | <1 мин | ✅ |
|
||||
| 4sa56621@gmail.com | 2.5 GB | 21 сек | ✅ |
|
||||
| 19761113@mail.ru (Lentovcky) | 21 GB | 6 мин | ✅ |
|
||||
| maksimmaul@gmail.com | 5.3 GB | 1.5 мин | ✅ |
|
||||
| Starodubtseva.t.97@mail.ru | 17 GB | 4 мин | ✅ |
|
||||
| ulyanova140@gmail.com | 59 GB | 14 мин | ✅ |
|
||||
| ali6507@yandex.ru | 16 GB | 6 мин | ✅ |
|
||||
| olga_gorkova_arch@mail.ru | 1.6 GB | 15 сек | ✅ |
|
||||
| Dyomina Elizaveta | 429 MB | <1 мин | ✅ |
|
||||
| Zlotya Vladlena | 209 MB | <1 мин | ✅ |
|
||||
| + ~80 пользователей | ~35-38 MB | <1 мин | ✅ |
|
||||
|
||||
### Пропущены (системные / не нужны)
|
||||
- `admin`, `test`, `test2`, `Guest001`
|
||||
|
||||
### Итог миграции
|
||||
- Старт: 2026-02-24 21:27
|
||||
- Завершение: 2026-02-25 23:42
|
||||
- Файлов перенесено: **всего ~120+ GB крупных данных + мелкие**
|
||||
- Пароли: скопированы для всех ~90 пользователей
|
||||
- files:scan: выполнен для 24 пользователей с новыми данными
|
||||
- Ошибок: 0
|
||||
|
||||
### Инструменты миграции (хранятся на VM108)
|
||||
- `/tmp/migrate-users.sh` — основной скрипт миграции
|
||||
- `/tmp/prox_key` — SSH-ключ для доступа к VM100
|
||||
- `/tmp/migrate-users.log` — полный лог последнего запуска
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-25 — Groupfolders как Local External Storage (VM108)
|
||||
|
||||
### Архитектурное решение
|
||||
Выбран **Вариант 2**: SMB смонтирован локально на VM108 и подключён как **Local** External Storage в Nextcloud AIO.
|
||||
|
||||
Преимущества перед прямым SMB/CIFS из Nextcloud:
|
||||
- Скорость: доступ через локальную файловую систему, без overhead SMB-протокола внутри контейнера
|
||||
- Groupfolders вынесены за периметр AIO Backup — не нагружают резервное копирование 2.7 TB лишними данными
|
||||
- Хранилище SMB (LXC 110) живёт отдельно и независимо от AIO
|
||||
|
||||
### Настройка монтирования SMB на VM108
|
||||
|
||||
**Файл учётных данных** `/etc/samba/smb-niikn.creds` (chmod 600):
|
||||
```
|
||||
username=admin
|
||||
password=1qaz!QAZ
|
||||
```
|
||||
|
||||
**Запись в `/etc/fstab`:**
|
||||
```
|
||||
//192.168.1.79/share /mnt/ncsmb cifs credentials=/etc/samba/smb-niikn.creds,uid=33,gid=33,file_mode=0770,dir_mode=0770,vers=3.0,_netdev,nofail 0 0
|
||||
```
|
||||
- `uid=33,gid=33` — www-data (владелец файлов внутри контейнера Nextcloud)
|
||||
- `_netdev,nofail` — монтируется только после сети, не блокирует загрузку при отсутствии SMB
|
||||
|
||||
**Монтирование:**
|
||||
```bash
|
||||
sudo apt install cifs-utils
|
||||
sudo mount -a
|
||||
```
|
||||
|
||||
### Видимость внутри контейнера Nextcloud AIO
|
||||
|
||||
`NEXTCLOUD_MOUNT=/mnt` уже был задан в AIO — весь `/mnt` хоста пробрасывается в контейнер.
|
||||
Однако propagation=`rprivate`: новые подмонтирования, сделанные **после** старта контейнера, не видны автоматически.
|
||||
|
||||
**Решение:** `docker restart nextcloud-aio-nextcloud` после монтирования `/mnt/ncsmb`.
|
||||
|
||||
### External Storage в Nextcloud (итоговая конфигурация)
|
||||
|
||||
| ID | Путь в NC | Тип | Источник на хосте | Группа |
|
||||
|----|-----------|-----|-------------------|--------|
|
||||
| 1 | `/Локально` | Local | `/mnt/ncdata` | admin |
|
||||
| 4 | `/Общий ресурс` | Local | `/mnt/ncsmb/__groupfolders/Общий ресурс` | НИИКН |
|
||||
| 5 | `/ГИКЭ_ВОКН_Москва` | Local | `/mnt/ncsmb/__groupfolders/ГИКЭ_ВОКН_Москва` | НИИКН |
|
||||
|
||||
Команды создания:
|
||||
```bash
|
||||
docker exec -u www-data nextcloud-aio-nextcloud php occ files_external:create \
|
||||
'Общий ресурс' local null::null \
|
||||
--config=datadir='/mnt/ncsmb/__groupfolders/Общий ресурс'
|
||||
|
||||
docker exec -u www-data nextcloud-aio-nextcloud php occ files_external:create \
|
||||
'ГИКЭ_ВОКН_Москва' local null::null \
|
||||
--config=datadir='/mnt/ncsmb/__groupfolders/ГИКЭ_ВОКН_Москва'
|
||||
|
||||
# Назначить группу НИИКН
|
||||
docker exec -u www-data nextcloud-aio-nextcloud php occ files_external:applicable --add-group=НИИКН 4
|
||||
docker exec -u www-data nextcloud-aio-nextcloud php occ files_external:applicable --add-group=НИИКН 5
|
||||
```
|
||||
|
||||
Старый External Storage типа SMB/CIFS (ID=2, `/SMB`) удалён.
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-25 — Установка Mailcow (VM106, 192.168.1.128)
|
||||
|
||||
### Конфигурация VM
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Proxmox ID | VM106 |
|
||||
| OS | Ubuntu 24.04.4 LTS Server (cloud image) |
|
||||
| IP | 192.168.1.128 (статический) |
|
||||
| CPU | 4 vCPU |
|
||||
| RAM | 8 GB |
|
||||
| Диск | 60 GB |
|
||||
| SSH пользователь | cloud / 1qaz!QAZ |
|
||||
| Mailcow hostname | mail.niikn.com |
|
||||
| Timezone | Europe/Moscow |
|
||||
|
||||
### Подготовка VM
|
||||
- Исходная VM106 была с Ubuntu Desktop — переустановлена через Proxmox
|
||||
- Использован Ubuntu 24.04 Server cloud image (`noble-server-cloudimg-amd64.img`)
|
||||
- Диск расширен до 60 GB, cloud-init настроен через Proxmox (user=cloud, NOPASSWD sudo, SSH key)
|
||||
- Статический IP назначен через `/etc/netplan/99-static.yaml`
|
||||
|
||||
### Docker (официальный репозиторий)
|
||||
```bash
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | install -m 0755 /etc/apt/keyrings/docker.asc
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list
|
||||
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin git curl
|
||||
```
|
||||
|
||||
### Mailcow установка
|
||||
```bash
|
||||
git clone https://github.com/mailcow/mailcow-dockerized /opt/mailcow-dockerized
|
||||
cd /opt/mailcow-dockerized
|
||||
# Сгенерирован конфиг (MAILCOW_HOSTNAME=mail.niikn.com, TZ=Europe/Moscow)
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### UFW правила
|
||||
Открытые порты: 22 (SSH), 25 (SMTP), 80 (HTTP), 443 (HTTPS), 465 (SMTPS), 587 (Submission), 993 (IMAPS), 995 (POP3S), 4190 (Sieve)
|
||||
|
||||
### Доступ к веб-интерфейсу
|
||||
- URL: `https://mail.niikn.com` (внешний) или `http://192.168.1.128` (локальный)
|
||||
- Логин: `admin` / `moohoo` (сброшен вручную, сменить после входа)
|
||||
|
||||
### Важно: формат пароля admin в Mailcow
|
||||
Mailcow хранит пароли admin в формате **SSHA256** (Dovecot), а не bcrypt.
|
||||
При ручном сбросе пароля через БД использовать только `doveadm pw`:
|
||||
```bash
|
||||
cd /opt/mailcow-dockerized
|
||||
# Сброс пароля admin через официальный скрипт (интерактивный):
|
||||
bash helper-scripts/mailcow-reset-admin.sh
|
||||
|
||||
# Или вручную через doveadm + MySQL:
|
||||
HASH=$(docker exec mailcowdockerized-dovecot-mailcow-1 doveadm pw -s SSHA256 -p "НовыйПароль" | tr -d '\r')
|
||||
docker exec mailcowdockerized-mysql-mailcow-1 mysql -u mailcow -p<DBPASS> mailcow \
|
||||
-e "UPDATE admin SET password='${HASH}' WHERE username='admin';"
|
||||
```
|
||||
DBPASS находится в `/opt/mailcow-dockerized/mailcow.conf` (DBPASS=8VcUSgpKEOoxNojIZBRJx0FzMxzm)
|
||||
|
||||
### Статус контейнеров
|
||||
Все 18 контейнеров запущены: nginx, postfix, dovecot, rspamd, clamd, mysql, redis, unbound, sogo, php-fpm, acme, watchdog и др.
|
||||
|
||||
### Что нужно сделать для завершения настройки
|
||||
1. **DNS записи** для niikn.com (у регистратора):
|
||||
- `A mail.niikn.com → <белый IP>`
|
||||
- `MX niikn.com → mail.niikn.com (приоритет 10)`
|
||||
- `TXT niikn.com → v=spf1 mx ~all`
|
||||
- `TXT _dmarc.niikn.com → v=DMARC1; p=none; rua=mailto:admin@niikn.com`
|
||||
- DKIM — получить после входа в Mailcow → Конфигурация → ARC/DKIM
|
||||
2. **PTR запись (rDNS)** — запросить у провайдера: `<белый IP> → mail.niikn.com`
|
||||
3. **MikroTik** — проброс портов 25, 80, 443, 465, 587, 993, 995, 4190 → 192.168.1.128
|
||||
4. **Статическая DHCP-аренда** на MikroTik для MAC `BC:24:11:7E:B7:14` → 192.168.1.128
|
||||
5. **Let's Encrypt** — автоматически получит SSL после настройки DNS
|
||||
6. **Сменить пароль admin** в веб-интерфейсе
|
||||
|
||||
---
|
||||
|
||||
## 2026-02-25 — Проверка установки Nextcloud AIO (VM108)
|
||||
|
||||
### Метод установки
|
||||
- Nextcloud AIO запущен через `docker run` с `--label com.docker.compose.project=nextcloud-aio` — **официальный метод**
|
||||
- Docker Compose файлов на системе нет
|
||||
- Mastercontainer (`nextcloud-aio-mastercontainer`) сам управляет остальными контейнерами через Docker socket (`:ro`)
|
||||
- Создан: `2026-02-21T10:09:26` — работает стабильно
|
||||
|
||||
### Portainer
|
||||
- Работает на VM108 как отдельный контейнер (`portainer/portainer-ce:latest`)
|
||||
- Видит контейнеры AIO как «стек nextcloud-aio» (по label), но **не создавал и не управляет** ими
|
||||
- Имеет полный доступ к Docker socket — использовать только для мониторинга
|
||||
|
||||
### Состояние контейнеров (проверено 2026-02-25)
|
||||
Все 13 контейнеров AIO — **healthy**, uptime 40+ часов:
|
||||
`apache`, `nextcloud`, `database`, `redis`, `fulltextsearch`, `onlyoffice`, `imaginary`, `talk`, `talk-recording`, `whiteboard`, `notify-push`, `docker-socket-proxy`, `mastercontainer`
|
||||
|
||||
### Важно
|
||||
- Управление Nextcloud AIO — только через `https://new.niikn.com:8080` или `docker exec -u www-data nextcloud-aio-nextcloud php occ`
|
||||
- Никогда не перезапускать и не изменять контейнеры AIO через Portainer
|
||||
|
||||
---
|
||||
|
||||
## Что ещё нужно сделать
|
||||
|
||||
- [ ] Настроить AIO Backup на VM108
|
||||
- [ ] Настроить SMTP для уведомлений Nextcloud (использовать mail.niikn.com после настройки DNS)
|
||||
- [ ] Настроить Groupfolders как полноценное приложение (сейчас — Local External Storage через /mnt/ncsmb)
|
||||
- [ ] Проверить работу пользователей на new.niikn.com
|
||||
- [ ] Решить судьбу Linkwarden и FileBrowser (переносить или нет)
|
||||
- [ ] Зафиксировать статический IP для VM100 (сейчас DHCP 192.168.1.245)
|
||||
117
projects/niikn/NIIKN-Infrastructure.md
Normal file
117
projects/niikn/NIIKN-Infrastructure.md
Normal file
@@ -0,0 +1,117 @@
|
||||
|
||||
---
|
||||
|
||||
## VM100 — Cloud-nc-AIO (старый Nextcloud, 192.168.1.245)
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| OS | Ubuntu 24.04.4 LTS |
|
||||
| CPU | 6 cores |
|
||||
| RAM | 32 GB |
|
||||
| SSH user | cloud / 1qaz!QAZ |
|
||||
| Tailscale IP | 100.70.117.21 |
|
||||
|
||||
### Nextcloud (старый)
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Версия | Nextcloud **30.0.10** |
|
||||
| Домен | https://niikn.com |
|
||||
| AIO URL | http://192.168.1.245:8080 |
|
||||
| Пользователей | **102** |
|
||||
| Данные | /mnt/nc-data (3.7 TB из 4.1 TB, **97% заполнено!**) |
|
||||
| ОС диск | /dev/sda2 197 GB, 68% заполнено |
|
||||
|
||||
### Дополнительные сервисы VM100
|
||||
| Сервис | Порт | Описание |
|
||||
|--------|------|----------|
|
||||
| OnlyOffice | :26614 | Отдельный Document Server |
|
||||
| Linkwarden | :3000 | Менеджер закладок |
|
||||
| FileBrowser | :8081 | Веб-файловый менеджер |
|
||||
| Portainer | — | Управление Docker |
|
||||
|
||||
### ⚠️ Важно для миграции
|
||||
- Диск данных заполнен на **97%** — нужно расширить хранилище на VM108 перед переносом
|
||||
- Разница версий: VM100 — NC 30.0.10 → VM108 — NC 32.0.6 (нужен поэтапный апгрейд через 31.x)
|
||||
- На VM100 есть сервисы которых нет на VM108: Linkwarden, FileBrowser
|
||||
|
||||
---
|
||||
|
||||
## VM100 — Cloud-nc-AIO (старый Nextcloud, 192.168.1.245)
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| OS | Ubuntu 24.04.4 LTS |
|
||||
| CPU | 6 cores |
|
||||
| RAM | 32 GB |
|
||||
| SSH user | cloud / 1qaz!QAZ |
|
||||
| Tailscale IP | 100.70.117.21 |
|
||||
|
||||
### Nextcloud (старый)
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Версия | Nextcloud **30.0.10** |
|
||||
| Домен | https://niikn.com |
|
||||
| AIO URL | http://192.168.1.245:8080 |
|
||||
| Пользователей | **102** |
|
||||
| Данные | /mnt/nc-data (3.7 TB из 4.1 TB, **97% заполнено!**) |
|
||||
| ОС диск | /dev/sda2 197 GB, 68% заполнено |
|
||||
|
||||
### Дополнительные сервисы VM100
|
||||
| Сервис | Порт | Описание |
|
||||
|--------|------|----------|
|
||||
| OnlyOffice | :26614 | Отдельный Document Server |
|
||||
| Linkwarden | :3000 | Менеджер закладок |
|
||||
| FileBrowser | :8081 | Веб-файловый менеджер |
|
||||
| Portainer | — | Управление Docker |
|
||||
|
||||
### Важно для миграции
|
||||
- Диск данных заполнен на **97%** — нужно расширить хранилище на VM108 перед переносом
|
||||
- Разница версий: NC 30.0.10 → NC 32.0.6 (при миграции через AIO backup — апгрейд автоматический)
|
||||
- На VM100 есть сервисы которых нет на VM108: Linkwarden, FileBrowser — решить: переносить или нет
|
||||
|
||||
---
|
||||
|
||||
## Миграция Groupfolders (VM100 → SMB → VM108)
|
||||
|
||||
### Структура groupfolders на VM100
|
||||
| ID на диске | Название в Nextcloud | Размер | Файлов |
|
||||
|-------------|----------------------|--------|--------|
|
||||
| `/mnt/nc-data/__groupfolders/1/` | **Общий ресурс** | 1.5 TB | 219,396 |
|
||||
| `/mnt/nc-data/__groupfolders/2/` | **ГИКЭ_ВОКН_Москва** | 1.2 TB | 238,903 |
|
||||
|
||||
### Состояние на SMB (192.168.1.79) — проверено 2026-02-24
|
||||
```
|
||||
/srv/samba/share/__groupfolders/
|
||||
Общий ресурс/ — 1.5 TB, 227,960 файлов
|
||||
ГИКЭ_ВОКН_Москва/ — 1.2 TB, 238,903 файлов
|
||||
versions/ — 17 GB
|
||||
```
|
||||
|
||||
| Папка | VM100 файлов | SMB файлов | Свежий файл | Статус |
|
||||
|-------|-------------|------------|-------------|--------|
|
||||
| Общий ресурс | 219,396 | **227,960** | 2026-02-19 (совпадает) | ⚠️ на SMB больше на 8,564 файла (удалённые с VM100) |
|
||||
| ГИКЭ_ВОКН_Москва | 238,903 | 238,903 | 2026-01-11 (совпадает) | ✅ идентично |
|
||||
|
||||
**Вывод:** SMB содержит более полную копию. Для миграции в VM108 использовать данные с SMB.
|
||||
|
||||
### Скрипт rsync для обновления (на VM100)
|
||||
Файл: `/tmp/rsync-groupfolders.sh`
|
||||
Запуск синхронизации VM100 → SMB:
|
||||
```bash
|
||||
ssh -i /tmp/prox_key cloud@192.168.1.245
|
||||
bash /tmp/run-sudo.sh "nohup bash /tmp/rsync-groupfolders.sh &"
|
||||
# Проверка прогресса:
|
||||
bash /tmp/run-sudo.sh "cat /tmp/rsync-1.log | tr '\r' '\n' | tail -3"
|
||||
bash /tmp/run-sudo.sh "cat /tmp/rsync-2.log | tr '\r' '\n' | tail -3"
|
||||
```
|
||||
> Примечание: rsync без `--delete` — удалённые файлы на VM100 на SMB остаются.
|
||||
|
||||
### External Storage в Nextcloud AIO (VM108)
|
||||
| Mount ID | Путь в NC | Тип | Хост | Доступ |
|
||||
|----------|-----------|-----|------|--------|
|
||||
| 1 | `/Локально` | Local | `/mnt/ncdata` | группа admin |
|
||||
| 2 | `/SMB` | SMB/CIFS | `192.168.1.79/share` | Все пользователи |
|
||||
|
||||
Groupfolders доступны в NC как: `/SMB/__groupfolders/Общий ресурс/` и `/SMB/__groupfolders/ГИКЭ_ВОКН_Москва/`
|
||||
|
||||
> ⚠️ Это External Storage, не настоящие Groupfolders. При финальной миграции настроить приложение **Groupfolders** и создать группы.
|
||||
Reference in New Issue
Block a user