This commit is contained in:
2026-10-10 15:58:44 +07:00
parent 3efdb52c3c
commit e5191ebe50
9 changed files with 204 additions and 13 deletions
+27 -9
View File
@@ -166,16 +166,19 @@ python3 tests/venue/smoke.py --verify
openssl x509 -in venue/certificates/fullchain.pem -noout -dates
```
4. На Cudy вручную закрепите IP ноутбука и настройте локальный DNS: оба домена
должны указывать на этот IP. DHCP должен выдавать клиентам адрес локального
DNS. Возможность такой настройки проверяется на конкретной модели и прошивке;
выбор внешнего «Custom DNS» сам по себе не создаёт локальные записи.
Проверьте клиентскую изоляцию, DNS rebind protection и IPv6: клиенты должны
достигать ноутбука, а AAAA-записи не должны уводить их на production.
При отсутствии нужных возможностей прошивки остановите настройку и согласуйте
отдельное решение; скрипты проекта не меняют роутер и не прошивают его.
4. На Cudy вручную закрепите IP ноутбука в **Advanced Settings → IP/MAC Binding**.
На TR3000 с прошивкой 2.5.27 DE в прочитанных разделах Custom DNS и DHCP нет
формы статических записей. Поэтому venue запускает отдельный CoreDNS на ноутбуке.
В **Advanced Settings → DHCP Server** задайте **Preferred DNS = IP ноутбука**,
**Alternate DNS** оставьте пустым. Переподключите телефоны к Wi-Fi, чтобы они
получили новые параметры DHCP. Custom DNS роутера менять не требуется.
Проверьте клиентскую изоляцию и настройки Private DNS/DoH устройств: запросы
двух доменов должны приходить на локальный DNS, а клиенты — достигать ноутбука.
Скрипты проекта не меняют роутер и не прошивают его.
5. В `venue/.env` задайте `VENUE_BIND_IP=<постоянный-IP-ноутбука>` и разрешите
входящие TCP 80/443 из LAN в межсетевом экране ноутбука. Порты должны быть свободны.
входящие TCP 80/443 и TCP/UDP 53 из LAN в межсетевом экране ноутбука.
`VENUE_BIND_IP` должен быть конкретным IPv4-адресом ноутбука, не `0.0.0.0`:
он используется и для публикации портов, и для DNS-ответов. Порты должны быть свободны.
Для HTTPS менять `APP_BASE_URL` в `.env` не нужно: Compose-дополнение задаёт
прежний HTTPS-домен интерфейса для QR-ссылок и материалов.
6. Запустите:
@@ -195,6 +198,21 @@ python3 tests/venue/smoke.py --verify
прежний API-домен также обслуживается локально. HTTP на портах 80 и прежнем
`VENUE_PORT` перенаправляется на HTTPS с сохранением пути и параметров.
CoreDNS публикуется только на `VENUE_BIND_IP:53` по UDP/TCP. Оба домена получают
этот IPv4 локально; AAAA-запросы не получают внешние адреса. Для них интернет
не требуется. Остальные домены пересылаются на 1.1.1.1/8.8.8.8 и работают при
доступном интернете; их недоступность без WAN не мешает локальным доменам.
DNS подключён к сети публикации портов и не имеет доступа к внутренней сети
backend/БД. Образ CoreDNS скачивается при первой подготовке и используется
повторно без скачивания. При изменении IP ноутбука обновите `VENUE_BIND_IP`,
настройки DHCP Cudy и повторите `make venue`.
Проверка DNS до настройки клиентов:
```sh
python3 tests/venue/dns.py --server 192.168.10.155
```
После продления сертификата с доступным интернетом замените оба PEM-файла и
повторите `make venue`: Nginx проверяет конфигурацию и перечитывает сертификат.
Продление не выполняется автоматически. После обновления кода выполните