Files
obsidian-vault/family/how-to/htpc-access.md
T

2.9 KiB

HTPC — Доступ и управление

SSH

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 проснётся):

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 linuxssh://bazzite@192.168.1.86/var/home/bazzite/magic4pc.git (bare repo)
  • Worktree на HTPC: /home/bazzite/magic4pc
  • Remote originhttps://github.com/mallexxx/magic4pc_altclient.git

Деплой:

# На 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". Всегда сначала stoprmcpstart.

systemd сервис

Файл: /etc/systemd/system/magic4pc.service

[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

Логи

journalctl -u magic4pc -n 50 --no-pager
journalctl -u magic4pc -f  # live