BGPVR Ръководство за оператора
Ръководство за оператора

Подгответе сървъра за помощ от разстояние

Помощта от разстояние в приложението BGPVR Player (екранът на приложението на зрителя, бутоните му, настройките му) изисква три неща от сървъра. Настройки › Клиенти и поверителност › Готовност за помощ от разстояние ги проверява и трите през вашия уеб адрес и показва командата за всеки червен ред, попълнена за вашата инсталация. MAG приемниците нямат нужда от нищо от това.

На тази страница
  1. Подгответе сървъра за помощ от разстояние
  2. В конзолата
  3. 1. Посочете обратното прокси
  4. 2. Добавете местата за снимки в проксито
  5. 3. Ползвайте https
  6. 4. Проверете отново
  7. Внимание

Подгответе сървъра за помощ от разстояние

Помощта от разстояние в приложението BGPVR Player (екранът на приложението на зрителя, бутоните му, настройките му) изисква три неща от сървъра. Настройки › Клиенти и поверителност › Готовност за помощ от разстояние ги проверява и трите през вашия уеб адрес и показва командата за всеки червен ред, попълнена за вашата инсталация. MAG приемниците нямат нужда от нищо от това. Кутиите с Kodi (добавката BGPVR за Kodi) се виждат в Устройства, но нямат помощ от разстояние.

  1. Посочете обратното прокси. Сюитът вярва на „това дойде през https“ и „това е снимка“ само от прокси, което сте посочили. Дотогава е в режим auto и помощта от разстояние в приложението е изключена. Пуснете на сървъра (127.0.0.1, ако nginx работи на същата машина, иначе адреса на проксито; без рестарт):
    docker exec bgpvr python3 -c "import sys; sys.path.insert(0, '/app/backend'); from bgpvr.config import set_setting; set_setting('trusted_proxy_cidrs', '127.0.0.1/32')"
    Ако сте задали BGPVR_TRUSTED_PROXIES в docker-compose.yml, то е с предимство пред настройката: сменете го там и рестартирайте контейнера.
  2. Добавете местата за снимки в проксито. Снимките на екрана трябва да остават в паметта: никога не се записват на диска на проксито, в кеш или в дневник. Запишете ключа за снимки на тази инсталация във файл, който чете само nginx (ключът минава през конвейера и не се показва на екрана):
    docker exec bgpvr python3 -c "import sys; sys.path.insert(0, '/app/backend'); from bgpvr.config import get_setting; print('proxy_set_header X-BGPVR-Picture-Path %s;' % get_setting('remote_help_picture_key', ''))" | sudo install -m 600 /dev/stdin /etc/nginx/bgpvr-picture-key.conf
    после добавете тези две места в https блока server на адреса на конзолата, над location / (сменете 127.0.0.1:8095 с това, което ползва вашето location /), и презаредете:
    location ~ ^/api/client/device/remote-help/[0-9]+/screen$ {
        client_max_body_size 1m;
        client_body_buffer_size 1m;
        proxy_request_buffering on;
        include /etc/nginx/bgpvr-picture-key.conf;
        proxy_pass http://127.0.0.1:8095;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ~ ^/api/remote-help/[0-9]+/screen$ {
        proxy_buffering off;
        proxy_max_temp_file_size 0;
        proxy_pass http://127.0.0.1:8095;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    sudo nginx -t && sudo systemctl reload nginx
    Без това бутоните и действията работят, а конзолата казва „Екранът на живо изисква обновяване на сървъра“.
  3. Ползвайте https. Приложението никога не приема помощ от разстояние на http:// адрес. С nginx и Let's Encrypt: sudo certbot --nginx -d your.domain, после отворете конзолата през https.
  4. Отворете Настройки › Клиенти и поверителност › Готовност за помощ от разстояние и натиснете Провери отново: и трите реда казват „Готово“.
Друго обратно прокси (Caddy, Traefik, HAProxy, NAS)

Същите три правила: посочете адреса му в trusted_proxy_cidrs; за пътищата /api/client/device/remote-help/<n>/screen пазете тялото на заявката (до 1 MB) в паметта и добавяйте заглавката X-BGPVR-Picture-Path с ключа на инсталацията (прочетете го с командата отгоре, без думите proxy_set_header, направо в тайното хранилище на проксито); за /api/remote-help/<n>/screen изключете буферирането и кеша на отговора; навсякъде пращайте X-Forwarded-Proto и X-Forwarded-For. Картата за готовност показва кога е наред.

Никога не поставяйте ключа за снимки в чат, заявка или снимка на екрана

Който го има, може да подава снимки на сървъра ви, сякаш идват през проксито. Конзолата никога не го показва. Ако е изтекъл (или картата за готовност казва, че инсталацията няма ключ), направете нов и повторете стъпка 2:

docker exec bgpvr python3 -c "import secrets, sys; sys.path.insert(0, '/app/backend'); from bgpvr.config import set_setting; set_setting('remote_help_picture_key', secrets.token_hex(32))"

В конзолата: Подгответе сървъра за помощ от разстояние

1. Посочете обратното прокси

Сюитът вярва на „това дойде през https“ и „това е снимка“ само от прокси, което сте посочили; дотогава помощта от разстояние в приложението е изключена. Пуснете на сървъра (127.0.0.1, ако nginx работи на същата машина, иначе адреса на проксито; без рестарт):

docker exec bgpvr python3 -c "import sys; sys.path.insert(0, '/app/backend'); from bgpvr.config import set_setting; set_setting('trusted_proxy_cidrs', '127.0.0.1/32')"
Ако BGPVR_TRUSTED_PROXIES е зададено в docker-compose.yml, то е с предимство: сменете го там и рестартирайте контейнера.

2. Добавете местата за снимки в проксито

Снимките на екрана остават в паметта: никога на диска на проксито, в кеш или в дневник. Запишете ключа за снимки на тази инсталация във файл, който чете само nginx, после добавете двата блока location за /api/client/device/remote-help/<n>/screen и /api/remote-help/<n>/screen над location / и презаредете nginx. Картата за готовност и цялата Помощ ги имат готови за поставяне. Без тях бутоните и действията работят, а конзолата казва „Екранът на живо изисква обновяване на сървъра“.

3. Ползвайте https

Приложението никога не приема помощ от разстояние на http:// адрес. С nginx и Let's Encrypt: sudo certbot --nginx -d your.domain, после отворете конзолата през https.

4. Проверете отново

Настройки › Клиенти и поверителност › Готовност за помощ от разстояние → Провери отново: и трите реда казват Готово.

Внимание

  • Друго обратно прокси (Caddy, Traefik, HAProxy, NAS): същите три правила. Посочете адреса му в trusted_proxy_cidrs, пазете качването на снимки (до 1 MB) в паметта със заглавката X-BGPVR-Picture-Path, изключете буферирането и кеша за екрана на живо, пращайте X-Forwarded-Proto и X-Forwarded-For навсякъде.
  • Никога не поставяйте ключа за снимки в чат, заявка или снимка на екрана: който го има, може да подава снимки на сървъра ви, все едно идват през проксито. Ако е изтекъл, направете нов (командата е в цялата Помощ) и повторете стъпка 2.