# 📦 @goodandready/dsh-lanmode
Доступ к веб-интерфейсу по локальной сети (LAN), mDNS (dsh.local), PWA, Root CA, QR-код, фоновые уведомления и авто-TLS для DeepSeek Harness
🇬🇧 English •
🇷🇺 Русский •
🇨🇳 中文说明
---
## ⚡ Описание и назначение
`dsh-lanmode` обеспечивает полноценный безопасный доступ к DeepSeek Harness из локальной сети (LAN) и через интернет:
1. **📱 Поповер Quick QR**: Иконка смартфона в подвале сайдбара (`Quick QR` в `sidebar.footer` / `sidebar.rail`) открывает SVG QR-код для подключения с мобильных устройств. Поддерживается команда `/mobileqr` и вывод ASCII QR в терминал.
2. **📲 PWA & Standalone**: Поддержка манифеста, полноэкранный режим на iOS/Android без интерфейса браузера (`viewport-fit=cover`).
3. **🌐 mDNS (`dsh.local`)**: Встроенный responder UDP 5353 автоматически анонсирует имя `dsh.local` в LAN.
4. **🔐 Локальный Root CA и TLS**: Генерация собственного 10-летнего Root CA и серверных сертификатов с SAN (`dsh.local`, LAN IP). Роут `/dsh-lanmode/ca.crt` для доверия на смартфонах.
5. **🔔 Фоновые Web Push & Notifications API**: Уведомления об окончании ответа агента и запросах подтверждения при неактивной вкладке.
6. **🛡️ Безопасность и аутентификация**:
- Пароли поддерживают открытый текст (plaintext) и scrypt хеши. Постоянное время проверки через `timingSafeEqual`.
- Поддержка LAN PIN: открытый текст и `PBKDF2`-растягивание ключа (`pbkdf2$sha512$100000$salt$hash`). Блокировка перебора на 15 минут после 5 неудачных попыток.
- Токены устройств и сессий защищены `SHA-256` хешированием перед сохранением в реестре.
- Разделение ролей подсетей (`adminAllow`, `guestAllow`). Гости изолированы от настроек.
7. **☁️ Cloudflare WAN и Tailscale Funnel**:
- Поддерживаются временные `Quick Tunnels` (trycloudflare.com) и постоянные `Named Tunnels` с токеном (передаётся через переменную окружения `TUNNEL_TOKEN`, скрыт из `ps aux`).
- Опция `tunnelPin` требует ввод LAN PIN для запросов через Cloudflare туннель.
- 1-клик интеграция с `Tailscale Funnel` с автоматическими доверенными сертификатами Let's Encrypt.
8. **📱 Управление устройствами**: Реестр подключённых устройств, отслеживание сессий и отзыв в один клик.
---
## 📦 Установка
```bash
dsh plugin --profile web add @goodandready/dsh-lanmode
```
---
## ⚙️ Конфигурация (`cordis.patch.yml`)
```yaml
- id: dsh-lanmode
config:
mode: direct
directPort: 3080
tunnel: off # off, quick или named
tunnelPin: true
tailscaleFunnel: false
passwordAuth: false
```
---
## 📄 Лицензия
MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)