88 lines
2.9 KiB
Markdown
88 lines
2.9 KiB
Markdown
# HTPC — Доступ и управление
|
||
|
||
## SSH
|
||
```bash
|
||
ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86
|
||
```
|
||
Пароль sudo: `bazzite`
|
||
|
||
## SSH-доступ с Кракена (Portainer)
|
||
|
||
Кракен-агент работает внутри Docker-контейнера — SSH-клиента нет.
|
||
Управление HTPC через Portainer API EP=3: одноразовый alpine-контейнер с примонтированными ключами.
|
||
|
||
**Ключ Кракена** (добавить в HTPC `~/.ssh/authorized_keys`):
|
||
```
|
||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFl9JjpovitpHUdM1yCpmWb/iC0fe7fYVyXjLLrJSCVR kraken
|
||
```
|
||
|
||
Добавить с Eagle (когда HTPC проснётся):
|
||
```bash
|
||
ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86 \
|
||
"echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFl9JjpovitpHUdM1yCpmWb/iC0fe7fYVyXjLLrJSCVR kraken' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
|
||
```
|
||
|
||
⚠️ **TODO:** выполнить, когда HTPC проснётся. До этого Кракен не может SSH на HTPC.
|
||
|
||
Полная дока по управлению с Кракена: скилл `htpc-control` (`~/.hermes/skills/smart-home/htpc-control/`)
|
||
|
||
## Go (на HTPC)
|
||
Go установлен в `/usr/local/go/bin/go` (не в PATH по умолчанию).
|
||
Сборка: `cd ~/magic4pc && /usr/local/go/bin/go build -o magic4pc_new .`
|
||
|
||
## Git workflow (magic4pc)
|
||
- Mac: `~/Developer/magic4pc_altclient`, бранч `bazzite-linux`
|
||
- Remote `linux` → `ssh://bazzite@192.168.1.86/var/home/bazzite/magic4pc.git` (bare repo)
|
||
- Worktree на HTPC: `/home/bazzite/magic4pc`
|
||
- Remote `origin` → `https://github.com/mallexxx/magic4pc_altclient.git`
|
||
|
||
Деплой:
|
||
```bash
|
||
# На Mac:
|
||
git push linux bazzite-linux
|
||
|
||
# На HTPC:
|
||
cd ~/magic4pc && git pull && /usr/local/go/bin/go build -o magic4pc_new .
|
||
sudo systemctl stop magic4pc
|
||
sudo rm /usr/local/bin/magic4pc
|
||
sudo cp magic4pc_new /usr/local/bin/magic4pc
|
||
sudo systemctl start magic4pc
|
||
```
|
||
|
||
> ⚠️ Нельзя `cp` поверх работающего бинаря — "Text file busy". Всегда сначала `stop` → `rm` → `cp` → `start`.
|
||
|
||
## systemd сервис
|
||
Файл: `/etc/systemd/system/magic4pc.service`
|
||
```ini
|
||
[Unit]
|
||
Description=Magic Remote client for LG TV
|
||
After=network.target
|
||
|
||
[Service]
|
||
User=bazzite
|
||
Group=bazzite
|
||
ExecStart=/usr/local/bin/magic4pc-run.sh
|
||
Restart=always
|
||
RestartSec=5
|
||
StartLimitIntervalSec=0
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
`StartLimitIntervalSec=0` — без лимита рестартов (иначе при crash-loop убивается).
|
||
|
||
## Run script
|
||
`/usr/local/bin/magic4pc-run.sh` — ждёт X display, делает `xhost +local:`, запускает бинарь.
|
||
|
||
## ydotoold
|
||
User-юнит: `~/.config/systemd/user/ydotoold.service`
|
||
Socket: `/run/user/1000/.ydotool_socket`
|
||
Управление: `systemctl --user status ydotoold`
|
||
|
||
## Логи
|
||
```bash
|
||
journalctl -u magic4pc -n 50 --no-pager
|
||
journalctl -u magic4pc -f # live
|
||
```
|