# KATSBY: установка на удалённый сервер

Зачем: покерные румы сети GG (ПокерОК) скрывают столы от захвата в OBS, когда на ПК запущен Python.
Поэтому сервер пульта работает на VPS, а на стрим-ПК остаётся только OBS.

## Что нужно на сервере
- Linux (Ubuntu/Debian), Python 3.8+ (только стандартная библиотека, pip не нужен).
- nginx и HTTPS-сертификат (certbot) на поддомен, например `hud.example.ru`.

## Шаги
1. Скопировать содержимое этой папки на сервер, например в `/opt/katsby` (папки `preview`, `streamdeck-buttons`, `streamdeck-icons` можно не копировать).
2. Сгенерировать ключ: `python3 -c "import secrets; print(secrets.token_urlsafe(24))"`.
3. Создать системного пользователя `katsby` и отдать ему `/opt/katsby` (данные пишутся в `/opt/katsby/data`).
4. systemd-юнит `/etc/systemd/system/katsby.service`:
   ```
   [Unit]
   Description=KATSBY HUD server
   After=network.target

   [Service]
   User=katsby
   WorkingDirectory=/opt/katsby
   Environment=KATSBY_KEY=<ключ>
   Environment=KATSBY_HOST=127.0.0.1
   Environment=KATSBY_PORT=8777
   ExecStart=/usr/bin/python3 /opt/katsby/server.py
   Restart=always

   [Install]
   WantedBy=multi-user.target
   ```
   `systemctl daemon-reload && systemctl enable --now katsby`
5. nginx: server-блок для поддомена с `proxy_pass http://127.0.0.1:8777;`, заголовками `Host` и `X-Forwarded-For`, затем `certbot --nginx -d hud.example.ru`.
6. Проверка:
   - `curl -s -o /dev/null -w "%{http_code}" https://hud.example.ru/api/state` должен вернуть 403 (без ключа);
   - `curl -s "https://hud.example.ru/api/state?key=<ключ>"` возвращает JSON;
   - `curl -s -o /dev/null -w "%{http_code}" https://hud.example.ru/data/state.json` возвращает 404.

## Адреса для OBS (подставить домен и ключ)
- Пульт, док-панель: `https://hud.example.ru/control.html?key=<ключ>`
- Основная сцена: `https://hud.example.ru/scene-main.html?key=<ключ>`
- Сцена «Два стола»: `https://hud.example.ru/scene-two-tables.html?key=<ключ>`
- Виджеты: собираются в пульте, вкладка «Виджет», ключ подставляется сам.

## Stream Deck на стрим-ПК
В `streamdeck-buttons/server.txt` две строки: адрес сервера и ключ. Действие Stream Deck «Система, Открыть», файл `*.vbs` из этой папки.
